一个 AI 智能体(agent)不只是那个会回答你的模型。它还需要一套能感知环境、调用工具、记住上下文、持续把事干完的「身体」——这套身体,就叫 harness。
一个比喻
三个关键点
- 模型负责「想」,harness 负责「做」——模型输出的是一段文字 / 推理;真正去读文件、跑命令、调 API 的,是 harness 里的一个个插件。
- harness 是「插件化」的——它的每一项能力(模型、工具、技能、会话、沙盒、存储、循环、调度、界面)都是一个可插拔的插件,换一个插件就换一种能力。
- 每一次运行都能被记录和回放——harness 会把模型看到的一切写进一份只追加的日志,方便你调试、复现,甚至「分叉」出来重来一遍。
看一眼真实配置
下面是 DeepSeek Harness 仓库里一段真实配置(节选并简化):每一行就是一个插件——模型是大脑,沙盒是手脚架,终端是手,会话是记忆。
# 节选并简化自 examples/jsonrpc-agent/minimal.cordis.yml
- id: llm-deepseek
name: '@deepseek-ai/dsh-llm-deepseek' # 大脑:接入 DeepSeek 模型
config:
apiKeyEnv: DEEPSEEK_API_KEY
models:
- id: deepseek-chat
- id: sandbox
name: '@deepseek-ai/dsh-sandbox-local' # 手脚架:本地沙盒
- id: terminal-bash
name: '@deepseek-ai/dsh-terminal-bash' # 手:执行 shell 命令
- id: sessions
name: '@deepseek-ai/dsh-session-persistence-jsonl' # 记忆:会话持久化
config:
root: './.sessions'
⬇ 射爆底部那架来回飞的火箭,返回主页