Files
JARVIS/development-doc/plan/agent-update/phase-6-10-checklist.md

12 KiB
Raw Blame History

Jarvis Agent Phase 6-10 Checklist

开发时对照勾选,完成后打 [x]


Phase 6工具系统重构

工作量6-10 周

6.1 基础设施

  • 创建 backend/app/agents/tools/registry.py — ToolRegistry 类
  • 创建 backend/app/agents/tools/manifest.py — ToolManifest 数据类
  • 创建 backend/app/agents/tools/base.py — BaseTool 基础类
  • 迁移 task.py 到注册表
  • 迁移 schedule.py 到注册表
  • 迁移 search.py 到注册表
  • 迁移 forum.py 到注册表
  • 迁移 time_reasoning.py 到注册表
  • 实现向后兼容层

6.2 Hook 系统

  • 创建 backend/app/agents/tools/hooks/types.py — HookType, HookAction, HookContext, HookResult
  • 创建 backend/app/agents/tools/hooks/manager.py — HookManager 类
  • 创建 backend/app/agents/tools/hook_executor.py — HookExecutor 类

6.3 流式执行

  • 创建 backend/app/agents/tools/streaming_executor.py — StreamingToolExecutor
  • 为流式工具添加 is_streaming 标志
  • 更新 AgentService 集成流式执行

6.4 新工具集

  • 创建 backend/app/agents/tools/builtins/file_tools.py — GlobTool
  • 创建 backend/app/agents/tools/builtins/file_tools.py — GrepTool
  • 创建 backend/app/agents/tools/builtins/file_tools.py — EditTool
  • 创建 backend/app/agents/tools/builtins/file_tools.py — LintTool
  • 创建 backend/app/agents/tools/builtins/system_tools.py — BashTool
  • 创建 backend/app/agents/tools/builtins/system_tools.py — PowerShellTool
  • 创建 backend/app/agents/tools/builtins/system_tools.py — ScheduleCronTool
  • 创建 backend/app/agents/tools/builtins/dev_tools.py — LSPTool
  • 创建 backend/app/agents/tools/builtins/dev_tools.py — GitTool
  • 创建 backend/app/agents/tools/builtins/collaboration_tools.py — TeamAgentTool
  • 创建 backend/app/agents/tools/builtins/collaboration_tools.py — TaskBroadcastTool

6.5 测试

  • 单元测试: registry
  • 单元测试: hook
  • 单元测试: streaming executor
  • 集成测试: 工具注册到执行完整流程
  • 回归测试: Sub-Commander 不受影响
  • 性能测试: 工具调用延迟 < 100ms

Phase 6 验收

  • 所有现有工具已在 Registry 中注册
  • PreTool/PostTool Hook 能正确拦截
  • 流式工具可流式返回
  • 向后兼容: 现有 Sub-Commander 工具调用不受影响

Phase 7Hook 拦截层

前置依赖Phase 6.2 工作量3-4 周

7.1 Hook 类型定义

  • 验证 hooks/types.py — HookType, HookAction, HookContext, HookResult

7.2 内置 Hook

  • 创建 backend/app/agents/tools/hooks/builtins/audit_log.py — AuditLogHook
  • 创建 backend/app/agents/tools/hooks/builtins/dangerous_confirmation.py — DangerousConfirmationHook
  • 创建 backend/app/agents/tools/hooks/builtins/security_scan.py — SecurityScanHook

7.3 Hook 配置

  • HookManager.load_config()
  • HookManager.execute_pre_hooks()
  • HookManager.execute_post_hooks()
  • HookManager.execute_error_hook()
  • 配置持久化

7.4 自定义 Hook

  • 创建 hooks/custom/loader.py — 自定义 Hook 加载器

7.5 API

  • POST /api/hooks/config — 更新 Hook 配置
  • GET /api/hooks/config — 获取 Hook 配置
  • GET /api/hooks/available — 列出可用 Hook
  • POST /api/hooks/{name}/enable — 启用 Hook
  • POST /api/hooks/{name}/disable — 禁用 Hook
  • POST /api/hooks/register-builtin — 注册内置 Hook
  • GET /api/hooks/status — 获取 Hook 状态

7.6 测试

  • 测试: 危险操作被 Pre Hook 拦截
  • 测试: 敏感信息被 Post Hook 脱敏
  • 测试: 异常被 Error Hook 记录
  • 回归测试: 不配置 Hook 时系统正常运行

Phase 7 验收

  • 危险操作被 Pre Hook 正确拦截
  • 结果中的敏感信息被 Post Hook 正确脱敏
  • Hook 配置可保存和加载
  • Hook 执行开销 < 10ms

