361 lines
11 KiB
Markdown
361 lines
11 KiB
Markdown
# 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*
|