Harness Engineering(智能体外壳工程)
Agent = Model + Harness
模型负责生成与推理,Harness 负责把模型放进一个可执行、可观察并能持续工作的环境。AIME Chat 用这个视角组织 Agent:模型之外还有 Instructions、上下文、工具、状态、子 Agent、审批和日志。
这是一种工程划分,不表示换一个模型就能自动获得所有能力。最终效果仍取决于模型、Provider、本机运行环境、已启用工具和任务约束。
AIME Chat 的 Harness 分层
1. Agent 与编排循环
Mastra Agent 运行时处理流式响应、工具调用和后续观察。一次任务通常经历:
用户请求 → 组装上下文 → 模型决策 → 工具调用 → 工具结果 → 后续决策或回答
取消、错误、模型停止条件或人工交互都可能结束或暂停这个循环。
2. Instructions 与人格
- Agent Instructions 定义角色、目标、工作方法和边界;
- 助手人格调整通用交互风格;
- Skill 向 Agent 提供可复用说明、脚本和领域流程。
Instructions 不能替代权限控制。模型即使被告知“不要访问某路径”,工具仍应独立校验输入和目标。详见 Agent 管理。
3. 工具接口
工具把文件、进程、网络、数据库和外部服务暴露给 Agent。当前来源包括:
- Built-in:文件、Bash、代码执行、Web、知识库、浏览器、音频、图像、任务等;
- MCP:本地 stdio 或远程 HTTP 服务器;
- Skill:本地或导入的技能包。
Schema 用于描述和验证参数,但工具执行仍拥有各自的真实权限。文件与 Bash 工具以当前操作系统用户权限运行,CodeExecution 也不是完整的 OS 沙箱。详见 工具系统 与 MCP 服务器。
4. 上下文、记忆与知识库
Harness 会为请求组装会话、项目、Agent 和工具上下文。需要跨对话使用资料时,还可以使用:
- 知识库:BM25 全文检索,或可选语义向量、混合检索和重排;
- 养成记忆:Cultivation Agent 从聊天历史维护长期记忆 Wiki;
- Memory 工具:读取或搜索已持久化的记忆数据。
上下文有长度和质量限制。检索命中不等于事实正确,重要结论仍应读取原文并核对来源。详见 知识库 与 养成记忆。
5. 子 Agent 与任务状态
Agent 可以配置可用的子 Agent;Code Agent 当前包含 Explore 和 Plan 子 Agent。结构化任务使用 TaskCreate、TaskGet、TaskList 和 TaskUpdate,长期目标可使用 Goal 工具。
委派只是一种执行能力,不保证模型一定调用,也不表示多个任务会自动并行或正确合并。应在主任务中明确范围和验收标准。
6. 项目与长时间任务
- 项目把本地目录、聊天线程、文件工作区和后台 Bash 会话关联起来;
- Bash 可把长命令转到后台,并通过 BashOutput/ListBash/KillBash 管理;
- Crons 可按计划启动 Agent、工具和项目上下文;
- 项目聊天可导出用于归档、分析或训练准备。
后台运行和定时触发会延长副作用的生命周期。创建前应检查工作目录、凭据、停止条件和重复执行影响。
7. 工具选择、审批与数据边界
AIME Chat 提供多层配置:
- 全局启用或停用工具;
- 为 Agent 选择工具和子 Agent;
- 在聊天输入区开启 Require tool approval;
- 把 Secret 注入需要认证的工具环境。
这些能力是应用级控制,不是系统级隔离:审批并非所有执行入口都默认开启,工具也可能访问当前用户有权限的数据。Secret 当前保存在本地应用数据库中,应保护系统账户、数据库与备份。
8. 可观测性与验证
聊天界面会展示工具调用及结果,应用日志记录运行库、工具和后台服务的诊断信息,关于页面提供日志入口。项目还会汇总后台 Bash 状态。
日志和构建结果只能证明被覆盖的路径。例如,静态构建成功不能证明真实 Provider、登录态浏览器、容器或生产部署可用;这些场景需要在目标环境单独验证。
分层一览
| 分层 | 在 AIME Chat 中的实现 | 需要注意 |
|---|---|---|
| 模型运行 | Provider + Mastra Agent | 模型能力和配额不同 |
| 指引 | Instructions、人格、Skill | 指令不是权限边界 |
| 工具 | Built-in、MCP、Skill | 可能产生本机或远程副作用 |
| 上下文 | 会话、项目、知识库、Memory | 有长度、时效和检索误差 |
| 编排 | 子 Agent、Task、Goal | 仍需明确范围与验收 |
| 长任务 | 后台 Bash、Crons | 注意停止、重试与重复执行 |
| 控制 | 工具清单、聊天审批、Secrets | 不是 OS 级沙箱或加密保险箱 |
| 观察 | 工具结果、状态和日志 | 不能替代目标环境测试 |
使用建议
- 先定义目标、允许的工作区和不可执行的操作。
- 为 Agent 选择最小必要工具和可信的 MCP/Skill。
- 对写文件、Shell、数据库、浏览器和发布操作检查参数。
- 把长任务拆成可验证步骤,并保留测试或运行证据。
- 对无法在当前环境验证的部分明确记录边界。