@@ -5,14 +5,14 @@ import { CardGrid, LinkButton, LinkCard } from "@astrojs/starlight/components";
55const frontmatter = {
66 title: " Everything Harness Engineering" ,
77 description:
8- " A research overview for readers who know the term harness engineering but want a sharper definition, clearer boundaries, and a practical way to navigate the field. " ,
8+ " 一篇面向已听过 harness engineering 一词、但仍希望获得更精确定义、更清晰边界与研究导航的中文综述首页。 " ,
99 template: " splash" as const ,
1010 editUrl:
1111 " https://github.com/BeMxself/everything-harness-engineering/edit/main/src/pages/index.astro" ,
1212 hero: {
13- title: " Harness Engineering, Precisely Defined " ,
13+ title: " Harness Engineering:一个更精确的定义 " ,
1414 tagline:
15- " This homepage is not a product landing page and not a generic docs index. It is a research overview for readers who already know the term, but still need a sharper definition, clearer boundaries, and a better way to navigate the field. " ,
15+ " 这不是产品落地页,也不是普通文档目录。它是一篇面向“听过这个词、知道大概意思、但仍缺精确定义与研究导航”的首页综述,目的是先把概念说准,再帮助读者理解这个领域该如何阅读、比较与继续下钻。 " ,
1616 actions: [
1717 { text: " 先看定义" , link: " #definition" , icon: " right-arrow" },
1818 { text: " 看详细分类" , link: " ./distinction/" , variant: " secondary" as const },
@@ -30,25 +30,25 @@ const taxonomy = [
3030 {
3131 title: " Native Coding Shells" ,
3232 description:
33- " The host shell is the primary work surface. Execution, tools, permissions, and repo interaction are centered around a single coding agent runtime. " ,
33+ " 宿主 shell 就是主要工作面。执行、工具、权限与 repo 交互都围绕单个 coding agent runtime 展开。 " ,
3434 href: " ./distinction/" ,
3535 },
3636 {
3737 title: " Harness Overlays" ,
3838 description:
39- " A second layer built on top of a host shell, adding hooks, teams, memory, HUDs, guardrails, and recovery mechanisms. " ,
39+ " 构建在宿主 shell 之上的第二层系统,显式加入 hooks、 teams、 memory、HUD、 guardrails 与恢复机制。 " ,
4040 href: " ./distinction/" ,
4141 },
4242 {
4343 title: " Skill / Methodology Systems" ,
4444 description:
45- " Systems that emphasize skills, meta-prompting, spec-driven development, and disciplined execution rather than a host shell alone. " ,
45+ " 更强调 skills、 meta-prompting、 spec-driven development 与执行纪律,而不只是某个宿主 shell。 " ,
4646 href: " ./distinction/" ,
4747 },
4848 {
4949 title: " Workflow / Orchestration Suites" ,
5050 description:
51- " Systems focused on long-running delivery loops, multi- agent coordination, and structured task execution across roles or models. " ,
51+ " 更强调长时交付闭环、多 agent 协同,以及跨角色或跨模型的结构化任务执行。 " ,
5252 href: " ./distinction/" ,
5353 },
5454];
@@ -59,39 +59,39 @@ const timeline = [
5959 title: " Building Effective Agents" ,
6060 source: " Anthropic" ,
6161 summary:
62- " A starting point for distinguishing workflows from agents and for treating simple, composable patterns as first-class engineering tools. " ,
62+ " 把 workflows 与 agents 区分开来,并把简单、可组合模式当成一等工程对象来看待。 " ,
6363 href: " ./timeline/" ,
6464 },
6565 {
6666 date: " 2025-09" ,
6767 title: " Writing Effective Tools for Agents" ,
6868 source: " Anthropic" ,
6969 summary:
70- " A reminder that tool surface design is part of the harness, not a separate concern outside it. " ,
70+ " 提醒我们: tool surface 的设计本身就是 harness 的一部分,而不是它外面的次级问题。 " ,
7171 href: " ./timeline/" ,
7272 },
7373 {
7474 date: " 2025-11" ,
7575 title: " Effective Harnesses for Long-Running Agents" ,
7676 source: " Anthropic" ,
7777 summary:
78- " Where harness design becomes concrete for long-running coding agents through handoff, progress tracking, and task continuation. " ,
78+ " 通过 handoff、 progress tracking 与 task continuation,把 harness 设计具体落到长时 coding agent 场景里。 " ,
7979 href: " ./timeline/" ,
8080 },
8181 {
8282 date: " 2026-02" ,
8383 title: " Harness Engineering" ,
8484 source: " OpenAI + Martin Fowler" ,
8585 summary:
86- " The term becomes legible as an engineering abstraction about steering, constraining, and operationalizing agent systems. " ,
86+ " 这个词开始作为工程抽象真正变得可读:它讨论的是如何 steer、constrain 并 operationalize agent systems。 " ,
8787 href: " ./timeline/" ,
8888 },
8989 {
9090 date: " 2026-03" ,
9191 title: " The Anatomy of an Agent Harness" ,
9292 source: " LangChain Blog" ,
9393 summary:
94- " A component-level breakdown that makes the expression “model + harness” explicit and inspectable. " ,
94+ " 从部件层面把 “model + harness” 这个表达拆开,让它可检查、可讨论、可比较。 " ,
9595 href: " ./timeline/" ,
9696 },
9797];
@@ -106,16 +106,16 @@ const landscapeRows = [
106106];
107107
108108const communityThreads = [
109- " A long-running LINUX DO thread that captures real practice costs, handoff patterns, and failure modes. " ,
110- " Cross-links into OMO, Claude Code, Codex enhancement layers, and AI-native workflow discussions. " ,
111- " Useful mainly because it surfaces reality: control work, context cleaning, and recoverability dominate long runs. " ,
109+ " 一条持续更新的 LINUX DO 长帖,记录了真实实践成本、 handoff 模式与失败形态。 " ,
110+ " 它把 OMO、 Claude Code、 Codex 增强层与 AI-native workflow 讨论串联进了同一上下文。 " ,
111+ " 它的价值主要在于暴露现实:长任务里真正主导成本的,往往是控制面、上下文清洁与可恢复性。 " ,
112112];
113113
114114const topics = [
115115 {
116116 title: " framework-flow-diagrams" ,
117117 description:
118- " A runnable research app for comparing automation loops, harness layers, control points, host dependencies, and role handoffs across systems. " ,
118+ " 一个可运行的研究应用,用来比较不同系统里的 automation loop、 harness 层、控制点、宿主依赖与角色交接方式。 " ,
119119 href: " ./topics/framework-flow-diagrams/site/" ,
120120 },
121121];
@@ -136,30 +136,29 @@ const topics = [
136136 <div class =" overview-grid" >
137137 <div class =" overview-prose" >
138138 <p class =" section-label" >Definition First</p >
139- <h2 >Harness engineering is the engineering of the agent’s outer system. </h2 >
139+ <h2 >Harness engineering 研究的,是 agent 外层系统本身。 </h2 >
140140 <p class =" lead" >
141- In this repository, <strong >harness engineering</strong > means the engineered shell that
142- constrains, orchestrates, verifies, recovers, and makes an agent legible enough to run
143- inside real software work. The model matters, but the harness is what turns raw model
144- capability into a durable engineering surface.
141+ 在这个仓库里,<strong >harness engineering</strong > 指的是那层被工程化出来的外壳系统:
142+ 它负责约束、编排、验证、恢复,并让 agent 足够可读、可控,能够真正跑进软件工程工作流中。
143+ 模型当然重要,但真正把模型能力变成 durable engineering surface 的,是 harness。
145144 </p >
146145 <p >
147- That makes the central object of study neither the model alone nor the prompt alone, but
148- the system around the model: task intake, tool surface, execution boundaries, memory,
149- approvals, review discipline, and handoff structure.
146+ 这意味着首页要研究的中心对象,既不是模型本身,也不是 prompt 本身,而是模型外面的整套系统:
147+ task intake、 tool surface、 execution boundaries、 memory、approval、review discipline
148+ 与 handoff structure。
150149 </p >
151150 </div >
152151
153152 <aside id =" boundary" class =" boundary-panel not-content" >
154153 <p class =" section-label" >What It Is Not</p >
155154 <ul >
156- <li >Not just prompt engineering for a single session. </li >
157- <li >Not just a coding agent product or IDE plugin. </li >
158- <li >Not just an agent framework with abstract orchestration primitives. </li >
159- <li >Not just a workflow diagram with no durable execution shell. </li >
155+ <li >不只是单次会话里的 prompt engineering。 </li >
156+ <li >不只是某个 coding agent 产品或 IDE 插件。 </li >
157+ <li >不只是一个提供抽象 orchestration primitives 的 agent framework。 </li >
158+ <li >不只是画出了流程,但没有 durable execution shell 的 workflow 图。 </li >
160159 </ul >
161160 <LinkButton href =" ./definition/" variant =" secondary" icon =" right-arrow" >
162- Read the full definition
161+ 查看完整定义
163162 </LinkButton >
164163 </aside >
165164 </div >
@@ -168,35 +167,31 @@ const topics = [
168167 <section class =" overview-section" >
169168 <div class =" overview-prose" >
170169 <p class =" section-label" >Why Study It Separately</p >
171- <h2 >Once models become capable enough, the bottleneck moves outward. </h2 >
170+ <h2 >当模型能力足够强,瓶颈就开始向外移动。 </h2 >
172171 <p >
173- The reason harness engineering deserves its own category is that many practical failures no
174- longer come from raw model incompetence alone. They come from weak boundaries, poor
175- verification, unreliable continuation, unreadable task state, and blurred responsibility
176- between human steering and agent execution.
172+ Harness engineering 值得被单独当成一个研究类别,是因为很多实际失败已经不再只是模型不够强。
173+ 它们更多来自边界太弱、验证不足、续跑不可靠、任务状态不可读,以及 human steering 与
174+ agent execution 之间责任分界不清。
177175 </p >
178176 </div >
179177
180178 <div class =" reason-grid not-content" >
181179 <div class =" reason-card" >
182180 <h3 >Constraint</h3 >
183181 <p >
184- Real work needs permissions, guardrails, checks, and architecture boundaries that survive
185- across sessions.
182+ 真实工作需要的是能跨会话延续的 permissions、guardrails、checks 与 architecture boundaries。
186183 </p >
187184 </div >
188185 <div class =" reason-card" >
189186 <h3 >Recovery</h3 >
190187 <p >
191- Long-running tasks succeed or fail on clean handoff, resumability, and progress
192- legibility, not just on local code generation quality.
188+ 长任务成败更多取决于 clean handoff、resumability 与 progress legibility,而不只是局部代码生成质量。
193189 </p >
194190 </div >
195191 <div class =" reason-card" >
196192 <h3 >Coordination</h3 >
197193 <p >
198- The control plane often outweighs the code plane. Planning, delegation, review, and
199- synthesis become part of the system itself.
194+ 控制面经常比代码面更重。规划、委派、评审与综合,本身都会变成系统的一部分。
200195 </p >
201196 </div >
202197 </div >
@@ -206,14 +201,14 @@ const topics = [
206201 <div class =" overview-section-head" >
207202 <div class =" overview-prose" >
208203 <p class =" section-label" >Research Taxonomy</p >
209- <h2 >Different systems solve different outer-shell problems. </h2 >
204+ <h2 >不同系统,解决的是不同层面的外壳问题。 </h2 >
210205 <p >
211- The field is easier to navigate once you stop treating all agent tooling as one category.
212- The classification below is a research taxonomy, not a canonical vendor taxonomy.
206+ 一旦你不再把所有 agent tooling 都混成一类,这个领域就会清楚很多。下面这套分类是研究性 taxonomy,
207+ 不是某家厂商的 canonical taxonomy。
213208 </p >
214209 </div >
215210 <LinkButton href =" ./distinction/" variant =" minimal" icon =" right-arrow" >
216- Full distinction page
211+ 查看完整分类
217212 </LinkButton >
218213 </div >
219214
@@ -228,15 +223,14 @@ const topics = [
228223 <div class =" overview-section-head" >
229224 <div class =" overview-prose" >
230225 <p class =" section-label" >Primary Sources</p >
231- <h2 >The term makes more sense when you see how it formed. </h2 >
226+ <h2 >只有看到它是怎么形成的,这个词才会真正变清楚。 </h2 >
232227 <p >
233- This is not a random bundle of articles. The timeline shows how the conversation moved
234- from general agent design, to tool surface, to long-running harnesses, and then to a
235- sharper engineering abstraction.
228+ 这不是一组随便拼起来的文章。时间线展示的是讨论如何从一般 agent design,转向 tool
229+ surface,再到 long-running harness,最后收敛成更清晰的工程抽象。
236230 </p >
237231 </div >
238232 <LinkButton href =" ./timeline/" variant =" minimal" icon =" right-arrow" >
239- Full timeline
233+ 查看完整时间线
240234 </LinkButton >
241235 </div >
242236
@@ -248,7 +242,7 @@ const topics = [
248242 <h3 >{ item .title } </h3 >
249243 <p class = " timeline-source" >{ item .source } </p >
250244 <p >{ item .summary } </p >
251- <a href = { item .href } >Read the detailed timeline </a >
245+ <a href = { item .href } >看详细时间线 </a >
252246 </div >
253247 </article >
254248 ))}
@@ -259,28 +253,27 @@ const topics = [
259253 <div class =" overview-grid overview-grid--community" >
260254 <div class =" overview-prose" >
261255 <p class =" section-label" >Community Practice</p >
262- <h2 >Community material matters because it exposes costs that official essays compress. </h2 >
256+ <h2 >社区材料的重要性,在于它暴露了官方文章会压缩掉的真实成本。 </h2 >
263257 <p >
264- The community thread in this repository is useful not because it gives the canonical
265- definition, but because it shows what long-running practice actually feels like: where
266- time goes, what breaks, and what has to be made explicit for the work to continue.
258+ 这个仓库里收录的社区讨论之所以重要,不是因为它给出了 canonical definition,而是因为它展示了
259+ long-running practice 的真实体感:时间花在哪里、什么地方会坏掉、哪些东西必须被显式写出来,任务才能继续跑下去。
267260 </p >
268261 <ul >
269262 { communityThreads .map ((item ) => (
270263 <li >{ item } </li >
271264 ))}
272265 </ul >
273266 <LinkButton href =" ./community/" variant =" secondary" icon =" right-arrow" >
274- Community discussion and insights
267+ 查看社区讨论与实践观察
275268 </LinkButton >
276269 </div >
277270
278271 <div class =" community-insights not-content" >
279272 <h3 >Practice Signals</h3 >
280273 <ul >
281- <li >Control work often outweighs code work in long sessions. </li >
282- <li >Clean handoff and context hygiene are core capabilities, not polish. </li >
283- <li >Model availability and cost realities actively reshape harness design. </li >
274+ <li >长任务里控制面工作往往比代码面更重。 </li >
275+ <li >Clean handoff 和 context hygiene 是核心能力,不是后期打磨。 </li >
276+ <li >模型可用性与成本现实会持续反塑 harness design。 </li >
284277 </ul >
285278 </div >
286279 </div >
@@ -290,14 +283,14 @@ const topics = [
290283 <div class =" overview-section-head" >
291284 <div class =" overview-prose" >
292285 <p class =" section-label" >Current Landscape</p >
293- <h2 >The ecosystem is not a leaderboard. It is a set of different engineering surfaces. </h2 >
286+ <h2 >生态不是胜负榜,而是一组不同的 engineering surfaces。 </h2 >
294287 <p >
295- The summary below is only a slice. The goal is to help readers learn how to read the
296- ecosystem: by host layer, harness layer, methodology layer, and orchestration layer.
288+ 下面这张表只是一道切面。它的目的不是替你排名,而是帮助读者学会怎么读生态:按 host layer、
289+ harness layer、 methodology layer 与 orchestration layer 去看。
297290 </p >
298291 </div >
299292 <LinkButton href =" ./landscape/" variant =" minimal" icon =" right-arrow" >
300- Full landscape
293+ 查看完整生态
301294 </LinkButton >
302295 </div >
303296
@@ -324,13 +317,13 @@ const topics = [
324317 </section >
325318
326319 <section id =" topics" class =" overview-section" >
327- <div class =" overview-section-head" >
320+ <div class =" overview-section-head" >
328321 <div class =" overview-prose" >
329322 <p class =" section-label" >Research Topics</p >
330- <h2 >This repository does not stop at overview. It descends into runnable topics. </h2 >
323+ <h2 >这个仓库不会停在综述层,它会继续下沉到可运行专题。 </h2 >
331324 <p >
332- The root site stays lightweight and comparative. Deeper work belongs under
333- <code > topics/</code >, where each topic can become a more independent research artifact.
325+ 根站保持轻量、比较型与导航型。更深的工作继续放到
326+ <code > topics/</code > 下,让每个 topic 都能逐渐长成更独立的研究 artifact。
334327 </p >
335328 </div >
336329 </div >
@@ -345,28 +338,28 @@ const topics = [
345338 <section class =" overview-section overview-section--next" >
346339 <div class =" overview-prose" >
347340 <p class =" section-label" >Next Steps</p >
348- <h2 >If the term now feels sharper, the next move is to read by question, not by hype. </h2 >
341+ <h2 >如果这个词现在已经清楚一些了,下一步就应该按问题去读,而不是按 hype 去追。 </h2 >
349342 </div >
350343
351344 <CardGrid >
352345 <LinkCard
353- title =" I want the precise definition "
354- description =" Start with the repository’s engineering definition and its explicit boundaries. "
346+ title =" 我想先看精确定义 "
347+ description =" 从仓库里的工程定义与明确边界开始。 "
355348 href =" ./definition/"
356349 />
357350 <LinkCard
358- title =" I want to choose between routes "
359- description =" Read the research taxonomy before comparing products or workflows. "
351+ title =" 我想先理解怎么选路线 "
352+ description =" 在比较产品或 workflow 之前,先看研究性分类。 "
360353 href =" ./distinction/"
361354 />
362355 <LinkCard
363- title =" I want to see the field in motion "
364- description =" Use the timeline and ecosystem pages to understand how the space formed and where it is drifting. "
356+ title =" 我想看这个领域是怎么形成的 "
357+ description =" 用时间线和生态页理解它如何形成,又正在向哪里漂移。 "
365358 href =" ./timeline/"
366359 />
367360 <LinkCard
368- title =" I want something runnable "
369- description =" Go straight to the topic app and work from a concrete research artifact. "
361+ title =" 我想直接看可运行材料 "
362+ description =" 直接进入 topic app,从一个具体研究 artifact 开始。 "
370363 href =" ./topics/framework-flow-diagrams/site/"
371364 />
372365 </CardGrid >
0 commit comments