11 KiB
11 KiB
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 7:Hook 拦截层
前置依赖: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.jsonschema - 验证插件清单格式
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 9:Skills 注册表
前置依赖: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()
- Skill 上下文注入 Agent prompt
- Skill 触发检测
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
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 连接管理
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 - Team 协作与现有 graph 集成
- 远程传输与现有 service 集成
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 通信
- 支持复杂的会话层级和状态管理
- 支持定时和异步后台任务
- 支持从父会话创建子会话
总验收
向后兼容
- 现有 Sub-Commander 不受影响
- 现有 API 不受影响
- 现有数据库 schema 不需修改
性能
- 工具调用延迟 < 100ms
- Hook 执行开销 < 10ms
- 插件加载时间 < 1s
安全
- 插件隔离有效
- Hook 可以拒绝危险操作
- 敏感信息正确脱敏
最后更新:2026-04-04