可控 Agent 工程:Context、Harness 与 Loop 设计

3 阅读3分钟

可控 Agent 工程:Context、Harness 与 Loop 设计

_Agent_Context_Harness_Loop_AI_agent_Claude_Code_agent_Context_Engineering_1_11_Context_Window_Context_Rot_LostintheMiddle_CLAUDE.md_vs_Harness_Engineering_3_21_Memory_Tools_Permissions_Hooks_Observability_Harness_vs_Prompt_22_Hooks_PreToolUse_hook_2.png

课程定位

面向两类开发者:已经在用 Claude Code、想把任务执行质量和自动化程度往上推一层的;以及需要设计更可控的 agent 工程体系、管权限、管成本、管多 agent 协作的。不讲怎么写提示词,讲设计信息、设计约束、设计循环。

你会学到什么

大多数人用 Claude Code 停留在"对话驱动"阶段——手动发任务、手动看结果。这门课的目标是让你往后退一步,从设计信息、设计约束、设计循环的角度来用 agent,把原来需要你盯着的工作,变成可以无人值守跑起来的系统。

课程结束后你会清楚三件事:loop 这个概念在工程上到底是什么、什么场景真正需要它、什么场景用不上别硬套;以及普通场景下最实用的落地路径——用 interview skill 把需求转成 spec.md,再用 /goal 执行,少盯、少手动、少返工。


学习大纲

模块一:Context Engineering(1 节)

1-1 核心原则

  • Context Window 是零和资源,填什么、不填什么都是决策
  • Context Rot 是什么、为什么越长越烂
  • 关键信息放中间为什么会被遗忘(Lost-in-the-Middle 问题)
  • 实操:CLAUDE.md 应该写什么 vs 不该写什么

模块二:Harness Engineering(3 节)

2-1 五层框架

  • Memory / Tools / Permissions / Hooks / Observability 各层作用
  • Harness vs Prompt 的区别:一个是建议,一个是强制

2-2 Hooks 深度

  • PreToolUse hook:唯一能无条件拦截工具调用的机制
  • 退出码 2 的语义和实际用法
  • 实操:写一个阻断危险操作的 hook

2-3 权限与沙箱设计

  • allow-list vs deny-list 策略取舍
  • 多 agent 场景下权限边界怎么划
  • 可观测性:怎么知道 agent 在干什么

模块三:Loop Engineering(4 节)

3-1 什么是 Loop,为什么现在可行

  • Loop 的本质:cron + 决策者——模型每个 tick 决定下一步动作,不是硬编码的分支
  • 为什么现在才行:context window 够大,一次能装下整个代码库;成本也降到合理区间
  • 演化路径:ReAct → AutoGPT → ralph → /goal → 现在的编排 loop

3-2 两种 Loop 类型

  • 确定性 loop:测试通过 / 代码编译 / 健康检查返回 200——成功条件客观,最安全,可完全无人值守
  • 非确定性 loop:需要 verifier agent,写的 agent 和检查的 agent 不应是同一个(模型给自己打分会系统性偏宽)
  • 如何选:有明确 pass/fail 信号就用确定性,目标模糊就别上 loop

3-3 Ralph 模式与 context reset

  • 核心洞察:长 agent session 随 window 填满旧推理和死路而降级
  • Ralph 的解法:每次迭代都是全新 agent,从磁盘读当前仓库状态,做一个工作单元,commit,退出
  • 状态活在磁盘和 git 里,不活在对话里
  • 实操:用 Claude Code 的 -p 模式和 /goal 命令跑一个 ralph 式 loop

3-4 Loop 的成本控制与失效模式

  • 成本重心转移到 loop 管理:限制迭代次数、检测无进展、设 dollar budget
  • 最大的错误:在 verification gate 可信之前就让 loop 跑起来——一个烂 loop 会更快地 ship 烂代码
  • 多 agent 监督结构:orchestrator + sub-agent + verifier agent 三角