Files
projectAIpopular/任务拆解与执行计划.md
T
tzt 747d85c3ba feat(v3): T29 收尾 + T31 dsh 功能对齐
T29 流式收尾:
- _stream_partial 每次流式调用前复位(防上次成功置位导致本次失败误抛不回退)

T31 dsh(deepseek-harness)功能对齐:
- OpenAICompatChat 重试退避:传输错误/408/429/5xx 指数退避(max_retries=2),4xx 不重试
- web_fetch 工具:公网 http/https 抓取,SSRF 防护(DNS 后拒绝私网/环回/链路本地/NAT64,
  512KB/15s/12k 上限,二进制嗅探拒绝),agent.allow_net 开关(默认开)
- 原子写入:write_file/edit_file 临时文件 + os.replace(Windows EPERM 退避)
- 慢工具线程卸载:run_command/web_fetch/search_files 独立线程 + asyncio.sleep 轮询
- search_files:os.walk 修剪依赖目录(替代 rglob 全量物化),不跟随符号链接
- run_command:危险命令黑名单独立拦截 + 显式 COMSPEC/sh 解释器执行
- 重复调用提醒:同工具同参数第 3 次起回喂系统提示 + repeat_warning 事件
- 会话重命名:PATCH /agent/sessions/{sid} + 前端 ✎
- 前端:SettingsView 适配密钥打码(留空保留),SPA 重新构建
- 新增 tests/test_agent_features.py(9 项);全量 318 测试通过
2026-09-02 00:02:24 +08:00

