docs(agent-runner): update pluginization design status

This commit is contained in:
huanghuoguoguo
2026-05-29 21:03:21 +08:00
parent 2ee4880ff6
commit b2c57dd67a
11 changed files with 340 additions and 12 deletions

View File

@@ -14,6 +14,7 @@ Phase 1 的目标是让当前聊天 Pipeline 在选择插件化 AgentRunner 后
- Runner 由插件提供,并通过 `AgentRunOrchestrator` 调用。
- `local-agent` 插件达到旧内置 local-agent 的主要行为 parity。
- 官方外部 runner 插件至少完成 smoke 验收。
- 外部 harness runner当前以 Claude Code MVP 为代表)至少完成一次 WebUI smoke验证 event-first context、资源投影和 state handoff。
- 旧 Pipeline 配置兼容,新配置可保存并生效。
- 权限裁剪、错误隔离、运行状态更新不破坏主流程。
@@ -67,6 +68,7 @@ Host 侧 agent runner 单测不通过时,不应进入 UI parity QA。
- WebUI 截图或浏览器操作记录。
- 后端日志中对应 query id/run id 的关键行。
- 对外部 runner记录外部服务响应摘要或错误码。
- 对外部 harness runner记录 context 文件、MCP/skill 投影、外部 session id / working directory state 和 CLI 错误摘要。
用户可见流程必须通过 WebUI 或真实消息平台验证。API/curl 只能作为诊断证据,不能单独让 UI case PASS。
@@ -76,7 +78,7 @@ Host 侧 agent runner 单测不通过时,不应进入 UI parity QA。
| --- | --- | --- | --- |
| P0-ENV-01 | LangBot 服务可用 | 启动后端和前端,打开 WebUI。 | WebUI 可登录/访问;后端无启动异常;插件系统按配置启用。 |
| P0-ENV-02 | 插件 runtime 可用 | 查看插件列表或后端日志。 | runtime 已启动;官方 runner 插件处于可用状态;无循环重启。 |
| P0-ENV-03 | Runner registry 可发现插件 runner | 打开 Pipeline AI runner 配置。 | runner 下拉列表来自插件 registry至少能看到 `plugin:langbot/local-agent/default`。 |
| P0-ENV-03 | Runner registry 可发现插件 runner | 打开 Pipeline AI runner 配置。 | runner 下拉列表来自插件 registry至少能看到 `plugin:langbot/local-agent/default`;若安装了 Claude Code runner还应看到 `plugin:langbot/claude-code-agent/default`。 |
| P0-ENV-04 | 默认 Pipeline 可创建 | 新建 Pipeline 或读取默认 Pipeline。 | 默认配置使用 `ai.runner.id``ai.runner_config`;默认 runner 可保存。 |
| P0-ENV-05 | 主聊天路径调用插件 runner | 使用默认 `local-agent` Pipeline 发送一条普通消息。 | 后端日志显示走 `AgentRunOrchestrator` / `RUN_AGENT`;用户收到正常回复;旧内置 runner 不应作为主路径执行。 |
| P0-ENV-06 | 单测基线 | 运行 `uv run --frozen pytest tests/unit_tests/agent`。 | 全部通过;若失败,必须先修复或记录为 P0 FAIL。 |
@@ -138,6 +140,17 @@ Host 侧 agent runner 单测不通过时,不应进入 UI parity QA。
| P2-EXT-04 | `dashscope-agent` | 配置 agent 或 workflow 并发送消息。 | 调用成功;失败时错误可控且不影响后续请求。 |
| P2-EXT-05 | `langflow-agent` | 配置 flow endpoint 并发送消息。 | 普通或 SSE 流式响应能归一为 LangBot 消息。 |
| P2-EXT-06 | `tbox-agent` | 配置 Tbox 应用并发送消息。 | 回复正常;多模态输入按插件能力处理。 |
| P2-EXT-07 | `claude-code-agent` | 配置本地 Claude Code CLI使用保守权限模式发送确定性 Debug Chat prompt。 | runner 可选、配置可保存、CLI 成功返回LangBot context 文件可被 Claude Code 读取;`external.session_id` / `external.working_directory` 可写入 host-owned stateCLI 错误、timeout、空输出能被转成受控 `run.failed`。 |
### 9.1 外部 harness runner 追加检查
对 Claude Code / Codex / Kimi Code 这类 runnerP2 smoke 还需要检查:
- 默认不要求 LangBot 调用自己的模型/工具 looprunner 可以依赖自身 harness。
- LangBot 仍要把当前 event、input、delivery、resources、context 和 state 作为 scoped context 传给 runner。
- skill / MCP / workspace projection 必须来自 binding 或 Host 授权后的资源,不应让 runner 自行读取全局未授权配置。
- session id、working directory、checkpoint 等跨轮次状态必须进入 Host state 或 plugin storage不能保存在插件实例内存中。
- 发布级 path isolation、secret filtering、MCP allowlist、资源配额和 workspace cleanup 只作为 [SECURITY_HARDENING.md](./SECURITY_HARDENING.md) 的后续 release gate不阻塞当前 smoke。
## 10. P2 事件预留检查
@@ -163,5 +176,18 @@ QA agent 完成后应输出一份报告,至少包含:
- P0 全 PASS。
- P1 全 PASS或只有旧内置 runner 同样不支持的 N/A。
- P2 外部 runner smoke 对可用凭据全部 PASS。
- P2 外部 runner smoke 对可用凭据全部 PASS;本地 Claude Code runner 若作为当前 external harness 代表,应至少 PASS 一次 WebUI smoke
- 剩余问题均为 EBA 预留、外部服务凭据、或非阻塞体验问题。
## 12. 当前已知验收记录
2026-05-29 本地记录:
| 范围 | 状态 | 证据 |
| --- | --- | --- |
| `local-agent` WebUI Debug Chat | PASS | `langbot-skills/reports/2026-05-29-17-59-00-462-08-00-pipeline-debug-chat.md` |
| `claude-code-agent` WebUI Debug Chat | PASS | `langbot-skills/reports/2026-05-29-18-03-31-169-08-00-pipeline-debug-chat.md` |
| Claude Code context / skill / MCP projection | PASS | `langbot-skills/reports/claude-code-agent-resource-context-20260529.md` |
| Claude Code resume state | PASS | `langbot-skills/reports/claude-code-agent-real-workdir-20260529.md` |
完整汇总见 [PHASE1_QA_REPORT_2026-05-29.md](./PHASE1_QA_REPORT_2026-05-29.md)。