Phase 8插件生态

前置依赖Phase 6, Phase 7 工作量4-5 周

8.1 插件结构

  • 创建 backend/app/agents/plugins/manifest.py — PluginManifest
  • 定义 plugins/manifest.json schema — PluginManifest.to_dict() 支持完整序列化
  • 验证插件清单格式 — PluginManifest.from_dict() 支持反序列化

8.2 PluginManager

  • 创建 backend/app/agents/plugins/manager.py — PluginManager
  • 实现 PluginManager.install()
  • 实现 PluginManager.uninstall()
  • 实现 PluginManager.enable()
  • 实现 PluginManager.disable()
  • 实现 PluginManager.reload()
  • 实现 PluginManager.list_plugins()

8.3 插件隔离

  • 创建 backend/app/agents/plugins/sandbox.py — PluginSandbox
  • 实现模块加载隔离
  • 实现文件系统权限控制
  • 实现网络权限控制

8.4 插件市场

  • 创建内存版 PluginMarketplace (in-memory)
  • 实现 search() — GET /api/marketplace/plugins
  • 实现 get_plugin() — GET /api/marketplace/plugins/{id}
  • 实现 download_plugin() — POST /api/marketplace/plugins/{id}/download

8.5 内置插件

  • 创建 plugins/builtins/code_helper/ — lint, format, explain_code
  • 创建 plugins/builtins/git_helper/ — git_status, git_log, git_diff
  • 创建 plugins/builtins/web_helper/ — fetch_url, parse_html
  • 创建 plugins/builtins/file_organizer/ — organize_files, cleanup_duplicates

8.6 API

  • GET /api/plugins — 列出插件
  • POST /api/plugins/install — 安装插件
  • POST /api/plugins/{id}/enable — 启用插件
  • POST /api/plugins/{id}/disable — 禁用插件
  • DELETE /api/plugins/{id} — 卸载插件
  • POST /api/plugins/{id}/reload — 重新加载插件
  • GET /api/marketplace/plugins — 搜索市场

8.7 测试

  • 测试: 插件安装/启用/禁用/卸载
  • 测试: 插件隔离有效
  • 测试: 市场搜索和下载

Phase 8 验收

  • 可以从目录安装插件
  • 插件的工具和 Hook 正确注册
  • 插件的工具和 Hook 正确注销
  • 插件无法访问未授权资源
  • 插件加载时间 < 1s (built-in plugins)

Phase 9Skills 注册表

前置依赖Phase 6 工作量3-4 周

9.1 SkillRegistry 增强

  • 增强 backend/app/agents/skills/registry.py — SkillRegistry
  • 创建 backend/app/agents/skills/metadata.py — SkillMetadata
  • 实现 load_all()
  • 实现 get_skill()
  • 实现 search()
  • 实现 get_skill_context()

9.2 Skills 加载器

  • 创建 backend/app/agents/skills/loaders/local_loader.py
  • 创建 backend/app/agents/skills/loaders/plugin_loader.py
  • 创建 backend/app/agents/skills/loaders/mcp_loader.py

9.3 MCP Skill Builder

  • 创建 backend/app/agents/skills/mcp_builder.py — MCPSkillBuilder
  • 实现 discover_skills_from_mcp()
  • 实现 _tool_to_skill()
  • 实现 _group_to_skill()

9.4 内置 Skills

  • 创建 backend/app/agents/skills/bundled.py — BUNDLED_SKILLS
  • 实现 code-analysis skill
  • 实现 git-helper skill
  • 实现 web-research skill
  • 实现 file-management skill
  • 实现 task-planning skill

9.5 Agent 集成

  • AgentService.build_skill_context()
  • SkillTriggerDetector 触发检测
  • Skill 上下文可用于 Agent prompt 注入

9.6 API

  • GET /api/agent/skills — 列出 Skills
  • GET /api/agent/skills/search?query= — 搜索 Skills
  • GET /api/agent/skills/{name} — 获取 Skill 详情
  • POST /api/agent/skills/{name}/enable — 启用 Skill
  • POST /api/agent/skills/{name}/disable — 禁用 Skill
  • POST /api/agent/skills/reload — 重新加载 Skills
  • GET /api/agent/skills/{name}/context — 获取 Skill 上下文
  • POST /api/agent/skills/context/batch — 批量获取 Skill 上下文

9.7 测试

  • 测试: 本地 Skills 加载
  • 测试: MCP Skills 发现
  • 测试: Skill 上下文注入

