三分钟心智模型

agent-harness 不是新的 agent framework。现有执行后端继续负责执行语义,`agent-harness` 负责把这些能力接成一套可以运行、检查和恢复的应用运行时。

最短定义

你负责 workspace、agents、tools 和产品行为;`agent-harness` 负责把它们接成一套可上线的运行时。

什么时候适合用

如果你缺的是运行时层,而不是再多一个 agent loop,那么它通常适合你。

适合

你需要审批、持久化记录、重启恢复、排队或运行检查能力。

不适合

你只需要一次短生命周期调用,不关心审批、持久化和后续运行维护。

工作区结构与源码分层

应用侧按 workspace 形状装配;YAML 在 config/** 下会被递归发现,下面是与 README 一致的推荐目录结构。

your-workspace/
  config/
    agent-context.md
    runtime/
      workspace.yaml
      runtime-memory.yaml
    catalogs/
      models.yaml
      embedding-models.yaml
      vector-stores.yaml
      stores.yaml
      backends.yaml
      tools.yaml
      mcp.yaml
    agents/
      direct.yaml
      orchestra.yaml
  resources/
    package.json
    tools/
    skills/

维护本开源仓库时

若你改的是 agent-harness 包本身,请把实现放在仓库根的 src/、测试放在 test/,不要与上面的应用工作区混为一谈。

第一次受治理运行

  1. 安装包并建好标准工作区结构。
  2. 先在 YAML 里定义 models、stores、tools、MCP 和 agents。
  3. createAgentHarness(...) 启动 runtime。
  4. request(...) 发起任务,用 subscribe(...) 观察执行过程。
  5. 用 inspection APIs 查看 requests、sessions、approvals 和 health。
import { createAgentHarness, request, listSessions, stop } from "@botbotgo/agent-harness";

const runtime = await createAgentHarness(process.cwd());
const result = await request(runtime, {
  agentId: "orchestra",
  input: "Review this repository and propose the next runtime improvement.",
});

console.log(result.output);
console.log(await listSessions(runtime));
await stop(runtime);

一开始先决定这三件事

先选 backend

想要更高层的执行语义、少写应用侧编排,优先用 backend: deepagent。如果只是较轻量的 direct-response 流程,或者工作区明确需要更轻的后端形态,再用 backend: langchain-v1

让运行时负责运行时问题

审批、恢复、检查和排队,尽量交给运行时来处理,不要散落在 prompt 约定里。

以公开发布说明为准

README、开发文档与 RELEASE_NOTES.md 描述已发布行为;集成、升级或排查差异时,请优先对照这些材料。

下一步读什么

完成起步之后,建议先读“应用模型”,了解运行时会长期保持稳定的对象和接口。