修复: 安全加固+DRY 收敛+文档同步+测试补齐
安全: - ScriptNode 默认黑名单兜底(rm/del/format/shutdown/mkfs/dd) - bind_directory 分段 .. 检测替代 contains 子串(对齐 tool_registry) - ai_providers 白名单移除 api_key(防 update_field 旁路写明文) DRY: - useAiEvents 抽 cleanupTerminatedConversation 统一三分支收尾 - 新增 useStoreAction 工具,4 个 store 替换 38 处 try/catch 样板 文档: - df-core → df-types 批量替换(ARCHITECTURE/PROGRESS/SQLite-CRUD) - INDEX 补齐 9 漏列文档(单对话并行多轮/跑题试验/工程系统设计等) - Agent架构说明 死链修复(../构想审查/) - AI对话引擎工具清单改为数量+按风险分组(不再用固定数字) - ARCH 状态标签 设计阶段 → Phase 2 验证 测试: - df-relay 新增 registry_test: ConnRegistry 路由 + RelayState + 16 项单测
This commit is contained in:
@@ -108,27 +108,19 @@ commands/ai/
|
||||
|
||||
---
|
||||
|
||||
## 四、12 个 AI 工具
|
||||
## 四、AI 工具清单
|
||||
|
||||
### 工具清单
|
||||
### 工具注册
|
||||
|
||||
工具定义在 `tool_registry.rs::build_ai_tool_registry`,编译期硬编码(无运行时动态注册)。
|
||||
工具定义在 `tool_registry.rs::build_ai_tool_registry`,**编译期硬编码**(无运行时动态注册)。工具统计截至 2026-06-29(后续增删见该函数 `registry.register` 调用点)。
|
||||
|
||||
| 风险 | 工具 | 说明 |
|
||||
|------|------|------|
|
||||
| **Low**(自动执行) | `list_projects` | 列出项目(排软删,截断 50 条) |
|
||||
| **Low** | `list_tasks` | 列出任务(可按 project_id 筛选) |
|
||||
| **Low** | `list_ideas` | 列出灵感 |
|
||||
| **Low** | `read_file` | 读文件(offset/limit 分页,1MB 上限) |
|
||||
| **Low** | `list_directory` | 列目录(噪音剪枝 + 1000 条上限) |
|
||||
| **Medium**(需审批) | `create_project` | 创建项目(可选 path/stack 一步绑定) |
|
||||
| **Medium** | `update_project` | 改字段(复用 CRUD 白名单校验) |
|
||||
| **Medium** | `create_task` | 创建任务 |
|
||||
| **Medium** | `create_idea` | 创建灵感 |
|
||||
| **Medium** | `write_file` | 写文件(自动建父目录,1MB 上限) |
|
||||
| **Medium** | `bind_directory` | 项目绑定代码目录 + 探测技术栈 |
|
||||
| **High**(需审批) | `delete_project` | 删项目(软删进回收站) |
|
||||
| **High** | `run_workflow` | 运行工作流(当前返回提示,未实装) |
|
||||
### 按风险等级分组
|
||||
|
||||
**Low(自动执行)** — 只读查询类,不触发审批。包含:`list_projects`/`get_project_count`、`list_tasks`/`get_task_count`、`list_task_links`/`get_task_tree`、`list_ideas`、`list_trash`、`read_file`、`read_symbol`(AST符号解析)、`list_directory`、`file_info`、`grep`(跨文件内容搜索)、`search_files`、`list_project_services`、`list_project_modules`、`get_project_timeline`、`git_status`/`git_diff`/`git_log`(只读)。
|
||||
|
||||
**Medium(需审批)** — 写入类,需人工批准。包含:`create_project`/`update_project`/`bind_directory`、`create_task`/`update_task`/`delete_task`、`advance_task`/`move_task_queue`/`update_content`、`create_task_link`/`remove_task_link`、`create_idea`、`add_project_service`、`write_file`/`patch_file`/`append_file`、`git_commit`/`git_branch`、`http_request`(SSRF防护含DNS rebinding检查)。
|
||||
|
||||
**High(需审批 + 默认谨慎)** — 高风险,默认自动执行模式会全部拒绝。包含:`delete_project`/`restore_project`/`purge_project`、`delete_file`/`rename_file`、`run_command`(默认超时 60s)、`run_workflow`(联动任务推进)、`git_merge`(冲突返回冲突文件列表)。
|
||||
|
||||
### 工具三要素同源
|
||||
|
||||
@@ -145,9 +137,9 @@ commands/ai/
|
||||
|
||||
### 已知限制
|
||||
|
||||
- **截断 50 条无翻页**:三个 list 工具 `truncate(50)` 硬截断,无 offset/limit,AI 不知道有数据被漏掉(待改进)
|
||||
- **"能写不能跑"**:AI 有 `write_file` 但无 `run_command`,无法形成"写→跑→改"闭环(待改进)
|
||||
- **工具集封闭**:编译期硬编码,无 MCP 客户端,AI 运行时不能新增/修改工具
|
||||
- **AI 不能造工具**:AI 能 `write_file` 写脚本但不会变成可调用工具(要重编译)
|
||||
- **agent ↔ workflow 仍未完全打通**:`run_workflow` 现已能联动任务推进,但 ScriptNode 能力未暴露给 agent loop
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user