From 15606a65706a03632886cf6819b336c809f6e02e Mon Sep 17 00:00:00 2001 From: Blizzard Date: Wed, 17 Jun 2026 14:58:58 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=96=B0=E5=A2=9E=20PROGRESS.md=20?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=B8=85=E5=8D=95=EF=BC=88=E6=8C=89=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=88=86=E5=B1=82=E7=9A=84=E5=B7=B2=E5=81=9A/?= =?UTF-8?q?=E6=9C=AA=E5=81=9A=E6=B4=BB=E6=96=87=E6=A1=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对照 architecture.md 5 层 + 功能规划,列出已完成/部分/未实现,复选框形式, 完成一项勾一项,方便记忆与续作。基于当前代码实况(至提交 79f9912)。 Co-Authored-By: Claude Opus 4.8 --- PROGRESS.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 PROGRESS.md diff --git a/PROGRESS.md b/PROGRESS.md new file mode 100644 index 0000000..ae30bd2 --- /dev/null +++ b/PROGRESS.md @@ -0,0 +1,107 @@ +# sundynix-agentix · 进度清单 + +对照 [architecture.md](architecture.md)(5 层 + NATS 总线)与功能规划的完成度。**活文档:完成一项就把 `[ ]` 勾成 `[x]`。** + +图例:`[x]` 已完成 · `[ ]` 未做 · 🟡 部分/桩(旁注说明)。最近更新:2026-06-17(至提交 `79f9912`)。 + +--- + +## 第 1 层 · CLIENT(sundynix-desktop) + +- [x] React 19 + TypeScript + Tailwind 工业级 UI(🟡 自建 UI primitives,未用 shadcn —— 与架构图有偏差) +- [x] React Flow 编排画布 + JSON DSL 导出(含 branch 真/假边手柄) +- [x] Wails 本地 Go 运行时 + TS/Go 强绑定 + 本地文件 I/O(另存为 / 系统打开 / 系统通知) +- [x] 浏览器模式优雅降级(无 Wails 运行时也能跑) +- [x] ⌘K 命令面板 +- [x] 运行·观测:节点级实时执行轨迹(SSE) +- [x] 顶栏依赖健康五盏灯 +- [x] 知识库:入库可视化(解析→切块→向量化→抽取时间线) +- [x] 知识库:批量文件 / 文件夹入库 + 列表状态 +- [x] 知识库:Obsidian 式文库(Markdown 阅读 + `[[双链]]` + 反链 + 笔记关系图) +- [x] 知识库:检索调试台 + 知识图谱(react-force-graph 力导向) +- [x] 报告:Markdown 实时预览 + 导出 Word / PDF / Markdown +- [ ] 🟡 PDF 导出走 webview 打印 —— **Wails 真机未验证**(浏览器预览 OK) + +## 第 2 层 · BUSINESS GATEWAY(sundynix-gateway · Gin) + +- [x] Gin 统一接入层 + CORS + 限流中间件 +- [x] MainDB(PgSQL):user / task / model / kb / doc / doc_link / agent +- [x] CacheDB(Redis):会话 / 限流 +- [x] Task DSL Parser & Assembly +- [x] 模型配置控制面(按 kind 经 NATS 下发给 dispatcher / mcp-go) +- [x] 独立运维控制台 sundynix-admin(模型 / 数据源页) +- [x] SSE 回流:Token 流 / 执行轨迹 / 入库进度 +- [ ] 🟡 Harness 输入/输出护栏(Guardrail 中间件在,校验是 TODO 桩) +- [ ] 🟡 商业化与计费模块(占位,仅统计任务数) + +## 第 3 层 · MESSAGE BUS(NATS 零拷贝骨干网) + +- [x] 任务队列(JetStream,`sundynix.tasks.*`) +- [x] Token 流(core NATS,`sundynix.streams.`) +- [x] 执行轨迹流(`sundynix.exec.`)+ 入库进度流 +- [x] 工具 request-reply(`sundynix.tools.go/py.*`) +- [x] 配置控制面(按 kind 请求模型配置 + 热更新广播) + +## 第 4 层 · AI AGENT DISPATCHER(sundynix-dispatcher · Eino) + +- [x] 按图执行引擎:拓扑 + 连线 + 分支剪枝(弃用线性拍平) +- [x] branch 真/假边标签精确选路(无标签退回边序,向后兼容) +- [x] map 真并行 fan-out(有界并发)+ aggregate 汇聚 +- [x] render 节点(成稿 → docx) +- [x] LLM Pool:OpenAI 兼容流式(🟡 接 DeepSeek/百炼在线 API,非架构图的 vLLM/Ollama 集群) +- [x] 记忆召回(画像 + 历史注入) +- [x] 报告专用编排(规划 → 分章并行 → 汇聚 → 存源) +- [x] 会话历史写回 +- [ ] Harness 熔断降级中心(`CircuitBreaker.Allow()` 恒 true,桩) +- [ ] Harness LLM 自动化评测(桩) +- [ ] 长期偏好记忆抽取(LLM 抽取 → 去重 → memory_upsert,TODO) + +## 第 5 层 · MCP TOOLS + +### sundynix-mcp-go(I/O 型) + +- [x] MCP 协议网关(队列组通配订阅) +- [x] 混合检索:Bleve + Milvus + Neo4j(RRF 融合 + rerank) +- [x] kb_ingest / kb_search / kb_graph +- [x] memory_get / memory_upsert · history_get / history_append +- [x] report_render / report_store / report_export +- [x] Word 渲染(🟡 自建零依赖 OOXML,非 UniOffice —— 偏差,UniOffice 商业授权) +- [ ] external_api(外部 API 工具) + +### sundynix-mcp-py(算法型) + +- [ ] 🟡 parse_document(docx/pdf/xlsx 解析器在;MinerU / PaddleOCR 多模态为骨架) +- [ ] 代码解释器(docker 隔离执行,TODO) +- [ ] 安全沙箱(gVisor / KataVM 强隔离 + AST 静态守卫,全为 TODO 桩) + +## 跨层 / 工程 + +- [x] 存储扩展:文库列表/正文分离 + 双链 ID 索引 + 大文件正文存 MinIO +- [x] DB 规约全库统一:雪花字符串 id + created/updated + 软删(gateway 各表 + mcp-go Profile) +- [x] 文件主表,文档间关联用雪花 ID(弃用按名关联) +- [x] 后端首批单测(19 纯逻辑用例:引擎/DSL/docx/报告)+ mcp-go 集成测试(Profile 迁移) +- [ ] 🟡 owner 隔离靠 `X-User-ID` 头 —— 可用但**可伪造,无真实鉴权** +- [ ] 集成/前端测试(`runGraph` / `handleReport` 需 mock pool/tools/sink;前端无测试) + +--- + +## 未实现的大块(路线图) + +- [ ] **真实登录 / 鉴权 / 会话**(替掉裸 `X-User-ID`,最影响"能否交付他人用") +- [ ] **代码解释器 + 安全沙箱**(mcp-py 核心能力,目前全桩) +- [ ] **Harness 三件**:输入/输出护栏 · 熔断降级状态机 · LLM 自动化评测 +- [ ] **长期记忆抽取** + external_api 工具 +- [ ] **计费 / 商业化**真实实现 +- [ ] 微服务化拆分(Morph B)—— 现为 Monolith First,**按设计如此,非缺陷** + +## 收尾小债 + +- [ ] 6 个提交待 push(`5d76652` → `79f9912`,需在普通终端 `git push origin main`) +- [ ] PDF 导出 Wails 真机验证(不行则回退后端内嵌 CJK 字体出 PDF) +- [ ] 报告生成并发健壮性(writeSections 降并发 / 加单次超时,治偶发卡顿) +- [ ] MinIO 大文档改名/删除的孤儿对象 GC +- [ ] `make test` 目标(一键跑全后端测试) + +--- + +> 本地起服务顺序坑见 memory `local-run-gotchas`:**mcp-go 必须在 Milvus 之后起**,否则阻塞在 rag 初始化、不订阅工具,所有 mcp-go 工具 `no responders`。