Files
JARVIS/development-doc/plan/agent-update/jarvis-agents-8-day-work-checklist.md
WIN-JHFT4D3SIVT\caoxiaozhu a3fe4d24fc feat(agents): Phase 7-10 hook system, plugins, skills, orchestration
Phase 7: Built-in Hooks (audit_log, dangerous_confirmation, security_scan)
Phase 8: Plugin system (PluginManager, PluginSandbox, PluginManifest)
Phase 9: Skills registry (SkillRegistry, local/plugin/MCP loaders)
Phase 10: TeamLeader, RemoteTransport, BackgroundTaskManager
2026-04-04 22:56:27 +08:00

315 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Jarvis Agents 8 天工作计划(可勾选执行版)
日期2026-04-03
状态:执行清单
适用范围:基于 `phase-0` ~ `phase-5` 及现有融合方案整理
借鉴来源Claude Code CLI、Swarm-IDE、Claw Code、VCPToolBox
---
## 使用说明
- 完成前使用 `- [ ]`
- 完成后改成 `- [x]`
- Day 2 默认依赖 Day 1 的核心底座完成后再推进
- Day 3 默认依赖 Day 2 的最小协作闭环完成后再推进
- Day 4 默认依赖 Day 3 的动态协作完成后再推进
- Day 5 默认依赖 Day 4 的可见性 API 完成后再推进
- Day 6 默认依赖 Day 5 的隔离执行完成后再推进
- Day 7 默认依赖 Day 6 的成本监控完成后再推进
---
## Day 1补底座完成 Phase 1 最小闭环
Day 1 目标:先把 Jarvis 从"只有静态路由"补成"有任务结构、有事件结构、有 verifier、有工具治理信息"的可扩展底座,同时不破坏当前 direct 主路径。
- [x] 新增最小 `task schema`
改造内容:新增 `backend/app/agents/schemas/task.py`,统一 `task_id``title``status``owner_agent_id``evidence``result_summary`,并补 `role``goal``expected_evidence``created_at``updated_at`;状态固定为 `pending``in_progress``completed``failed``blocked`
- [x] 新增最小 `event schema`
改造内容:新增 `backend/app/agents/schemas/event.py`,统一 `event_id``event_type``timestamp``conversation_id``agent_id``sub_commander_id``task_id``payload``severity`;首批事件类型覆盖 `agent.tool.start``agent.tool.result``agent.verify.started``agent.verify.completed``agent.error`
- [x] 扩展 `backend/app/agents/state.py` 的运行时字段
改造内容:新增 `execution_mode``verification_status``verification_summary``verification_evidence``active_tasks``task_results``event_trace``budget_state`;默认值保持兼容 `initial_state()`,不替换现有 `pending_tasks``completed_tasks``tool_calls`
- [x] 扩展 capability / tool metadata 模型
改造内容:在 `backend/app/agents/registry/models.py` 增加 `permission_class``side_effect_scope``supports_retry``idempotent``safe_for_parallel_use``requires_confirmation`;至少先固化 `read` / `write` / `external``none` / `local_state` / `db_write` / `network` 两组枚举语义。
- [x] 回填 builtin tools 的静态 metadata
改造内容:在 `backend/app/agents/registry/builtins.py` 和需要的 `backend/app/agents/tools/__init__.py` 中,把 search / retrieval 类工具标成偏 `read`create / update 类工具标成偏 `write`,外部检索类工具标成 `external`,并补充是否可重试、是否幂等、是否适合并行等标记。
- [x] 新增 verifier 角色定义
改造内容:在 `backend/app/agents/prompts.py` 增加 verifier prompt明确 verifier 只负责验收,不负责重新规划;验收点聚焦"是否真正满足请求""是否有明确证据""是否把失败伪装成成功"。
- [x] 落地 verifier 模块
改造内容:新增 `backend/app/agents/verifier.py`,支持 `passed``failed``skipped` 三类最小结论,先服务于工具调用后的复杂输出,知识检索结果和分析型汇总输出,不接管纯闲聊路径。
- [x]`backend/app/agents/graph.py` 接入最小 event trace 与 verifier helper
改造内容:给 `_execute_tool_calls()` 增加 tool start / result / error 事件写入;给收尾阶段增加 verifier helper 调用;给 `_run_sub_commander()` 增加 task result 摘要写入,但暂时不重构主图为完整协作编排图。
- [x] 补 Phase 1 单元测试与回归测试
改造内容:新增 `backend/tests/backend/app/agents/test_agent_schemas.py``backend/tests/backend/app/agents/test_verifier.py`,并扩展 `test_graph.py`,覆盖 state 兼容性、schema 合法性、tool metadata 存在性、verifier 判定、主流程不回退。
- [x] 完成 Day 1 验收
改造内容:确认 reminder / task / search 主流程继续通过;确认 verifier 已能独立运行;确认 event schema 与 task schema 已落代码;确认 direct 仍是默认主路径;确认未引入动态 `create_agent`、message bus 全链路和 UI。
---
## Day 2引入最小协作能力完成 Phase 2 雏形
Day 2 目标:在 Day 1 底座稳定的基础上,给 Jarvis 增加"复杂请求可拆分、可分配、可回收、可验收"的最小受控协作能力,但仍然不进入自由 swarm。
- [x] 增加 `request_mode_selector`
改造内容:在 `backend/app/agents/graph.py` 中增加 direct / collaboration 模式选择逻辑;简单请求继续走旧路径,只有明显多步骤、跨领域、需要多角色配合的请求才进入 collaboration mode。
- [x] 新增 coordinator prompt
改造内容:在 `backend/app/agents/prompts.py` 中定义 coordinator 角色,职责限定为"判断是否拆解""输出 2~4 个清晰子任务""分配角色建议""汇总任务结果";明确禁止无限递归拆分。
- [x] 新增最小 task decomposition 结构
改造内容:基于 Day 1 的 task schema 扩展最小拆分结构,至少输出 `task_id``title``role``goal``expected_evidence`,让复杂请求能以结构化任务列表进入后续执行。
- [x] 增加 role -> existing agent assignment
改造内容:先复用当前已有 top-level agent不新增独立 worker runtime把 schedule 类任务映射给 `schedule_planner`retrieval 类任务映射给 `librarian`analysis 类任务映射给 `analyst`execution 类任务映射给 `executor`
- [x] 建立统一 task result 回收结构
改造内容:约束每个角色统一返回 `task_id``status``summary``evidence``next_action`(可选),并把结果写回 `task_results`,避免最终结果继续依赖单点硬编码拼接。
- [x] 让 verifier 强制参与协作结果收尾
改造内容:在 collaboration mode 下,所有复杂请求返回前都必须经过 verifierverifier 有权拒绝证据不足、结果不完整,子任务未闭环的响应。
- [x] 补 Phase 2 协作测试与回归测试
改造内容覆盖复杂请求拆分测试、角色分配测试、task result 汇总测试、verifier 拒绝不完整结果测试,并再次确认 direct 模式原有流程不回退。
- [x] 完成 Day 2 验收
改造内容:确认 graph 已能区分 direct / collaboration确认复杂请求可拆成 2~4 个子任务;确认每个子任务有 owner 和 evidence确认最终答案基于 task result 汇总;确认系统仍未进入无限动态 agent 模式。
---
## Day 3引入受限动态协作能力完成 Phase 3 最小闭环
Day 3 目标:在 Day 2 已具备最小协作编排能力的基础上,让 Jarvis 获得"可追踪、可中断、可恢复、受预算约束"的动态协作 runtime但依然不进入无限自由 swarm。
当前实现状态2026-04-03Day 3 最小闭环已基本落地。`backend/app/agents/state.py` 已补齐协作树、thread/message、interrupt/recovery、budget 相关 runtime 字段;`backend/app/agents/graph.py` 已接入受限 child agent 创建、message trace、spawn budget guardrail、interrupt / recovery 最小闭环与协作结果回收;`backend/app/agents/registry/*` 已补齐 spawn role policy 并接入 graph 校验。
- [x] 扩展 `backend/app/agents/state.py` 记录协作树基础字段
当前状态:`state.py` 已补齐 `agent_id``parent_agent_id``root_agent_id``collaboration_depth``spawned_agent_ids``interrupted_tasks``recovery_points``message_trace` 等 Day 3 runtime 字段,并由 `initial_state()` 完成兼容初始化。
- [x] 定义动态协作 budget state
当前状态:已新增 `CollaborationBudget` schema并在 graph 中通过 `budget_state` / `collaboration_budget_history` 落地 `max_spawn_depth``max_child_agents``max_messages_per_thread``max_messages_per_turn``max_parallel_collaborators``recovery_attempt_limit` 等 guardrail metadata。
- [x] 增加受限 `create_agent` 运行时原语
改造内容:新增最小动态创建能力,仅允许在 collaboration mode 下、由受限角色、在 budget 允许时创建 child agent创建过程会记录 parent / child 关系,并在受限时转入 interrupt / recovery 回退路径。
- [x] 增加 agent spawn permission / role policy
改造内容:已在 `backend/app/agents/registry/*` 中补齐角色 spawn policy并通过 registry indexes 接入 `graph.py` 的运行时权限校验,禁止任意角色无限派生。
- [x] 新增最小 message / thread schema
改造内容:已补齐 `message_id``thread_id``from_agent_id``to_agent_id``task_id``reply_to_message_id``message_type``content_summary``created_at` 等结构,支持 `task_request``task_update``handoff``verification_request``verification_feedback``interrupt_notice`
- [x]`backend/app/agents/graph.py` 接入受限动态协作分支
改造内容coordinator / worker 在满足条件时可以请求受限协作graph 已接入 child agent 创建、message thread 写入、spawn budget 校验与回收逻辑,简单请求仍优先走 direct 路径。
- [x] 扩展 event trace 覆盖动态协作生命周期
改造内容event trace 已覆盖 `agent.created``agent.spawn.blocked``agent.message.sent``agent.message.received``agent.interrupt.requested``agent.interrupt.completed``agent.recovery.started``agent.recovery.completed` 等关键事件。
- [x] 增加 interrupt / recovery 最小闭环
改造内容:已支持中断协作任务、记录中断点,并基于 `task_id` / `thread_id` / budget 进行最小恢复路径记录与回退。
- [x] 增加 Day 3 测试与回归验证
改造内容:补充 parent / child tracking、spawn role policy、message thread、interrupt / recovery、动态协作事件记录等测试并继续确认 direct 主路径不回退。
- [x] 完成 Day 3 验收
改造内容:系统已支持受限动态创建 agent协作树和 message thread 可追踪interrupt / recovery 可跑最小闭环,动态能力受 budget 与 role policy 约束,且仍不是自由蜂群式协作。
---
## Day 4引入可见性 API完成 Phase 4 可视化方向
Day 4 目标:在 Phase 1-3 已具备协作 runtime 的基础上,让 Jarvis 获得"可看、可查、可调试"的可见性 API为后续复杂任务调试和执行打下基础。
当前实现状态2026-04-04Phase 1-3 最小闭环已基本落地Day 4 后端可见性最小闭环已完成。可见性 API 直接读取 continuity snapshot 中保存的 runtime state`event_trace``message_trace``active_tasks``task_results``task_hierarchy``verification_*``tool_outcomes`),并已补 focused API 测试。
- [x] 固化可见性数据源并增加 events 查询 API
改造内容:已在 `backend/app/routers/agent.py` 暴露 `GET /api/agents/visibility/events`,支持按 `conversation_id` / `thread_id` / `agent_id` / `event_type` 过滤 `event_trace`,并支持分页与时间范围查询。
- [x] 新增协作链路拓扑查询 API
改造内容:已新增 `GET /api/agents/visibility/topology`,基于 state 中的 `spawned_agent_ids``task_hierarchy``root_agent_id``active_tasks``task_results` 构建协作拓扑视图,返回 agent 节点、父子边与 task 摘要。
- [x] 新增 task 执行证据查询 API
改造内容:已新增 `GET /api/agents/visibility/tasks/{task_id}/evidence`,基于 state 中的 `task_results``tool_outcomes``verification_*` 返回指定 task 的执行证据链。
- [x] 新增 message thread 查询 API
改造内容:已新增 `GET /api/agents/visibility/threads/{thread_id}/messages`,基于 `message_trace` 返回指定 thread 内所有消息的方向、摘要、时间和关联 task。
- [x] 新增 verifier 结果查询 API
改造内容:已新增 `GET /api/agents/visibility/verifier`,基于 `verification_status``verification_summary``verification_evidence` 返回当前协作会话的验收结论和证据。
- [x] 补 Day 4 可见性 API 测试
改造内容:已新增 `backend/tests/backend/app/agents/test_visibility_api.py`,覆盖 event filter / pagination、topology 构建、evidence 查询、thread 消息重建、verifier 查询、非法 datetime 参数校验等场景。
- [x] 完成 Day 4 验收
改造内容:已确认 visibility API 可查询事件、拓扑、task evidence、thread 消息与 verifier 结果;并已确认原有 reminder / task / search 主路径不在 Day 4 范围内被改坏。
---
## Day 5升级 operator/debug surface已完成
Day 5 目标:把 Day 4 的只读可见性 API 真正接到前端 Agents 页面,形成最小 operator/debug surface。
- [x] 接入 runtime summary API 到前端 `agentApi`
改造内容:在 `frontend/src/api/agent.ts` 增加 runtime summary 类型与 `getRuntimeSummary()` 查询方法。
- [x] 在 Agents 页面展示 phase/checkpoint/verifier/isolation/cost 摘要
改造内容:在 `frontend/src/pages/agents/index.vue``useAgentsPage.ts` 中加入 runtime summary HUD展示 execution mode、phase、checkpoint、verifier、isolation、token/cost、task/node 统计。
- [x] 让 Agents 页面使用当前会话 `conversation_id`
改造内容:复用 `frontend/src/stores/conversation.ts``currentConversationId`,不再使用伪造的 `latest` 占位值。
- [x] 修复 Agents 页面关键乱码与兜底文案
改造内容修复配置抽屉、状态文案、master task 文案等可见乱码,并为未选会话场景提供清晰提示。
- [x] 补前端运行时面板测试
改造内容:补 `frontend/src/pages/agents/agentsPage.test.ts`,覆盖 runtime summary 渲染、无会话提示、会话 ID 传递。
- [x] 完成 Day 5 验收
改造内容:确认 Agents 页面已经是可用的 operator/debug 入口,而不是只显示静态演示图。
---
## Day 6推进 isolation runtime MVP90 分主线)
Day 6 目标:把 Day 4 的 isolation 设计从文档推进到最小运行时闭环,只做 `none / session / worktree` 三层。
当前实现状态2026-04-04Day 6 已落地 isolation runtime MVP。后端已新增 `strategy_selector.py``session_isolation.py``worktree_isolation.py`,并在 `graph.py` 中接入基于任务语义与 tool metadata 的 `none / session / worktree` 选择逻辑;隔离 metadata 会进入 state、event trace、task evidence 与 runtime summaryAgents 页面也可展示 workspace / isolation 状态。
- [x] 实现 IsolationStrategySelector
改造内容:新增 `backend/app/agents/isolation/strategy_selector.py`,根据任务类型与 tool metadata 自动选择 `none / session / worktree`
当前状态:已新增 `backend/app/agents/isolation/strategy_selector.py`可基于用户请求语义、role 与 capability metadata 自动选择 `none / session / worktree`
- [x] 实现 Session 隔离
改造内容:新增 `backend/app/agents/isolation/session_isolation.py`,支持上下文隔离、中间态隔离与 evidence 回传。
当前状态:已新增 `backend/app/agents/isolation/session_isolation.py`,会生成独立 session isolation metadata并把 parent conversation / role / sub commander / capability 信息写回 runtime state。
- [x] 实现 Worktree 隔离
改造内容:新增 `backend/app/agents/isolation/worktree_isolation.py`,基于 git worktree 创建独立工作目录,回传 workspace/branch/cleanup metadata。
当前状态:已新增 `backend/app/agents/isolation/worktree_isolation.py`,支持基于 git worktree 创建独立工作目录,回传 branch / repo_root / cleanup_status 等 metadata创建失败时可回退到 session isolation。
- [x] 集成隔离策略到 graph
改造内容:在 `backend/app/agents/graph.py` 中接入策略选择与 evidence 输出,不做自动 merge-back。
当前状态:`backend/app/agents/graph.py` 已接入 isolation selector / executor运行时会记录 `agent.isolation.selected` / `agent.isolation.fallback` 事件,并把 isolation metadata 写入 evidence 与 task result。
- [x] 补 Day 6 隔离测试
改造内容:新增隔离策略与 metadata 传播测试,覆盖 session/worktree 选择和 runtime summary 展示。
当前状态:已在 `backend/tests/backend/app/agents/test_graph.py` 中补充 isolation selector / worktree fallback / runtime cost 联动测试;`test_visibility_api.py` 继续覆盖 runtime summary 中的 isolation 暴露。
- [x] 完成 Day 6 验收
改造内容:确认高副作用任务可进入 worktree低副作用任务保持 direct/session 路径,主流程无回退。
当前状态:高副作用、代码/仓库语义请求可进入 worktree普通状态写入或分析路径保持 session / direct主流程回归测试已通过 `test_graph.py`
---
## Day 7推进 cost governance MVP90 分主线)
Day 7 目标:把 token/cost 从静态估算升级为会话级可治理能力。
当前实现状态2026-04-04Day 7 已从“静态展示”推进到最小 cost governance 闭环。`graph.py` 已稳定累计 `input_tokens` / `output_tokens` / `estimated_cost`,并按 conversation / child agent 维度写入 `cost_by_agent`budget threshold 会触发 `agent.cost.updated` / `agent.cost.warning` 事件,后端也已暴露 conversation scoped cost API。
- [x] 固化 runtime token 字段写入
改造内容:在 graph / service 层稳定记录 `input_tokens``output_tokens``estimated_cost``budget_warning`
当前状态:`backend/app/agents/graph.py` 已在每次 LLM 响应后提取 usage metadata并稳定写入 `input_tokens``output_tokens``estimated_cost``budget_warning`
- [x] 集成成本累计到 conversation / child agent 维度
改造内容:把协作 run 的 token/cost 汇总到 conversation summary并保留子 agent 维度的来源信息。
当前状态state 中已新增 `cost_by_agent``cost_thresholds`,并可通过 `/api/agents/visibility/cost` 返回 conversation 总量与 child agent 分摊。
- [x] 增加 budget threshold 治理逻辑
改造内容:支持阈值警告、超额提示和 runtime summary 暴露。
当前状态:已新增默认 cost threshold 与 state override 机制,超阈值会写入 `budget_warning` 并产生 warning 事件runtime summary 与前端 HUD 均可见。
- [x] 新增成本查询 API
改造内容:在现有 visibility surface 上补 conversation scoped cost 查询,而不是另起一套孤立接口。
当前状态:已新增 `GET /api/agents/visibility/cost`,返回 conversation scoped total / thresholds / by_agent breakdown。
- [x] 补 Day 7 测试
改造内容覆盖成本累计、阈值预警、runtime summary 成本字段。
当前状态:`backend/tests/backend/app/agents/test_graph.py` 已覆盖 runtime usage 写入与 threshold warning`test_visibility_api.py` 已补 cost summary 返回结构断言。
- [x] 完成 Day 7 验收
改造内容:确认 cost 不再只是“可估算”,而是“可观察、可告警、可治理”。
当前状态Day 7 当前已达到“可观察、可告警、可按会话/agent 查询”,仍未做到更高级的跨会话预算策略与持久化治理。
---
## Day 890 分收口与工具治理增强
Day 8 目标:把现有 runtime 补成真正可运营的 90 分闭环,并明确下一批值得升级的工具能力。
当前实现状态2026-04-04Day 8 已完成 90 分主线收口。Agents 页面已从首屏 summary 升级为可查看 recent events、topology 节点摘要、verifier evidence、cost by agent 与 tool governance 的 operator/debug surface后端也补齐了 `/visibility/tools` 能力分层查询。
- [x] 增强 topology / recent events operator surface
改造内容:在 Agents 页面增加 recent events、拓扑摘要、verifier 证据入口,形成更完整的调试视图。
当前状态:前端 `frontend/src/pages/agents/index.vue``useAgentsPage.ts` 已展示 recent events、topology 节点摘要与 verifier evidence 入口。
- [x] 对工具能力做治理分层
改造内容:基于 `permission_class``side_effect_scope``requires_confirmation``safe_for_parallel_use` 做工具分级和后续 UI 展示规划。
当前状态:后端已新增 `GET /api/agents/visibility/tools`,基于 `permission_class``side_effect_scope``requires_confirmation``safe_for_parallel_use` 返回 tool governance 视图;前端已做 operator 展示。
- [x] 识别值得升级/新增的工具能力
改造内容:优先考虑 `worktree manager``cost inspector``runtime event drilldown``tool policy explorer`,暂不做 TagMemo / AgentDream。
当前状态operator surface 已显式暴露 `worktree_manager``cost_inspector``runtime_event_drilldown``tool_policy_explorer` 四项下一批 upgrade candidates。
- [x] 完成 90 分结项回归
改造内容:统一回归 direct / collaboration / runtime summary / isolation / cost 关键路径,并更新 README / daily / checklist 结论。
当前状态:已完成 `backend/tests/backend/app/agents/test_graph.py` 回归、`frontend/src/pages/agents/agentsPage.test.ts` 前端回归,以及不依赖 pytest tmpdir 的 visibility API 手工验证README / checklist 已同步更新。
---
## 这 8 天明确不做
- 不做无限自由的动态 `create_agent`
- 不做无限层级的 parent / child agent tree
- 不做任意 agent 任意建群 / 广播
- 不做内部消息线程的复杂长期态治理
- 不做完整可视化调试面板(只做首屏 summary / HUD不做完整实时 drilldown UI
- 不做 Full Sandbox 完整实现(只做设计方案)
- 不做自由蜂群式协作
- 不做 Persistence数据库持久化
- 不做 Multi-turn Memory跨会话记忆
- 不做 Plugin System插件系统
- 不做 TagMemo仿生记忆系统
- 不做 AgentDream仿生梦境系统
---
## 8 天结束后的预期状态
- [x] 已具备 `direct` / `collaboration` 双模式入口
- [x] 已具备 verifier 独立验收层
- [x] 已具备 task schema / event schema / tool metadata 底座
- [x] 已具备 coordinator 雏形、任务拆分、角色分配、结果回收
- [x] 已具备受限动态协作 runtime 的最小实现闭环
- [x] 当前 reminder / task / search 主路径无明显回退
- [x] 已具备可见性 API 基础events、topology、evidence、thread、verifier、runtime-summary
- [x] 已具备前端 Agents operator/debug 首屏
- [x] 已具备 isolation strategy selector + session/worktree executor 的最小运行时闭环
- [x] 已具备 conversation / child agent 维度的 cost governance 最小闭环
- [ ] 尚未具备 full sandbox / persistence / realtime push
- [x] 90 分主线已明确为 isolation + cost + operator surface而不是 TagMemo / AgentDream
---
## 后续可选特性(按需实施)
| 特性 | 预估时间 | 触发条件 |
|------|---------|---------|
| AgentDream仿生梦境系统 | 1天 | Day 7完成后 |
| Persistence持久化 | 2-3天 | 有审计需求时 |
| Advanced UI完整前端面板 | 3-5天 | 有前端资源时 |
| Full Sandbox完整沙箱 | 3-5天 | 有安全需求时 |
| Plugin System插件系统 | 2-3天 | 有社区需求时 |
---
##