Harness
Harness 让 agent 能够追求长时间运行、复杂的目标,同时保持其工作持久、可见且可控。它在重试和中断之间保留进度,同时为人员和其他系统提供检查进度、添加上下文、批准操作、重定向 agent 或停止它的方式。
Agent harnesses 适用于工作随时间持续的任何场景。常见示例包括通过 CI 和审查携带变更的编码 agents、并行协调许多任务的软件工厂(例如 Mastra Factory)、随事件演变而调整的 SRE agents,以及随着账户、信号和对话变化而响应的市场推广(go-to-market)agents。
在 Mastra 中,harness 指一组用于管理超出单次不间断运行的 agent 的能力。你可以单独采用这些能力,或根据需要组合使用。
何时使用 harness何时使用 harness的直接链接
根据 agent 的需求选择起点。你可以使用一种或多种能力。
| 如果你想要 | 从这里开始 | 原因 |
|---|---|---|
| 在客户端断开连接或服务器重启期间保持运行可用 | Durable Agents | 持久化运行状态,并让客户端重新连接到其流。 |
| 运行缓慢的工具、workflows 或 subagents 而不阻塞 | Background Tasks | 异步完成工作并将结果返回给 agent。 |
| 让 agent 持续工作直到达成目标 | Goals | 评估 thread 级目标,直到完成或达到运行预算。 |
| 在重复的时间点自动启动工作 | Schedules | 在 cron 调度下启动隔离运行或向现有 thread 发送提示词。 |
| 添加上下文、重定向活动工作或唤醒空闲 thread | Signals | 立即传递输入,或保留到下一轮。 |
| 对 GitHub、Slack、持续集成或其他外部系统的变化做出反应 | Signal Providers | 跟踪订阅并将匹配事件转发到 agent threads。 |
| 构建具有会话、模式、状态、审批和事件的交互式产品,或让用户控制、排队后续工作并停止运行 | AgentController | 围绕共享 agent 运行时托管隔离会话,每个会话都有自己的运行控制。 |
| 为 agent 提供文件、shell 以及编码 agent 所需的默认配置 | createCodingAgent() | 构建已配置 workspace、任务跟踪和重试的标准 agent。 |