# Agent 与工具运行时 (/docs/subsystems/agent)

## 它解决什么问题 [#它解决什么问题]

工程任务会跨实验、仿真和交付持续很久。运行时负责计划、调用工具、等待结果、处理异常与交接，让任务不依赖某一次聊天始终在线。

## 自己保存什么 [#自己保存什么]

会话、任务目标、任务状态、工具调用、提案、人员决定、输入引用、产物引用，以及模型和 Skill 版本。

正式的实验计划、工程变更和发布包由各业务模块保存。运行时持有它们的引用。

## 内部结构建议 [#内部结构建议]

| 组件 | 做什么 |
| --- | --- |
| 上下文装配 | 读取目标、选中对象、授权范围、相关证据 |
| 任务规划 | 把目标拆成可执行步骤，登记依赖与检查点 |
| 工具注册与适配 | 把业务 API、MCP 工具和求解任务统一接入 |
| 执行与等待 | 调用工具、追踪长任务、保存进度 |
| 人工介入 | 展示提案、接受修改、记录决策和恢复条件 |
| 轨迹与评测 | 回看依据、调用、结果和失败原因 |

## 任务状态 [#任务状态]

```text
已创建 → 规划中 → 执行中 → 已完成
                    ↕
             等待输入 / 等待人工 / 等待工具

执行中的异常 → 可恢复失败 / 已终止
```

取消会阻止后续步骤，并请求取消工具任务。某个工具暂不支持取消时，显示仍在运行；已发生的业务修改需要显式回退或补偿。

## 一次工具调用需要讲清楚什么 [#一次工具调用需要讲清楚什么]

目标项目、对象与基准版本，输入参数，操作身份，提交标识，以及预期输出。工具返回结构化结果、任务 ID 或可处理的错误。

超时不一定意味着操作失败。运行时先查询原提交状态，再决定重试，避免重复提交。

## 人怎么介入 [#人怎么介入]

人可以补充输入、锁定字段、调整步骤、拒绝建议或局部接受变更。恢复任务时重新检查依赖版本，并使后续计划与人的决定一致。

界面上每条消息标明来自人、Agent 还是工具。Agent 间交接属于任务轨迹，不能伪装成用户的新要求。

## 怎样支持持续改进 [#怎样支持持续改进]

运行轨迹可用于评价建议是否有效、工具是否可靠、哪些步骤反复失败。新的 Skill 或工作流先作为候选版本，与基线比较，再决定是否启用。

评估关注完成质量、人工返工和关键遗漏。业务数据回流本身不代表模型权重被训练，也不代表工作方法已经验证有效。

## 独立方式与首期验证 [#独立方式与首期验证]

运行时可作为平台能力供不同产品复用，通过工具接入外部系统。首期用“读取实验—调用分析—运行仿真—提出下一步建议”验证暂停恢复、版本冲突、工具失败和人工接手。

具体模型供应商、Agent 框架和长期记忆实现仍待选型；任务语义与业务接口保持独立。