127 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务拆解与执行计划
> 任务体系:主任务(整体项目)→ 附加任务(先行实现:整体项目部分拆解)
> 建立日期:2026-08-14
---
## 一、任务体系总览
```
主任务:多专业小模型 + 路由模型系统(整体项目)
├─ 已完成部分(专家系统内核):
│ · 知识库(8 领域 67 规则 + 17 模板 + 45 事实)
│ · 黑板/前向链/Planner/DAG 路由(L0 零参数)
│ · 三级子领域(domain → subdomain → subdomain2
│ · 两级路由体系(domain_group → 组内路由模型)
│ · 92 项单元测试全绿
└─ 附加任务(★ 先行实现):整体项目部分拆解
· 目标:把整体项目剩余工作拆解为可独立执行的部分任务,
并优先实现第一批(P0),为后续铺路
· 状态:进行中
```
## 二、整体项目剩余工作拆解清单
| # | 任务 | 内容 | 依赖 | 优先级 | 预估 | 状态 |
|---|------|------|------|--------|------|------|
| T1 | NodeExecutor 接口抽象 | 解耦 `_execute_node` 的 if-elserule/model/未来后端统一接口 + 工厂 | — | **P0** | 0.5 天 | ✅ 完成 |
| T2 | 评测基准扩充 | eval 扩到 8 领域 24 样例 + 组路由/子领域识别指标 | — | **P0** | 0.5 天 | ✅ 完成 |
| T3 | 推理链查询接口 | 请求 ID 化 + 内存轨迹存储 + `GET /traces/{id}` | T1 | **P0** | 1 天 | ✅ 完成 |
| T12 | **Agent-Skill 路由器** | 路由器独立:Skill 注册表(21 技能)+ RouteAgent 自主分析需求→技能调用计划→执行,无需用户指定领域/模型 | T1,T2,T3 | **P0** | 1-2 天 | ✅ 完成 |
| T4 | 知识库 CRUD + 热重载 | `/knowledge/rules|facts` CRUD + `POST /config/reload` | T1 | P1 | 1-2 天 | ⬜ 待办 |
| T5 | 本地模型推理接入(L2 | Ollama/vLLM 封装 + `fallback.local` 验证 + 组内模型按需加载 | T1 | P1 | 2-3 天 | ⬜ 待办 |
| T6 | embedding 语义缓存 | BGE 本地向量化替代 n-gram L2 | — | P1 | 1-2 天 | ⬜ 待办 |
| T7 | 分类器训练流水线 | 数据构建 + 0.6B QLoRA 训练(8 领域) | — | P1 | 2-3 天 | ⬜ 待办 |
| T8 | 领域专家微调 | QLoRA 微调 5-8 领域专家 + 数据收集 | T7 | P2 | 3-4 周 | ⬜ 待办 |
| T9 | RouterArena 评测 | 标准 5 维评测接入 | T2 | P2 | 2-3 天 | ⬜ 待办 |
| T10 | 监控 + 模型注册表 | Prometheus 指标 + 模型版本/热替换 | T4,T5 | P2 | 2-3 天 | ⬜ 待办 |
| T11 | 部署生产化 | Docker/Compose + 灰度 + 安全 | T5,T10 | P2 | 3-5 天 | ⬜ 待办 |
## 三、先行实现批次(P0)—— 已完成 ✅
1. **T1 NodeExecutor 接口抽象** —— 子任务执行后端统一接口(rule/model 两实现 + 工厂),L2 模型接入无需改 Router
2. **T2 评测基准扩充** —— 24 样例 × 8 领域,指标:分类 100% / 大领域组识别 100% / 子领域识别 100%
3. **T3 推理链查询接口** —— `GET /traces/{request_id}`:完整推理链可追溯(两级路由 → 三级子领域 → 拆解 → 规则 → 评分)
4. **T12 Agent-Skill 路由器** —— 路由器独立为"技能注册表 + Agent 规划器"
- 21 个内置技能(es.* 模板 ×17、kb.retrieve/kb.answer、judge.evaluate、fallback.call
- RouteAgent 自行分析需求 → 规划技能调用(多技能组合/依赖)→ 执行 → 校验 → 升级
- **用户只提供 query,无需指定领域/模型**;技能调用轨迹可追溯(skill:es.analyze@facts
- 实测:法律咨询自动组合 es.analyze + kb.retrieve + es.conclude + es.disclaimer
P0 完成后的能力:干净的后端抽象 + 可量化的评测 + 可追溯的推理链 + 技能化 Agent 路由(118 项测试全绿)。
## 四、执行规则
- 每任务独立验收(测试 + 文档),完成后更新状态 ✅
- 依赖任务未完成时,先做无依赖任务
- P1/P2 任务在 P0 完成后按序推进,不阻塞主线
---
## 五、v2 任务登记(端云协同 LLM 协作系统,见《实现方案_v2_端云协同LLM协作系统.md》)
> 每个任务一个 commit`feat(v2): Tn 描述`),交付含封闭单测;v1 的 126 项测试保持全绿。
| T | 内容 | 状态 | commit |
|---|------|------|--------|
| T1 | 环境与基线确认(126 测试全绿;README 环境备忘) | ✅ 完成 | (并入 T2 commit |
| T2 | 运维层:hw_profile + llama_server 进程管理 | ✅ 完成 | T2 |
| T3 | ArchitectClientDeepSeek APIJSON 约束) | ✅ 完成 | T3 |
| T4 | Workspace(交流文本 schema/校验/渲染/rollup | ✅ 完成 | T4 |
| T5 | WorkerLoop + 接地验证 | ✅ 完成 | T5 |
| T6 | CollaborativePipeline 编排 | ✅ 完成 | T6 |
| T7 | 网关扩展(/chat 切 v2/chat/legacy | ✅ 完成 | T7 |
| T8 | 人工检验队列 ReviewQueue | ✅ 完成 | T8 |
| T9 | token 计量与账单 | ✅ 完成 | T9 |
| T10 | rollup + prefix cache 调优 | ✅ 完成 | T10 |
| T11 | 打包分发 setup_runtime.py | ✅ 完成 | T11 |
| T12 | 实验脚本 bench_tokens.py + 数据集 | ✅ 完成 | T12 |
| T13 | E1 本地跑数完成(E2E5 待 live 接入) | ✅ 完成 | T13 |
| T14 | 文档收口(README v2 改写) | ✅ 完成 | T14 |
| T15 | Pipeline 死锁修复(_deps_done 依赖过滤 + pending-empty break+ /metrics SPA 路由冲突修复 | ✅ 完成 | T15 |
---
## 六、v3 任务登记(Web 应用化,见《实现方案_v3_Web应用化.md》)
> 每任务一个 commit`feat(v3): Tn 描述`);`router_system` 核心不动(D3),229 项基线测试保持全绿。
| T | 内容 | 状态 | commit |
|---|------|------|--------|
| T1 | 后端异步化(jobs.py + /chat 后台任务 + /runs/{id}/status | ✅ 完成 | v3 基线 |
| T2 | 后端 SSE/runs/{id}/stream 监视 workspace.json | ✅ 完成 | v3 基线 |
| T3 | 前端脚手架(Vue3+Vite+TSoutDir=gateway/static | ✅ 完成 | v3 基线 |
| T4 | 对话页 + SSE 实时可视化 | ✅ 完成 | v3 基线 |
| T5 | 协作过程页 + 检验队列页 + 指标页 | ✅ 完成 | v3 基线 |
| T6 | llama-server 内置管理(/llama/* + 下载 SSE)+ 设置页整页滚动修复 | ✅ 完成 | v3 基线 |
---
## 七、模型池与工具智能体任务登记(T16–T21,见《实现方案_v4_模型池与工具智能体.md》)
> 「端云」叙事泛化为多价位模型池(local/budget/premium 三档 + 角色指派),新增 zcode 式工具智能体。
> `router_system` 保持零第三方依赖;全量测试 262 项全绿(基线 229 + 新增 33)。
| T | 内容 | 状态 | commit |
|---|------|------|--------|
| T16 | 工具内核:WorkspaceTools(路径关押)+ ToolLoop(轮数/token 双护栏) | ✅ 完成 | T16 |
| T17 | 模型池:PoolStore + /pool 端点 + 管线池解析 + 按模型成本分账(by_model | ✅ 完成 | T17-T18 |
| T18 | 智能体:OpenAI 兼容工具调用客户端 + AgentService + /agent 端点(SSE | ✅ 完成 | T17-T18 |
| T19 | 前端:API 层 + 设置页模型池 UI(角色指派/条目 CRUD/连通测试) | ✅ 完成 | T19-T20 |
| T20 | 前端:智能体页 AgentView + 指标页分账卡 + SSE 终态去重 | ✅ 完成 | T19-T20 |
| T21 | 集成验证:真跑 3 轮工具任务(write/list/read+ 浏览器实测 + 262 测试全绿 | ✅ 完成 | T21 |
| T22 | 工具扩展:edit_file(唯一替换)/ search_files(跳过依赖目录)/ run_commandallow_shell 默认关) | ✅ 完成 | T22 |
| T23 | 工作区选择:/agent/fs 目录浏览 + /agent/workspaces 最近列表 + /agent 带 workspace | ✅ 完成 | T23 |
| T24 | 前端:工作区选择栏(目录浏览器/最近/shell 开关)+ edit diff 卡 + 命令卡 | ✅ 完成 | T24-T25 |
| T25 | 集成验证:选定真实目录"读→精确编辑→运行验证"全链路 + 274 测试全绿 | ✅ 完成 | T24-T25 |
| T26 | 两级智能体:规划者(大模型)拆解/审查 + 执行者(本地小模型)工具轮,handoff.json 交接,/agent 带 executor_pool_id | ✅ 完成 | T26 |
| T27 | 会话式智能体:多轮上下文 + 会话持久化 + 停止按钮 + AgentView 对话式重构(dsh 范式) | ✅ 完成 | T27 |
| T28 | 操作审批流:approval_policy(off/dangerous/all) + 挂起/裁决/超时 + /approve + 审批卡 | ✅ 完成 | T28 |
| T29 | token 级流式:SSE 解析/tool_calls 碎片组装/回退 + DeltaThrottle + 打字机渲染 | ✅ 完成 | T29 |
| T30 | 安全加固(Mimosa 深度扫描驱动,D11):路径 ID 白名单/artifacts 与工件名关押/下载 dest 关押+协议白名单/config 密钥打码/Host 信任围栏+回环绑定/危险命令独立拦截/CSPRNG 抽样 | ✅ 完成 | T30 |
| T31 | dsh 功能对齐(D12):LLM 重试退避/web_fetch 工具(SSRF 防护)/原子写入/慢工具线程卸载/search 目录修剪/重复调用提醒/会话重命名 | ✅ 完成 | T31 |