Agent Loop
Thought → Action → Observation
ReAct 以来的基本循环结构:每一轮 agent 观察当前状态、思考下一步、调用工具、读取结果,再进入下一轮。不同框架对 loop 边界的暴露程度不同 —— LangGraph 把每一轮变成一次图遍历,smolagents 让模型直接写 Python 跑完多步,OpenAI SDK 把 loop 隐藏只暴露 handoff。
the L3 layer
框架会过时,pattern 会留下。这一层讲 harness engineering 的核心抽象 —— agent loop、context compaction、HITL、tool design、memory tiers、verification —— 以及每个 pattern 在不同框架里是怎么实现的。
这一层正在持续扩充。draft 状态的 pattern 欢迎提 PR。
Thought → Action → Observation
ReAct 以来的基本循环结构:每一轮 agent 观察当前状态、思考下一步、调用工具、读取结果,再进入下一轮。不同框架对 loop 边界的暴露程度不同 —— LangGraph 把每一轮变成一次图遍历,smolagents 让模型直接写 Python 跑完多步,OpenAI SDK 把 loop 隐藏只暴露 handoff。
对抗 context rot
长任务必然超出上下文窗口。Compaction 是 harness 主动介入的过程:当历史太长时,把旧对话压缩成摘要腾出空间。关键决策是触发时机(harness 定期 vs agent 自主)和压缩粒度(按 token 预算 vs 按任务边界)。Anthropic 的 server-side compaction 在 100 轮 web search 实验中降低 84% token 消耗。
interrupt · approve · resume
在 agent 任意一步暂停等人工审批。三种插入方式:breakpoint(特定节点前后)、interrupt(动态决定)、approve-with-changes(人工可以修改 agent 的提议再继续)。Claude Agent SDK 的 canUseTool callback 是目前最细的权限模型。
tool schema is agent UX
一个设计糟糕的工具能让 agent 整体表现暴跌 30%。关键原则:名字清楚表达意图、schema 严格、错误信息机器可读、返回值结构化。playwright-mcp 用 accessibility tree 而不是截图 —— 这是同类工具中最好的设计范例。
core · archival · recall
MemGPT 论文定义的三层记忆结构已成为有状态 agent 的参考范式。核心记忆常驻 context(persona / 关键事实),归档记忆是向量库按需检索,召回记忆是完整历史按时间或实体召回。关键是 agent 自主决定什么进哪层。
structured self-check
不是让 LLM 更准,而是让 harness 能验证 LLM 的输出。编译器、linter、单元测试、assertion、LLM-as-judge 都是 verification 的形式。LangChain 的 Deep Agents 通过在规划和验证阶段加重推理(reasoning sandwich),把 Terminal Bench 2.0 从第 30 名提升到前 5。