Phase 9 验收

  • 能加载 local_skills_dir 下的所有 SKILL.md
  • 能从 MCP 服务器发现和加载 Skills
  • 内置 Skills 默认加载
  • Skill 内容可注入 Agent prompt (通过 build_skill_context)

Phase 10高级编排

前置依赖Phase 6-9 工作量5-6 周

10.1 Team 多 Agent 协作

  • 创建 backend/app/agents/team/leader.py — TeamLeader
  • 创建 backend/app/agents/team/member.py — TeamMember
  • TeamTask 已内置在 leader.py
  • 实现 create_team()
  • 实现 assign_task()
  • 实现 broadcast_task()
  • 实现 collect_results()
  • 实现 get_team_status()

10.2 远程传输层

  • 创建 backend/app/agents/transport/structured_io.py — StructuredIO
  • 创建 backend/app/agents/transport/remote.py — RemoteTransport
  • 实现 send_response()
  • 实现 send_event()
  • 实现 send_tool_call()
  • 实现 WebSocket 连接管理 — WebSocketManager

10.3 高级会话管理

  • 创建 backend/app/agents/session/manager.py — AgentSession
  • 创建 SessionContext (内置于 manager.py)
  • 创建 SessionPersistence (内置于 manager.py)
  • 实现 initialize()
  • 实现 process_message()
  • 实现 spawn_child_session()
  • 实现 get_session_summary()
  • 实现 persist()

10.4 后台任务系统

  • 创建 backend/app/agents/background/manager.py — BackgroundTaskManager
  • 创建 backend/app/agents/background/scheduler.py
  • 创建 backend/app/agents/background/executor.py
  • 实现 submit_task()
  • 实现 cancel_task()
  • 实现 get_task_status()
  • 实现 list_tasks()

10.5 协调整合

  • 创建/修改 backend/app/agents/coordinator.py
  • AgentCoordinator 协调整器集成 TeamLeader, RemoteTransport, BackgroundTaskManager, SessionManager
  • 统一协调入口 coordinate() 方法

10.6 API

  • POST /api/agent/sessions — 创建会话
  • GET /api/agent/sessions/{id} — 获取会话信息
  • POST /api/agent/sessions/{id}/message — 处理消息
  • POST /api/agent/sessions/{id}/spawn — 创建子会话
  • GET /api/agent/sessions/{id}/history — 获取会话历史
  • POST /api/agent/sessions/{id}/persist — 持久化会话
  • POST /api/agent/sessions/{id}/metadata — 设置会话元数据
  • GET /api/agent/sessions/{id}/metadata/{key} — 获取会话元数据

10.7 测试

  • 测试: Team 创建/分配/收集/状态
  • 测试: 会话层级/持久化/子会话
  • 测试: 后台任务提交/调度/取消

Phase 10 验收

  • 可以创建和管理 Agent 团队
  • 任务能正确分配给合适的成员
  • 能收集和聚合多成员的结果
  • 支持结构化的输入输出格式
  • 支持远程 Agent 通信
  • 支持复杂的会话层级和状态管理
  • 支持定时和异步后台任务
  • 支持从父会话创建子会话

总验收

个人助手主线 checkpoint

  • Checkpoint A会话连续性可靠

    • conversation/session 重启后可恢复关键状态
    • current_phase / current_checkpoint / active_tasks / verifier_summary 可续接
    • 减少重复澄清同一上下文的情况
  • Checkpoint B记忆系统可用且可控

    • 用户偏好 / 项目背景 / 规划信息可分类沉淀
    • memory 检索、去重、更新机制可用
    • 过期或错误记忆可修正,不误导后续执行
  • Checkpoint Cplan / daily / task 闭环打通

    • 对话中的行动项可沉淀到 plan / daily
    • task 完成状态可回写到 daily 记录
    • 支持续做未完成事项,而不是每次重新开始
  • Checkpoint D开发协作稳定性提升

    • 多文件读改查路径稳定
    • 常见开发任务(解释/修改/调试/重构)成功率优先
    • tool 调用失败时有清晰回退/恢复路径
  • Checkpoint E后台任务与自动化可靠

    • 后台任务状态可追踪
    • 定时/异步任务失败原因可定位
    • background manager / scheduler 主路径无明显稳定性缺口

向后兼容

  • 现有 Sub-Commander 不受影响
  • 现有 API 不受影响
  • 现有数据库 schema 不需修改

性能

  • 工具调用延迟 < 100ms
  • Hook 执行开销 < 10ms
  • 插件加载时间 < 1s

安全

  • 插件隔离有效
  • Hook 可以拒绝危险操作
  • 敏感信息正确脱敏

最后更新2026-04-06