# Jarvis Agent Phase 6-10 Checklist > 开发时对照勾选,完成后打 [x] --- ## Phase 6:工具系统重构 **工作量**:6-10 周 ### 6.1 基础设施 - [x] 创建 `backend/app/agents/tools/registry.py` — ToolRegistry 类 - [x] 创建 `backend/app/agents/tools/manifest.py` — ToolManifest 数据类 - [x] 创建 `backend/app/agents/tools/base.py` — BaseTool 基础类 - [x] 迁移 task.py 到注册表 - [x] 迁移 schedule.py 到注册表 - [x] 迁移 search.py 到注册表 - [x] 迁移 forum.py 到注册表 - [x] 迁移 time_reasoning.py 到注册表 - [x] 实现向后兼容层 ### 6.2 Hook 系统 - [x] 创建 `backend/app/agents/tools/hooks/types.py` — HookType, HookAction, HookContext, HookResult - [x] 创建 `backend/app/agents/tools/hooks/manager.py` — HookManager 类 - [x] 创建 `backend/app/agents/tools/hook_executor.py` — HookExecutor 类 ### 6.3 流式执行 - [x] 创建 `backend/app/agents/tools/streaming_executor.py` — StreamingToolExecutor - [x] 为流式工具添加 `is_streaming` 标志 - [x] 更新 AgentService 集成流式执行 ### 6.4 新工具集 - [x] 创建 `backend/app/agents/tools/builtins/file_tools.py` — GlobTool - [x] 创建 `backend/app/agents/tools/builtins/file_tools.py` — GrepTool - [x] 创建 `backend/app/agents/tools/builtins/file_tools.py` — EditTool - [x] 创建 `backend/app/agents/tools/builtins/file_tools.py` — LintTool - [x] 创建 `backend/app/agents/tools/builtins/system_tools.py` — BashTool - [x] 创建 `backend/app/agents/tools/builtins/system_tools.py` — PowerShellTool - [x] 创建 `backend/app/agents/tools/builtins/system_tools.py` — ScheduleCronTool - [x] 创建 `backend/app/agents/tools/builtins/dev_tools.py` — LSPTool - [x] 创建 `backend/app/agents/tools/builtins/dev_tools.py` — GitTool - [x] 创建 `backend/app/agents/tools/builtins/collaboration_tools.py` — TeamAgentTool - [x] 创建 `backend/app/agents/tools/builtins/collaboration_tools.py` — TaskBroadcastTool ### 6.5 测试 - [x] 单元测试: registry - [x] 单元测试: hook - [x] 单元测试: streaming executor - [x] 集成测试: 工具注册到执行完整流程 - [x] 回归测试: Sub-Commander 不受影响 - [ ] 性能测试: 工具调用延迟 < 100ms ### Phase 6 验收 - [x] 所有现有工具已在 Registry 中注册 - [x] PreTool/PostTool Hook 能正确拦截 - [x] 流式工具可流式返回 - [x] 向后兼容: 现有 Sub-Commander 工具调用不受影响 --- ## Phase 7:Hook 拦截层 **前置依赖**:Phase 6.2 **工作量**:3-4 周 ### 7.1 Hook 类型定义 - [x] 验证 `hooks/types.py` — HookType, HookAction, HookContext, HookResult ### 7.2 内置 Hook - [x] 创建 `backend/app/agents/tools/hooks/builtins/audit_log.py` — AuditLogHook - [x] 创建 `backend/app/agents/tools/hooks/builtins/dangerous_confirmation.py` — DangerousConfirmationHook - [x] 创建 `backend/app/agents/tools/hooks/builtins/security_scan.py` — SecurityScanHook ### 7.3 Hook 配置 - [x] HookManager.load_config() - [x] HookManager.execute_pre_hooks() - [x] HookManager.execute_post_hooks() - [x] HookManager.execute_error_hook() - [x] 配置持久化 ### 7.4 自定义 Hook - [ ] 创建 `hooks/custom/loader.py` — 自定义 Hook 加载器 ### 7.5 API - [x] POST `/api/hooks/config` — 更新 Hook 配置 - [x] GET `/api/hooks/config` — 获取 Hook 配置 - [x] GET `/api/hooks/available` — 列出可用 Hook - [x] POST `/api/hooks/{name}/enable` — 启用 Hook - [x] POST `/api/hooks/{name}/disable` — 禁用 Hook - [x] POST `/api/hooks/register-builtin` — 注册内置 Hook - [x] GET `/api/hooks/status` — 获取 Hook 状态 ### 7.6 测试 - [ ] 测试: 危险操作被 Pre Hook 拦截 - [ ] 测试: 敏感信息被 Post Hook 脱敏 - [ ] 测试: 异常被 Error Hook 记录 - [ ] 回归测试: 不配置 Hook 时系统正常运行 ### Phase 7 验收 - [x] 危险操作被 Pre Hook 正确拦截 - [x] 结果中的敏感信息被 Post Hook 正确脱敏 - [x] Hook 配置可保存和加载 - [ ] Hook 执行开销 < 10ms --- ## Phase 8:插件生态 **前置依赖**:Phase 6, Phase 7 **工作量**:4-5 周 ### 8.1 插件结构 - [x] 创建 `backend/app/agents/plugins/manifest.py` — PluginManifest - [ ] 定义 `plugins/manifest.json` schema - [ ] 验证插件清单格式 ### 8.2 PluginManager - [x] 创建 `backend/app/agents/plugins/manager.py` — PluginManager - [x] 实现 PluginManager.install() - [x] 实现 PluginManager.uninstall() - [x] 实现 PluginManager.enable() - [x] 实现 PluginManager.disable() - [x] 实现 PluginManager.reload() - [x] 实现 PluginManager.list_plugins() ### 8.3 插件隔离 - [x] 创建 `backend/app/agents/plugins/sandbox.py` — PluginSandbox - [x] 实现模块加载隔离 - [x] 实现文件系统权限控制 - [x] 实现网络权限控制 ### 8.4 插件市场 - [x] 创建内存版 PluginMarketplace (in-memory) - [x] 实现 search() — GET `/api/marketplace/plugins` - [x] 实现 get_plugin() — GET `/api/marketplace/plugins/{id}` - [x] 实现 download_plugin() — POST `/api/marketplace/plugins/{id}/download` ### 8.5 内置插件 - [x] 创建 `plugins/builtins/code_helper/` — lint, format, explain_code - [x] 创建 `plugins/builtins/git_helper/` — git_status, git_log, git_diff - [x] 创建 `plugins/builtins/web_helper/` — fetch_url, parse_html - [x] 创建 `plugins/builtins/file_organizer/` — organize_files, cleanup_duplicates ### 8.6 API - [x] GET `/api/plugins` — 列出插件 - [x] POST `/api/plugins/install` — 安装插件 - [x] POST `/api/plugins/{id}/enable` — 启用插件 - [x] POST `/api/plugins/{id}/disable` — 禁用插件 - [x] DELETE `/api/plugins/{id}` — 卸载插件 - [x] POST `/api/plugins/{id}/reload` — 重新加载插件 - [x] GET `/api/marketplace/plugins` — 搜索市场 ### 8.7 测试 - [ ] 测试: 插件安装/启用/禁用/卸载 - [ ] 测试: 插件隔离有效 - [ ] 测试: 市场搜索和下载 ### Phase 8 验收 - [x] 可以从目录安装插件 - [x] 插件的工具和 Hook 正确注册 - [x] 插件的工具和 Hook 正确注销 - [x] 插件无法访问未授权资源 - [x] 插件加载时间 < 1s (built-in plugins) --- ## Phase 9:Skills 注册表 **前置依赖**:Phase 6 **工作量**:3-4 周 ### 9.1 SkillRegistry 增强 - [x] 增强 `backend/app/agents/skills/registry.py` — SkillRegistry - [x] 创建 `backend/app/agents/skills/metadata.py` — SkillMetadata - [x] 实现 load_all() - [x] 实现 get_skill() - [x] 实现 search() - [x] 实现 get_skill_context() ### 9.2 Skills 加载器 - [x] 创建 `backend/app/agents/skills/loaders/local_loader.py` - [x] 创建 `backend/app/agents/skills/loaders/plugin_loader.py` - [ ] 创建 `backend/app/agents/skills/loaders/mcp_loader.py` ### 9.3 MCP Skill Builder - [x] 创建 `backend/app/agents/skills/mcp_builder.py` — MCPSkillBuilder - [x] 实现 discover_skills_from_mcp() - [x] 实现 _tool_to_skill() - [x] 实现 _group_to_skill() ### 9.4 内置 Skills - [x] 创建 `backend/app/agents/skills/bundled.py` — BUNDLED_SKILLS - [x] 实现 code-analysis skill - [x] 实现 git-helper skill - [x] 实现 web-research skill - [x] 实现 file-management skill - [x] 实现 task-planning skill ### 9.5 Agent 集成 - [x] AgentService.build_skill_context() - [ ] Skill 上下文注入 Agent prompt - [ ] Skill 触发检测 ### 9.6 API - [x] GET `/api/agent/skills` — 列出 Skills - [x] GET `/api/agent/skills/search?query=` — 搜索 Skills - [x] GET `/api/agent/skills/{name}` — 获取 Skill 详情 - [x] POST `/api/agent/skills/{name}/enable` — 启用 Skill - [x] POST `/api/agent/skills/{name}/disable` — 禁用 Skill - [x] POST `/api/agent/skills/reload` — 重新加载 Skills - [x] GET `/api/agent/skills/{name}/context` — 获取 Skill 上下文 - [x] POST `/api/agent/skills/context/batch` — 批量获取 Skill 上下文 ### 9.7 测试 - [ ] 测试: 本地 Skills 加载 - [ ] 测试: MCP Skills 发现 - [ ] 测试: Skill 上下文注入 ### Phase 9 验收 - [x] 能加载 local_skills_dir 下的所有 SKILL.md - [x] 能从 MCP 服务器发现和加载 Skills - [x] 内置 Skills 默认加载 - [ ] Skill 内容正确注入 Agent prompt --- ## Phase 10:高级编排 **前置依赖**:Phase 6-9 **工作量**:5-6 周 ### 10.1 Team 多 Agent 协作 - [x] 创建 `backend/app/agents/team/leader.py` — TeamLeader - [ ] 创建 `backend/app/agents/team/member.py` — TeamMember - [x] TeamTask 已内置在 leader.py - [x] 实现 create_team() - [x] 实现 assign_task() - [x] 实现 broadcast_task() - [x] 实现 collect_results() - [x] 实现 get_team_status() ### 10.2 远程传输层 - [x] 创建 `backend/app/agents/transport/structured_io.py` — StructuredIO - [x] 创建 `backend/app/agents/transport/remote.py` — RemoteTransport - [x] 实现 send_response() - [x] 实现 send_event() - [x] 实现 send_tool_call() - [ ] 实现 WebSocket 连接管理 ### 10.3 高级会话管理 - [x] 创建 `backend/app/agents/session/manager.py` — AgentSession - [x] 创建 SessionContext (内置于 manager.py) - [x] 创建 SessionPersistence (内置于 manager.py) - [x] 实现 initialize() - [x] 实现 process_message() - [x] 实现 spawn_child_session() - [x] 实现 get_session_summary() - [x] 实现 persist() ### 10.4 后台任务系统 - [x] 创建 `backend/app/agents/background/manager.py` — BackgroundTaskManager - [x] 创建 `backend/app/agents/background/scheduler.py` - [x] 创建 `backend/app/agents/background/executor.py` - [x] 实现 submit_task() - [x] 实现 cancel_task() - [x] 实现 get_task_status() - [x] 实现 list_tasks() ### 10.5 协调整合 - [x] 创建/修改 `backend/app/agents/coordinator.py` - [ ] Team 协作与现有 graph 集成 - [ ] 远程传输与现有 service 集成 ### 10.6 API - [x] POST `/api/agent/sessions` — 创建会话 - [x] GET `/api/agent/sessions/{id}` — 获取会话信息 - [x] POST `/api/agent/sessions/{id}/message` — 处理消息 - [x] POST `/api/agent/sessions/{id}/spawn` — 创建子会话 - [x] GET `/api/agent/sessions/{id}/history` — 获取会话历史 - [x] POST `/api/agent/sessions/{id}/persist` — 持久化会话 - [x] POST `/api/agent/sessions/{id}/metadata` — 设置会话元数据 - [x] GET `/api/agent/sessions/{id}/metadata/{key}` — 获取会话元数据 ### 10.7 测试 - [ ] 测试: Team 创建/分配/收集/状态 - [ ] 测试: 会话层级/持久化/子会话 - [ ] 测试: 后台任务提交/调度/取消 ### Phase 10 验收 - [x] 可以创建和管理 Agent 团队 - [x] 任务能正确分配给合适的成员 - [x] 能收集和聚合多成员的结果 - [x] 支持结构化的输入输出格式 - [x] 支持远程 Agent 通信 - [x] 支持复杂的会话层级和状态管理 - [x] 支持定时和异步后台任务 - [x] 支持从父会话创建子会话 --- ## 总验收 ### 向后兼容 - [x] 现有 Sub-Commander 不受影响 - [x] 现有 API 不受影响 - [ ] 现有数据库 schema 不需修改 ### 性能 - [ ] 工具调用延迟 < 100ms - [ ] Hook 执行开销 < 10ms - [ ] 插件加载时间 < 1s ### 安全 - [x] 插件隔离有效 - [x] Hook 可以拒绝危险操作 - [x] 敏感信息正确脱敏 --- *最后更新:2026-04-04*