AGENTUPDATE 技术博客

1000usdinchina.com开发总结(5)-Claude Code 工作流:prompt、context、harness、loop engineering

1000usdinchina.com开发总结(5)-Claude Code 工作流:prompt、context、harness、loop engineering
目录

我单人 ship 了一个 100 城、四语言的旅行应用 —— 1000usdinchina.com。杠杆不是「AI 帮我写了代码」,而是把一个 AI coding agent(Claude Code)当成一个要在四种纪律上工程化的系统:prompt、context、 harness、loop engineering。这是系列的旗舰篇,也是 如果你用 coding agent 开发、最值得读的一篇。

Claude Code 工作流的四种纪律——prompt、context、harness、loop engineering

目录

四种纪律

coding agent 不是你向它要片段的聊天机器人。它是一个会读、改、跑、验的自治系统。可靠性来自把 四层工程化:

flowchart TB
    P[Prompt engineering
做什么] --> C[Context engineering
agent 知道什么] C --> H[Harness engineering
agent 能做什么] H --> L[Loop engineering
如何迭代到完成] L -->|反馈| C

少任何一层,agent 都会不可靠:prompt 含糊就乱走,context 缺失就幻觉,harness 弱就没法验, 没有 loop 就不收敛。

1. Prompt engineering:说 what,不说 how

第一课:指令说 WHAT,不说 HOW。「加一条家庭费用规则」是目标,不是步骤。步骤归 agent。 过度指定 how 会跟 agent 的规划打架;指定不足 what 又让它漂。好 prompt 钉住意图和验收标准, 把实现留给 agent —— 然后验证结果。

一个用代价换来的推论:「好,做 X」不是开始敲代码的许可。对任何非平凡的事,agent 应先规划、 把计划写下来,只在明确的实现动词上才动手。Prompt engineering 既是指令,也是克制

2. Context engineering:agent 的工作记忆

大部分杠杆在这里。agent 的好坏取决于它 context window 里有什么。四个机制让 context 保持高信噪比:

  • 项目宪法(CLAUDE.md)。 硬约束放在一个永远加载的文件里:「TypeScript strict,禁 any」、 「边缘运行时 —— 禁 Node API」、「未明示不 commit」、「内部文档中文,UI + 代码英文」。这些每一轮 都覆盖默认行为。

    ## 硬约束(违反即 bug)
    1. TypeScript strict + 禁 `any`
    2. 边缘运行时 —— 禁 fs/path/child_process
    3. i18n 货币强耦合(en→USD, ja→JPY...)
    4. 未明示绝不 commit
    
  • 持久记忆。 该跨会话存活的事实(决策、坑、半成品任务的状态)写进持久记忆文件,而不是每次重推。

  • 刻意早压。 context 不会在有用阈值自动压,所以我在干净断点(约 60% 满)手动压,保证摘要质量高, 赶在 harness 被迫晚压之前。

  • 子代理隔离。 吵闹的操作 —— 全量测试、几百条静态路由的构建 —— 交给子代理在它自己的 context 里读完整输出,只回 {ok, errors:[...]}。主 context 永远看不到那 268 条路由的构建日志。

flowchart LR
    M[主 agent context
高信噪] -->|委派吵闹任务| S[子代理 context] S -->|读完整输出| Logs[(构建/测试洪流)] S -->|只回摘要| M

Context engineering 决定了 agent 在长会话里是保持锐利,还是淹死在自己的工具输出里。

3. Harness engineering:工具、权限、子代理

harness 是 agent 能的一切:工具、权限边界、hooks,以及它驱动的部署链路。工程化得好意味着:

  • 一条 agent 操作的分段链路。 本地 → dev worker → prod,绿了才进下一段。agent 跑每一段; 卡口(测试、Lighthouse CI)决定晋级。(完整细节见 第 7 篇测试与 DevOps。)
  • 权限感知的动作。 有些动作不可逆或对外(commit、push、deploy)。harness 要求明确授权 —— agent 永不自作主张 commit 或上线。
  • 子代理当工人。 除了隔离 context,子代理还并行独立工作、后台跑长任务,回报结构化结果。

心智模型:你设计 harness,agent 在其中操作。 好的 harness 让安全的路成为最省事的路。

4. Loop engineering:迭代到完成

agent 在循环里最闪光:做 → 观察 → 纠正 → 重复,直到某条件成立。艺术在于定义退出条件,并让每次 迭代便宜。

这个项目的具体例子是四语言 i18n 翻译循环。把一个不断长大的应用翻成四种语言,不是一发 prompt 的事 —— 它是个循环:

flowchart TD
    A[扫描 UI 中未翻译字符串] --> B{找到了吗?}
    B -->|有| C[翻进 4 个 locale,货币感知]
    C --> D[跑 i18n smoke + lint]
    D --> E{绿了?}
    E -->|否| C
    E -->|是| A
    B -->|无| F[完成:所有 locale 同步]

每一遍找出未翻字符串、填满四个 locale(尊重货币耦合)、跑 i18n smoke 测试,直到一次扫描返回空。 一个自定步进的 agent 循环,把「翻译整个应用」—— 一个没有单条 prompt 能完成的任务 —— 变成一个 收敛过程。这就是 loop engineering:不是一个大请求,而是一个便宜的步骤 + 一个清晰的退出条件,跑到完成。

Superpowers skills:可复用的专长

贯穿四种纪律的黏合剂是 skills —— 打包、可复用、agent 按需加载的流程。不必每次会话重讲「我们 怎么做 TDD」或「怎么验 ETL」,那份专长住在一个 agent 调用的 skill 里:

  • 通用流程 skill:brainstorming(任何功能前)、test-driven-developmentsystematic-debuggingsubagent-driven-development
  • 项目专属 skill:验 ETL 产物、加新城、加新语种(把货币 + 0-decimal 检查内置)、部署流程。

skill 是 coding agent 积累制度知识的方式。新会话开局就已经懂项目的纪律 —— 因为它们是被编码的, 不是被记住的。

要点

  • 把 coding agent 当成在四层上工程化的系统:prompt、context、harness、loop。
  • prompt 说 what 和验收标准;how 归 agent。克制很重要。
  • context 是真正的杠杆:项目宪法、持久记忆、刻意早压、子代理隔离,让它保持高信噪。
  • harness 定义什么安全、什么省事;agent 在其中操作,永不越权上线。
  • loop engineering 把无界任务(如翻成四语)变成有清晰退出条件的收敛过程。
  • skill 编码可复用专长,让每次会话一开局就聪明。

常见问题

AI coding agent 的 context engineering 是什么? 通过项目宪法、持久记忆、刻意早压、把吵闹输出卸给子代理,来策展 agent context window 里的内容, 让 agent 在长会话里保持准确。

harness engineering 是什么? 设计 agent 在其中操作的工具、权限、hooks 和链路,让安全的路(测过、设卡、授权的部署)同时是省事的路。

loop engineering 是什么? 把工作组织成一个便宜的重复步骤 + 一个清晰退出条件 —— 例如「找到并翻译未翻字符串,直到扫描返回空」 —— 让 agent 收敛到完成。

一个人能用 Claude Code ship 一个真应用吗? 能。这个 100 城、四语言的应用是单人做的,靠的是把 agent 在这四种纪律上工程化,而不是向它要零散片段。


下一篇 → 在免费额度上做 LLM 行程规划:Qwen + Cloudflare Workers AI