背景与动机
LLM 擅长生成和推理,但它本身不会天然拥有文件系统、命令行、外部 API、任务队列和权限控制。Agent 的工程化问题,就是把模型能力放进一个可执行、可观察、可控制的系统里。
Harness 可以理解为 Agent 的“执行外壳”:它负责给模型提供工具、上下文、环境、事件流和安全边界。

从 LLM 到 Agent
最简单的 LLM 调用是:
输入 prompt -> 得到文本输出Agent 则多了循环:
理解目标 -> 选择工具 -> 执行动作 -> 观察结果 -> 继续决策这个循环让模型不只是回答问题,而是能完成任务。
为什么需要 Harness
如果没有 Harness,Agent 会遇到几个问题:
- 工具调用不可控。
- 上下文来源混乱。
- 权限边界不清楚。
- 错误无法恢复。
- 执行过程不可观察。
- 多轮任务难以持久化。
Harness 的目标是把这些问题工程化。
大脑和双手的解耦
可以把 Agent 系统拆成两部分:
大脑:模型、推理、计划、选择下一步双手:工具、命令、文件、API、环境解耦后,模型不需要直接拥有所有权限,而是通过受控接口使用工具。这样更容易做权限管理、日志记录、测试和替换。
实战关注点
设计 Agent Harness 时,优先考虑:
- 工具是否有清晰 schema。
- 每次动作是否有日志。
- 失败后是否能重试或回滚。
- 哪些操作必须人工确认。
- 上下文压缩后是否还能保持目标一致。
Harness 最小心智模型
模型负责判断下一步。工具负责把下一步变成动作。环境负责限制动作发生在哪里。事件负责记录动作发生了什么。Session 负责保存任务状态。只要这五件事没有拆清楚,Agent 系统就很容易变成一个不可调试的长提示词。
一句话总结
Agent Harness 的核心是把模型推理放进一个有工具、有环境、有权限、有观察能力的工程系统里。