From 4d867ce460d80fd0f0496382f7632cd602dc17bf Mon Sep 17 00:00:00 2001 From: Blizzard Date: Thu, 25 Jun 2026 10:05:52 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=87=8D=E5=86=99=20project=5Fanalysis?= =?UTF-8?q?.md=20=E2=80=94=E2=80=94=20Opus=204.8=20=E5=85=A8=E7=A8=8B?= =?UTF-8?q?=E6=90=AD=E5=BB=BA=E5=90=8E=E7=9A=84=E5=AE=9E=E6=B5=8B=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 整体覆盖旧自动分析版。要点: - 真实数据实测(~19,200 行 / 32 测试文件 / dev 119 提交),订正旧版"基于 main" 及我此前口头"14 未推送"的口误(实测 dev 仅领先 origin/dev 4 个、origin/main 基本同步)。 - 据实盘点功能 + 本会话端到端验证标注(HITL/6 工具/AES/OTel/并发等均实测确认)。 - 严格区分"功能存在"与"成熟/被验证":对标矩阵加口径警示,不再喊"超越数万 star/安全最强"。 - 正视生产硬门槛:单点无 HA、无备份灾备、未审计、无配额、规模未验证、推理模型未适配、 exec 轨迹丢事件、停机不 drain。 - 评分 3.7/5(功能完成度高、运维成熟度低,分列说明)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- project_analysis.md | 540 +++++++++++++------------------------------- 1 file changed, 156 insertions(+), 384 deletions(-) diff --git a/project_analysis.md b/project_analysis.md index bca94ac..49068a9 100644 --- a/project_analysis.md +++ b/project_analysis.md @@ -1,414 +1,186 @@ # sundynix-agentix · 项目分析报告 -> 分析时间:2026-06-24 · 基于本地 **dev 工作树**(非 main)· ~19,500 行源代码 +> 撰写:2026-06-24 · 由 Opus 4.8 在**全程参与搭建**后基于实测与源码盘点撰写(覆盖旧版自动分析)。 > -> ⚠️ **范围说明**:本文描述的 HITL 审批、6 个新 agent 工具(web_search/web_fetch/calculator/ -> current_datetime/sql_query/chart)、API Key 线缆加密、任务/工具并发等,截至分析时**仅在 dev 分支、 -> 尚未推送合并到 main**。"main 已具备"的表述不成立——这些是 dev 上的未推送提交。 -> -> ⚠️ **评价口径**:下文对标主流项目时,多数为**「功能是否存在」**的勾选,**不代表成熟度/规模验证/ -> 可靠性对等**。本项目绝大多数能力为单人新作、未经外部审计、未经真实流量与规模验证;与 Dify 等 -> 拥有数万生产用户、长期打磨的项目相比,"有同名功能"≠"同等可靠"。请据此打折阅读自评分。 +> **立场**:本报告刻意避免营销腔。功能层面据实盘点;价值层面对"功能存在"与"成熟/被验证"严格区分。 +> 本项目绝大多数能力为**单人新作、未经外部审计、未经真实流量与规模长稳验证**——请据此理解所有评分。 --- -## 一、项目概况 +## 〇、一句话定位 -sundynix-agentix 是一个**分层式 AI Agent 平台**,采用 **5 层架构 + NATS 零拷贝消息总线**, -遵循 **Monolith First → Microservices (Morph B)** 演进策略。 +**一个功能密度极高、架构品味很好的单人「准生产原型」。** 编排深度、安全覆盖面、可观测性在同类 +开源项目里都属上乘;但离"生产可用"的差距不只在生态/商业化,更在**高可用、规模验证、灾备、审计** +这些运维硬门槛——这些目前基本是空白。 -### 代码规模 +--- -| 维度 | 数据 | -|------|------| -| **总代码行数** | **~19,453 行** (不含依赖 / 生成文件) | -| Go 后端 | 12,916 行(含 2,397 行测试) | -| TypeScript/TSX 前端 | 5,834 行(桌面端 4,628 + 运维台 1,181) | -| Python MCP 工具 | 641 行 | -| Git 提交数 | **117 次** | -| 源文件数 | ~160 个 | -| Go 模块 | 5 个(gateway / dispatcher / mcp-go / shared / desktop) | -| 前端应用 | 2 个(桌面端 + 运维控制台) | -| 测试文件 | **32 个**(Go 22 + TS/TSX 5 + Python 1 + setup 1 + CI 3) | -| 测试代码 | **~2,776 行** | -| CI/CD | **2 条 GitHub Actions**(CI + Release) | +## 一、真实数据(本次实测) -### 各模块代码分布 - -| 模块 | 行数 | 职责 | +| 维度 | 数据 | 备注 | |------|------|------| -| sundynix-dispatcher | 4,222 | Eino 图编排 + compose 编译器 + ReAct 智能体 + 熔断 + 评测 | -| sundynix-mcp-go | 3,872 | MCP 工具网关 · 混合检索 · 语义切块 · Agent 工具集 · Word 渲染 | -| sundynix-gateway | 3,121 | Gin 接入层 · DSL · 鉴权 · 护栏 · 可观测 · SSE 断点续传 | -| sundynix-shared | 1,561 | 任务契约 · NATS bus · OTel 链路 · AES 加密 · slog trace | -| desktop frontend | 4,628 | React 19 + React Flow 编排 · 知识库 · 图表 · 更新检查 | -| sundynix-admin | 1,181 | 运维控制台 · 模型 / 数据源 / 计价 / 服务状态 | -| sundynix-mcp-py | 641 | 代码解释器 · Docker 沙箱 · AST 守卫 | +| 源码总量 | **~19,200 行**(不含依赖/生成) | 实测 | +| Go 后端 | 12,776 行(含测试 ~2,397) | gateway 3121 / dispatcher 4222 / mcp-go 3872 / shared 1561 | +| 前端 TS/TSX | 5,809 行 | 桌面端 4,628(47 文件)+ 运维台 1,181(13 文件) | +| Python 工具 | 456 行 | mcp-py | +| 测试文件 | **32**(Go 26 + 前端 5 + Py 1) | | +| 代码模块 | Go 4 工作区模块 + desktop(Wails) + 2 前端 + mcp-py | | +| 提交数 | dev 119 | dev 比 origin/dev 多 4 未推;origin/main 基本同步(差 1 文档提交) | +| 关键依赖 | Eino v0.9.9 · OTel v1.44 · nats.go v1.37 · gorm v1.31 · milvus-sdk v2.4.1 | | +| 基础设施 | docker-compose 8 服务 | nats/pg/redis/jaeger/neo4j/milvus(+etcd+minio) | + +> 订正旧报告两处不实:① 旧版称"基于 main 117 提交",实为 dev;② 之前我多次口头说的"14 个未推送 +> commit"是**错的**——实测 dev 仅比 origin/dev 多 4,origin/main 已基本同步。 --- -## 二、优势分析 +## 二、架构与请求生命周期 -### 🟢 1. 架构设计 — 清晰、品味好(但未经规模验证) - -- **5 层解耦**:Client → Gateway → NATS Bus → Dispatcher → MCP Tools,每层可独立替换 / 水平扩展(机制具备;多副本水平扩仅本地验证,未上真实集群) -- **NATS 零拷贝总线**:JetStream 持久化 + Queue 负载均衡 + Request-Reply 同步调用,选型合理 -- **Monolith First 策略**:先跑通闭环,微服务按需渐进 -- **Go 后端**:算法层(OCR / 沙箱)用 Python。注意:本平台性能天花板在**外部 LLM 推理**,不在语言运行时——"Go 避免 GIL"不是这里的关键卖点 -- **OpenTelemetry 全链路追踪**:跨 NATS 传播 W3C traceparent,Jaeger 可视化 -- ⚠️ **架构成熟度短板**:网关 / 调度 / NATS 均为**单点**,无 HA / 集群 / 故障转移;无备份与灾备方案 - -### 🟢 2. 编排引擎 — 双轨制 + ReAct 智能体 - -项目在编排层做了 **Eino 深度集成**(Phase A → B → C → D),达到了极高的完成度: - -| 阶段 | 内容 | 状态 | -|------|------|------| -| Phase A | LLM Pool 内部换成 Eino ChatModel | ✅ | -| Phase B | ReAct 智能体 + MCP 工具自主调用 | ✅ | -| Phase C | DSL → compose.Graph 编译器(DAG 并行调度) | ✅ | -| Phase D | 任务生命周期状态机 + 人工审批中断 | ✅ | - -- **自研 graph.go + compose.Graph 双轨**:灰度开关切换,compose 编译失败自动降级回自研(安全网) -- **ReAct 智能体**:模型自主决定调哪些 MCP 工具,list_tools 自描述 + 动态发现,新增工具零改动 -- **人工审批节点(HITL)**:审批节点暂停 → 批准续跑 / 拒绝中止,状态轮询兜底 -- **编排式多智能体接力**:上游 agent 产出沿图传给下游 agent -- **branch 精确选路 + map 有界并发 fan-out + aggregate 汇聚** - -### 🟢 3. 安全治理 — 纵深防御覆盖面广(自述,未审计) - -项目突出的亮点之一,**纵深防御多层 + 加密闭环**。但须强调:以下均为**自实现、未经外部安全审计 / 渗透测试**,"覆盖面广"不等于"已验证安全": - -| 治理项 | 实现 | 特色 | -|--------|------|------| -| 输入护栏 | 正则拦截中英文注入 + 超大体限制 | 纯逻辑解耦 + 单测 | -| 输出护栏 | 流式逐片脱敏 sk-/AKIA/JWT/Bearer | 流式 token 不可回收,故逐片处理 | -| 熔断降级 | 真三态 Closed/Open/HalfOpen 状态机 | `-race` 并发安全 + 熔断时不静默丢弃 | -| LLM 评测 | 规则检查 + LLM-as-judge | 异步 off 热路径评分 | -| 代码沙箱 | Docker 隔离 + AST 静态守卫 | 禁网 / 非root / 丢能力 / 只读根 / tmpfs / 限资源 / 超时kill | -| SSRF 防护 | 主机白名单 + 超时 / 限重定向 / 限体 | 覆盖 external_api + web_fetch | -| **API Key 端到端加密** | **AES-256-GCM,磁盘 + NATS 线缆均密文** | SHA-256 派生密钥,`enc:1:` 版本前缀,历史明文平滑迁移 | -| JWT 鉴权 | 注册 / 登录 / 校验 / RequireAuth + Admin 白名单 | 生产密钥 fail-fast | -| SQL 查询安全 | 只读事务 + SELECT/WITH 静态校验 + 行数限制 | 三重防护 | - -> 就**功能覆盖面**而言,这套治理栈比多数同类开源项目(Dify / FastGPT / Langflow / Flowise)更齐全; -> 但成熟项目的安全更多体现在长期修复、社区审计与真实攻防中——本项目尚未经历这些,覆盖广 ≠ 更安全。 - -### 🟢 4. 知识库 — 三路混合检索 + 语义切块 - -- **Milvus 向量 + Bleve 全文 + Neo4j 图谱 → RRF 融合 → 可选 Rerank** -- **语义切块已升级**:Markdown 标题感知(块带章节面包屑、不跨章节、跳过代码围栏) - + 递归句界切块 + 块间 overlap(80 rune)+ 碎块合并 + rune 安全(杜绝 UTF-8 切碎) -- 入库可视化:切块 → 向量化 → 三元组抽取 → 实时进度回流 -- Obsidian 式文库:`[[双链]]` + 反链 + 力导向关系图 - -### 🟢 5. Agent 工具集 — 动态化 + 丰富 - -MCP 工具经 NATS list_tools 自描述,新增工具零改动(无硬编码): - -| 工具 | 类型 | 说明 | -|------|------|------| -| kb_search / kb_ingest / kb_graph | Go | 知识库检索 / 入库 / 图谱查询 | -| memory_get / memory_upsert / memory_list / memory_delete | Go | 长期记忆 CRUD | -| history_get / history_append | Go | 会话历史 | -| report_render / report_store / report_export | Go | 报告生成全链路 | -| external_api | Go | 通用出站 HTTP(SSRF 防护) | -| **web_search** | Go | **联网搜索**(Tavily + DuckDuckGo 兜底) | -| **web_fetch** | Go | **网页抓取 + 正文提取** | -| **calculator** | Go | **安全表达式求值**(调度场算法 → RPN) | -| **current_datetime** | Go | **当前日期时间**(LLM 不知道"现在") | -| **sql_query** | Go | **只读 SQL 查询**(三重防护) | -| **chart** | Go | **图表工具**(JSON spec → 前端 SVG 渲染) | -| code_interpreter | Python | Docker 隔离执行 | - -### 🟢 6. 可观测性 — 生产级 - -- **OpenTelemetry 全链路追踪**:OTLP → Jaeger,跨 NATS 总线 W3C traceparent 传播 -- **slog 日志带 trace_id**:日志与链路双向互跳 -- Prometheus `/metrics`(请求数 / 耗时 / 在途,路由模板低基数标签) -- 结构化 JSON 访问日志 + `X-Request-ID` -- `/healthz` + `/readyz` K8s 标准探针 -- SSE Token 流可回放 + 断点续传(Redis Stream) -- 前端健康五盏灯 + 节点级实时执行轨迹 - -### 🟢 7. CI/CD + 发版体系 - -- **GitHub Actions CI**:Go build + vet + test(4 模块)/ 前端 tsc / mcp-py 沙箱测试 -- **GitHub Actions Release**:打 `vX.Y.Z` 标签 → macOS universal + Windows amd64 桌面端安装包 → 自动发布到 GitHub Releases -- **桌面端自动更新检查**:App 启动查 releases/latest,新版弹横幅提示下载 -- 完整的 [RELEASE.md](RELEASE.md) 发版清单(版本号对齐 + 验证 + 回滚) -- CI 并发组(同分支新 push 自动取消上次未完成运行,省 CI 时间) - -### 🟢 8. 长期记忆 — Generative Agents 级 - -- P1:异步攒批 Consolidate(每 3 轮 1 次 LLM 对账 → ADD/UPDATE/DELETE/NOOP)+ 软删 + importance/last_seen -- P2:读路径 Score(Recency + Importance) 排序 + 衰减 + 截断 top30 -- 桌面端记忆面板:可看 / 改 / 删(软删) -- memory_list / memory_delete 工具 + 端点 - -### 🟢 9. 工程化 — 开发者体验一流 - -- `make demo` 无 Docker 一键跑全链路(内嵌 NATS) -- docker-compose 7 服务(NATS / PG / Redis / Milvus + etcd + MinIO / Neo4j),clone 后零配置直跑 -- 模型配置经 NATS 控制面热更新,运行时无需重启 -- 配置拉取后台重试,根治启动竞态 -- DB 连接池上限 + LLM 失败暴露为 failed(生产级并发收尾) -- 空答复不落历史 + 发送前过滤空消息(根治会话毒化) -- 工具服务单实例并发(协程化)+ 任务并发消费 -- 前端测试(Vitest + RTL,5 测试文件) - ---- - -## 三、劣势 / 待改进项 - -### 🔴 1. 前端测试仍薄 - -- 已有 5 个前端测试文件(UpdateBanner / dsl / run / version / chartspec),比之前的零测试进步很大 -- 但 KbView.tsx (~32K) 等核心业务视图仍无测试 -- 缺 E2E 测试(Playwright / Cypress) - -### 🔴 2. MinerU / PaddleOCR 多模态仍为骨架 - -- `mineru.py` 仅 435 字节,PDF / 图片多模态解析未真实落地 -- 对比 Dify 已支持 Unstructured / Jina Reader 等多种解析器 - -### 🔴 3. 本地模型支持缺失 - -- LLM Pool 仅对接 OpenAI 兼容在线 API,架构图设计的 vLLM / Ollama 未实现 -- 缺模型路由(按延迟 / 成本 / 能力自动选型)、无多模型 fallback - -### 🔴 4. 计量计费未闭环 - -- 计价配置已完成(按模型 · 分输入/输出单价 + 币种),但计量×单价折算 + 配额未落地 - -### 🔴 5. 缺多租户 / 团队协作 - -- 当前按 `owner` 做基础数据隔离,无团队 / 组织概念 -- 无 Agent 编排共享、知识库权限分级 - -### 🔴 6. 前端大文件需拆分 - -- KbView.tsx ~32K / ~900 行,杂糅入库、文库、检索、图谱等多个子功能 - -### 🔴 7. 高可用与运维成熟度缺位(生产硬门槛) - -- **无 HA / 单点故障**:网关、调度、NATS 均单实例;任一挂掉即中断。无集群、无故障转移、无自愈 -- **规模未经真实验证**:并发能力(任务消费 + 工具协程化)为近期补齐,仅本地小规模验证;真实负载曲线、长稳测试、容量上限均未实测 -- **无备份 / 迁移 / 灾备**:PG / Milvus / Neo4j 数据无备份与恢复方案 -- **无按用户配额 / 限流分级**:仅有按 IP 的全局限流 - -### 🔴 8. 可靠性细节缺口 - -- **exec 执行轨迹事件会丢**:轨迹流走实时 NATS(无回放),晚连 / 重连丢事件(审批已用状态轮询兜底,轨迹本身未根治) -- **推理模型未适配**:主力模型为推理型(答案在 `reasoning_content`),平台只读 `content`;思维链未流式呈现,长推理时前端"静默" -- **优雅停机不 drain**:滚动更新 / 重启靠 ctx 取消硬切在途任务,未等其跑完 - -### 🟡 9. 其他小项 - -| 项 | 状态 | -|----|------| -| PDF 导出 Wails 真机未验证 | 浏览器 OK,桌面端待验 | -| 代码签名(macOS 公证 / Windows) | 未做,RELEASE.md 已标注 | -| K8s Helm Chart | 未做(有 Docker Compose) | -| PROGRESS.md 更新日期 | 仍停在 6-19,部分新功能未勾选 | -| i18n 国际化 | 仅中文 | - ---- - -## 四、与主流开源项目对比 - -### 对比项目简介 - -| 项目 | Stars | 技术栈 | 定位 | -|------|-------|--------|------| -| **Dify** | ~60K+ | Python + React | LLM 应用开发平台,workflow + chatbot + agent | -| **FastGPT** | ~20K+ | Node.js (Next.js) | 知识库问答系统,workflow 编排 | -| **Langflow** | ~45K+ | Python (FastAPI) + React | DataStax 支持的可视化 AI 应用构建 | -| **Flowise** | ~35K+ | Node.js + React | 拖拽式 LLM 流程构建器 | -| **AutoGen (AG2)** | ~40K+ | Python | 微软多 Agent 对话框架 | -| **sundynix-agentix** | 个人项目 | Go + React + Python | 分层式 AI Agent 平台 | - -### 功能矩阵 - -> ⚠️ **读法**:✅/❌ 仅表示**功能是否存在**,不含成熟度、规模、生态权重。矩阵天然利好新项目 -> (可挑竞品"缺"的新特性打钩,而竞品的可靠性 / 生态 / 被验证程度无法用勾选体现)。 -> 另:**AutoGen(专门的多 Agent 框架)未纳入下表**——若纳入,"多智能体"维度它更强。部分竞品的 ❌ -> 是"内置无 / 实现方式不同",非"完全做不到"(如 Dify 有插件市场与工作流多 Agent)。 - -| 功能维度 | sundynix | Dify | FastGPT | Langflow | Flowise | -|----------|:--------:|:----:|:-------:|:--------:|:-------:| -| **编排** | | | | | | -| 可视化画布编排 | ✅ | ✅ | ✅ | ✅ | ✅ | -| 图执行引擎 | ✅ 双轨 (自研+compose) | ✅ DAG | ✅ DAG | ✅ DAG | ✅ DAG | -| 分支/条件节点 | ✅ 条件表达式求值 | ✅ | ✅ | ✅ | ✅ | -| 并行 (map/fan-out) | ✅ 有界并发 | ✅ | ❌ | ✅ | ❌ | -| **ReAct 智能体** | **✅ MCP 动态发现** | ✅ | ✅ | ✅ | ❌ | -| 多智能体接力 | ✅ 图接力 | 🟡 工作流 | ❌ | ✅ | ❌ |(注:AutoGen 为专门多 Agent 框架,强于本项目) -| 人工审批 (HITL) | **✅** | ✅ | ❌ | ❌ | ❌ | -| 循环/迭代 | ❌ | ✅ | ✅ | ✅ | ❌ | -| **知识库 / RAG** | | | | | | -| 向量检索 | ✅ Milvus | ✅ 多选 | ✅ PgVector | ✅ 多选 | ✅ 多选 | -| 全文检索 | ✅ Bleve | ✅ | ✅ | ❌ | ❌ | -| **知识图谱检索** | **✅ Neo4j GraphRAG** | ❌ | ❌ | ❌ | ❌ | -| 三路 RRF 融合 | **✅** | ❌ (双路) | ❌ (双路) | ❌ | ❌ | -| Rerank | ✅ | ✅ | ✅ | ❌ | ❌ | -| **语义切块 (标题感知)** | **✅ Markdown 章节面包屑** | ✅ 多策略 | ✅ 多策略 | ✅ | ✅ | -| Obsidian 式双链文库 | **✅ 独有** | ❌ | ❌ | ❌ | ❌ | -| 入库可视化进度 | **✅** | ❌ | ❌ | ❌ | ❌ | -| **Agent 工具** | | | | | | -| 联网搜索 | ✅ Tavily + DDG | ✅ SerpAPI | ✅ | ✅ | ✅ | -| 网页抓取 | ✅ | ✅ Jina | ❌ | ✅ | ✅ | -| 计算器 | ✅ 调度场算法 | ✅ | ❌ | ✅ | ❌ | -| SQL 查询 | **✅ 三重防护** | ❌ | ❌ | ✅ | ❌ | -| **图表工具** | **✅ JSON spec + 前端 SVG** | ❌ | ❌ | ❌ | ❌ | -| 代码解释器 | ✅ Docker 沙箱 | ✅ Docker | ❌ | ❌ | ❌ | -| **工具动态发现** | ✅ list_tools 自描述 | 🟡 插件市场(机制不同) | ❌ | 🟡 | 🟡 | -| **安全与治理** | | | | | | -| 输入护栏 | ✅ | 🟡 基础 | ❌ | ❌ | ❌ | -| 输出护栏 (流式脱敏) | **✅** | ❌ | ❌ | ❌ | ❌ | -| 熔断降级 | **✅ 三态状态机** | ❌ | ❌ | ❌ | ❌ | -| LLM 自动化评测 | **✅** | ❌ | ❌ | ❌ | ❌ | -| **API Key 加密存储** | **✅ AES-256-GCM** | ❌ 明文/环境变量 | ❌ | ❌ | ❌ | -| 代码沙箱 | ✅ Docker + AST | ✅ Docker | ❌ | ❌ | ❌ | -| SSRF 防护 | ✅ | ✅ | ❌ | ❌ | ❌ | -| SQL 注入防护 | **✅ 只读事务 + 静态校验** | N/A | N/A | N/A | N/A | -| **可观测性** | | | | | | -| **OpenTelemetry 链路追踪** | **✅ Jaeger + 跨 NATS** | ✅ | ❌ | ❌ | ❌ | -| slog + trace_id | **✅** | ❌ | ❌ | ❌ | ❌ | -| Prometheus 指标 | ✅ | ✅ | ❌ | ❌ | ❌ | -| SSE 断点续传 | **✅ Redis Stream** | ❌ | ❌ | ❌ | ❌ | -| 健康探针 | ✅ | ✅ | ❌ | ❌ | ❌ | -| **工程 / 部署** | | | | | | -| 消息总线 | **✅ NATS JetStream** | ❌ 直调 | ❌ 直调 | ❌ 直调 | ❌ 直调 | -| **桌面原生客户端** | **✅ Wails** | ❌ 纯 Web | ❌ 纯 Web | ❌ 纯 Web | ❌ 纯 Web | -| **自动更新检查** | **✅ GitHub Release** | N/A | N/A | N/A | N/A | -| CI/CD | **✅ GitHub Actions** | ✅ | ✅ | ✅ | ✅ | -| **Release 自动构建** | **✅ macOS + Windows** | N/A | N/A | N/A | N/A | -| 无 Docker 验证 | **✅ `make demo`** | ❌ | ❌ | ❌ | ❌ | -| 模型热更新 | **✅ NATS 控制面** | ❌ 需重启 | ❌ | ❌ | ❌ | -| **商业化** | | | | | | -| 计费/配额 | 🟡 计价已有 | ✅ 完整 | ✅ | ❌ | ❌ | -| 多租户/团队 | ❌ | ✅ | ✅ | 🟡 | 🟡 | -| 插件市场 | ❌ | ✅ | ✅ | ✅ | ✅ | - ---- - -### vs Dify(最接近的竞品) - -| 维度 | sundynix 优势 | Dify 优势 | -|------|--------------|-----------| -| 架构 | NATS 消息总线解耦 · OTel 全链路追踪 | 单体简单直接 | -| 编排 | 双轨引擎 + ReAct + HITL + 多 Agent 接力 | 更多节点类型 + 循环 | -| 检索 | **三路混合 + 图谱 + 标题感知切块** | 双路 + 更多策略 | -| 安全 | **7 层纵深防御 + AES 加密** | 基础安全 | -| 工具 | **SQL 查询 + 图表 + 动态发现** | 数十家内置工具 | -| 客户端 | **原生桌面端 + 自动更新** | 纯 Web | -| 模型 | 热更新 | **数十家提供商 + 本地模型** | -| 生态 | 个人项目 | **60K+ Stars + 大社区** | -| 商业化 | 计价配置 | **完整计费 + 多租户 + API** | - -### vs FastGPT - -| 维度 | sundynix 优势 | FastGPT 优势 | -|------|--------------|-------------| -| 检索 | **三路混合 + Neo4j 图谱** | 成熟向量+全文 + 多切块策略 | -| 文库 | **双链 + 力导向图** | 传统文件管理 | -| 编排 | ReAct 智能体 + HITL + 多 Agent | 更多模板 | -| 安全 | 7 层纵深 + AES | 较弱 | -| 桌面 | ✅ Wails | ❌ 纯 Web | -| 可观测 | OTel + Prometheus + slog | 基础 | -| 商业化 | 未完成 | **完整计费 + 分享 + 嵌入** | - -### vs Langflow / Flowise - -| 维度 | sundynix 优势 | 竞品优势 | -|------|--------------|----------| -| 性能 | Go 后端 · NATS 零拷贝 | — | -| 安全 | 7 层纵深 | 几乎无 | -| 可观测 | OTel + Prometheus | 基础日志 | -| 生态 | 自研节点 | **LangChain/LlamaIndex 数百种组件** | - ---- - -### 独有特色功能(竞品不具备) - -以下功能在上述对比项目中**均未见到**或**实现远不完整**: - -1. **NATS 零拷贝消息总线 + OTel 跨总线链路传播** -2. **API Key 端到端 AES-256-GCM 加密**(磁盘 + 线缆均密文) -3. **Harness 输出护栏(流式逐 token 脱敏)** -4. **Neo4j 知识图谱检索 + 三路 RRF 融合** -5. **Markdown 标题感知切块**(章节面包屑 + 不跨章节 + 跳过代码围栏) -6. **Obsidian 式双链文库**(`[[双链]]` + 反链 + 力导向图) -7. **原生桌面端 (Wails) + GitHub Release 自动更新** -8. **模型配置 NATS 热更新**(运行时切换无需重启) -9. **MCP 工具动态发现**(list_tools 自描述,新增工具零改动) -10. **SSE Token 流断点续传**(Redis Stream 可回放) -11. **SQL 查询三重防护**(静态校验 + 只读事务 + 行数/超时限制) -12. **图表工具**(工具产出 JSON spec,前端 SVG 渲染,职责分离) -13. **`make demo` 无 Docker 全链路验证** - ---- - -## 五、综合评级 +5 层 + NATS 总线: ``` - Demo/POC ──── MVP ──── ★ 工程原型→准生产 ★ ──── 准生产 ──── 生产 - ▲ - │ - 你在这里(功能丰富,运维成熟度未到) +桌面端(Wails)/运维台(Web) ──HTTP──▶ Gateway(Gin) + │ 鉴权·护栏·限流·DSL 解析·SSE 回流 + ▼ JetStream 发布 task + NATS 总线 ──(W3C traceparent 注入消息头) + ▼ 限并发消费 + Dispatcher(Eino 图编排) + │ 记忆召回→工具→注入→流式·HITL 审批·熔断·评测 + ▼ core NATS request-reply(带 trace) + mcp-go / mcp-py(MCP 工具层,队列组水平扩) ``` -> 评分按**功能完成度 / 工程品味**给;括号内点出**成熟度 / 验证度**的折扣。两者别混。 +- **任务流**:JetStream 持久化 + 持久消费者 + 限并发 worker 池(`DISPATCHER_CONCURRENCY`,背压由信号量 + `MaxAckPending` 双约束)。 +- **工具调用**:core NATS request-reply,队列组负载均衡;单实例工具已协程化并发。 +- **回流**:Token 流(Redis Stream 可回放 + 断点续传)与执行轨迹流(实时 NATS)分离。 +- **控制面**:模型配置经 NATS 热更新;启动竞态用后台重试根治。 -| 维度 | 评分 | 说明(含成熟度折扣) | +这套解耦是真的、跑得通的(本会话端到端验证过多条链路)。**机制层面**支持独立替换/水平扩; +**但水平扩仅本地小规模验证,未上真实集群。** + +--- + +## 三、做得扎实的部分(本会话实测确认) + +### 1. 编排引擎(Eino A→D 深度集成) +- 自研 `graph.go` + `compose.Graph` 双轨(灰度开关,compose 编译失败自动降级,安全网真实存在)。 +- **ReAct 自主智能体**:模型自主选工具;`list_tools` 自描述 + 动态发现——**加工具零改调度代码**(本会话加 6 个工具,dispatcher 一行没动,自主 agent 直接会用,已实测)。 +- **HITL 人工审批**:审批节点暂停→`waiting`→批准续跑/拒绝中止;超时安全默认拒绝;前端轮询持久状态兜底(不依赖易丢的实时事件)。实测批准/拒绝两条路径正常。 +- branch 条件选路 + map 有界并发 + aggregate 汇聚 + 多 agent 图接力。 + +### 2. 安全治理(覆盖面广;自实现、未审计) +- 输入护栏(注入正则 + 体积限制)、**输出护栏(流式逐片脱敏 sk-/AKIA/JWT)**、三态熔断(`-race` 过)、LLM 评测(异步离热路径)。 +- 代码沙箱(Docker 隔离 + AST 守卫 + 禁网/非 root/丢能力/只读根/限资源/超时 kill)。 +- **API Key 端到端 AES-256-GCM**:磁盘 + NATS 线缆均密文,仅用时内存解密;历史明文平滑迁移(实测密文落库 + 解密打通 DeepSeek)。 +- SSRF 防护(external_api/web_fetch)、SQL 只读三重防护、JWT(生产 fail-fast)。 +- ⚠️ 价值定性:**覆盖广 ≠ 已验证安全**。无外部审计/渗透;"最强"无依据。 + +### 3. 知识库 / RAG +- Milvus 向量 + Bleve 全文 + Neo4j 图谱 → RRF 融合 → 可选 rerank。 +- **Markdown 标题感知切块**(块带章节面包屑、不跨章节、跳过代码围栏,rune 安全)——实测入库面包屑正确、检索带章节上下文返回。 +- Obsidian 式双链文库 + 入库可视化进度。 + +### 4. Agent 工具集(22 个 Go 注册,10 个 agent 可见 + mcp-py 5 个) +- 知识库/记忆/历史/报告/external_api +(本会话新增并实测)**web_search**(Tavily/DDG 兜底)、**web_fetch**、**calculator**(调度场算法)、**current_datetime**、**sql_query**(三重防护)、**chart**(产 JSON spec,前端 SVG 渲染,职责分离)。 + +### 5. 可观测性 +- **OTel 全链路**:跨 NATS 传 traceparent,Jaeger 一棵 span 树(实测 14 span/3 服务)。 +- **slog 带 trace_id**(日志↔链路互跳,实测同一 trace_id 命中);Prometheus;健康探针;SSE 断点续传。 + +### 6. 性能/并发(本会话补齐 + 实测) +- 任务并发消费 + 工具协程化并发(垂直)× 队列组多副本(水平)。实测:一个 HITL 待审任务不阻塞其他任务;平台自身开销可忽略,瓶颈在外部 LLM。 + +### 7. 工程化 / CI/CD +- `make demo` 无 Docker 内嵌 NATS 跑全链路;docker-compose 零配置;模型热更新;DB 连接池上限;启动竞态修复。 +- GitHub Actions CI(4 Go 模块 + 前端 tsc + mcp-py)+ Release(tag→macOS/Windows 桌面端构建)+ 桌面端更新检查。 + +--- + +## 四、原型级 / 未验证(别当生产能力看) + +- **规模未真实验证**:并发是近期才补的,仅本地小规模测过;无长稳、无容量上限实测曲线。 +- **compose 引擎仍灰度**(默认走自研 graph.go);compose 路径下 HITL 审批未实现。 +- **OCR 多模态是骨架**:`parse_document` 真支持 txt/md/csv/docx/xlsx/文本 PDF,但 MinerU/PaddleOCR 扫描件路径是 TODO 空实现(`mineru.py` 极小)。 +- **推理模型未适配**:主力 deepseek-v4-pro(及生产 Qwen thinking)答案在 `reasoning_content`,平台只读 `content`;思维链未流式呈现。 +- **测试偏单元**:多为小函数单测;核心链路(图执行、RAG 管线)集成/e2e 稀疏;无前端 E2E。 + +--- + +## 五、缺失 / 生产硬门槛(最该正视) + +| 缺口 | 现状 | 影响 | +|------|------|------| +| **高可用 / 单点** | 网关·调度·NATS 均单实例 | 任一挂即中断;无故障转移/自愈 | +| **备份 / 灾备** | PG/Milvus/Neo4j 无备份恢复方案 | 数据丢失风险 | +| **安全审计** | 全自述,未渗透/未审计 | "纵深防御"未被验证 | +| **配额 / 多租户** | 仅按 IP 全局限流;owner 基础隔离 | 无团队/组织/按用户配额 | +| **可靠性细节** | exec 轨迹流丢事件;停机不 drain | 观测缺口 + 滚更硬切在途任务 | +| **计量计费** | 计价配置有,计量×单价+配额未落地 | 商业化未闭环 | +| **本地模型** | 仅 OpenAI 兼容在线 API | vLLM/Ollama、模型路由/fallback 未做 | + +--- + +## 六、对标主流开源项目(口径:功能存在性,非成熟度) + +> **重要**:下表 ✅/❌ 仅表示"功能是否内置存在",**不含成熟度、规模、生态、可靠性权重**。 +> 此类矩阵天然利好新项目(可挑竞品没内置的新特性,而竞品的护城河——生态/被验证程度/可靠性—— +> 无法用勾选体现)。Dify/Langflow 等的真实优势在这些"勾不出来"的地方。 + +| 维度 | sundynix | 说明(去掉滤镜) | +|------|:--------:|------| +| 可视化编排 / DAG | ✅ 双轨 | 与主流持平;缺循环/迭代节点 | +| ReAct + 工具动态发现 | ✅ | `list_tools` 自描述是亮点;Dify 用插件市场(机制不同,非"做不到") | +| 人工审批 HITL | ✅ | 有;Dify 也有,FastGPT/Flowise 无 | +| 多智能体 | ✅ 图接力 | **AutoGen 等专门框架更强**,别自比第一 | +| 三路混合检索 + 图谱 | ✅ Neo4j | 较少见的内置组合,是真亮点 | +| 标题感知切块 | ✅ | 主流也有多策略切块,非独有 | +| 输出流式脱敏 / AES 加密 / OTel 跨总线 | ✅ | 内置且齐全,属较稀有组合(成熟度另说) | +| 原生桌面端 (Wails) + 自动更新 | ✅ 独有 | 竞品多纯 Web | +| 生态 / 社区 / 被生产验证 | ❌ | **竞品真正的护城河,本项目空白** | +| 商业化(计费/多租户/插件市场) | 🟡/❌ | 未闭环 | + +**结论**:在"内置功能的齐全度"上,本项目确实能和数万 star 项目掰手腕,部分组合更超前; +但**"超越"它们是不成立的**——它们赢在被千万次真实使用打磨出的可靠性、生态与运维成熟度, +这正是单人项目无法靠堆功能追平的。 + +--- + +## 七、评级(功能完成度 vs 成熟度分列) + +| 维度 | 评分 | 说明(已含成熟度折扣) | |------|:----:|------| -| 架构设计 | ⭐⭐⭐⭐ | 5 层 + NATS + OTel,设计品味好;但单点无 HA、规模未验证 | -| 编排引擎 | ⭐⭐⭐⭐½ | 双轨 + ReAct + HITL + 多 Agent,完成度高;循环/迭代缺、compose 仍灰度 | -| 安全治理 | ⭐⭐⭐⭐ | 纵深覆盖面广;**未经审计/渗透**,"最强"无依据 | -| 知识库 / RAG | ⭐⭐⭐⭐ | 三路检索 + 标题切块 + 图谱 + 双链;OCR 仍骨架 | -| Agent 工具集 | ⭐⭐⭐⭐½ | 12 工具 + 动态发现 + SQL/图表,确实丰富 | -| 可观测性 | ⭐⭐⭐⭐ | OTel + Prometheus + slog trace;轨迹流会丢事件 | +| 架构设计 | ⭐⭐⭐⭐ | 解耦清晰、品味好;单点无 HA、规模未验证 | +| 编排引擎 | ⭐⭐⭐⭐½ | 双轨+ReAct+HITL+多 Agent,完成度高;缺循环、compose 仍灰度 | +| 安全治理 | ⭐⭐⭐⭐ | 覆盖面广;未审计/未渗透 | +| 知识库 RAG | ⭐⭐⭐⭐ | 三路+图谱+标题切块;OCR 骨架 | +| Agent 工具集 | ⭐⭐⭐⭐½ | 丰富 + 动态发现 + SQL/图表 | +| 可观测性 | ⭐⭐⭐⭐ | OTel+Prometheus+slog;轨迹流会丢事件 | +| 性能 / 并发 | ⭐⭐⭐½ | 双扩机制具备;规模未实测 | | 代码质量 | ⭐⭐⭐⭐ | 注释充足、降级完善;KbView 大文件需拆 | -| 测试覆盖 | ⭐⭐⭐ | 单测面广但多为小函数;核心链路集成/e2e 稀疏 | -| CI/CD | ⭐⭐⭐⭐ | CI + Release 自动构建 + 更新检查;未做签名/公证 | -| 工程化 | ⭐⭐⭐⭐ | Makefile + Compose + 零配置 + 热更新;无 K8s/HA | -| 运维成熟度 | ⭐⭐ | 单点、无备份/灾备、规模未验证、无配额 | -| 生态 / 社区 | ⭐⭐ | 个人项目 | -| 商业化就绪 | ⭐⭐½ | 计价已有,计量 / 配额 / 多租户待做 | +| 测试覆盖 | ⭐⭐⭐ | 单测面广但多为小函数;集成/e2e 稀疏 | +| CI/CD | ⭐⭐⭐⭐ | CI+Release+更新检查;无签名公证 | +| 运维成熟度 | ⭐⭐ | 单点、无备份灾备、无配额、规模未验证 | +| 生态 / 商业化 | ⭐⭐ | 个人项目;计费未闭环 | -### **综合:3.6 / 5.0**(单人项目而言相当能打) - -> ~19,500 行、5 层架构 + OTel + NATS、Eino 四阶段(ReAct + compose + HITL + 多 Agent)、 -> 12 工具动态发现、纵深安全 + AES 加密、三路检索 + 标题切块、桌面端 + CI/CD…… -> **功能密度与架构品味在单人项目里非常突出,值得肯定。** -> -> 但要务实:**"超越数万 star 主流项目"是营销话术,不是工程现实。** 那些项目的护城河在 -> 生态、可靠性、被大规模真实使用与长期打磨——这些恰是本项目尚未触及的。本项目的真实定位是 -> **一个功能极其完整、架构品味很好的单人准生产原型**;离生产的差距不只在"生态和商业化", -> 还在**高可用、规模验证、可靠性、安全审计、运维体系**。 +### 综合:**3.7 / 5.0** —— 单人项目里属于「相当能打」,离生产仍有实打实的距离。 --- -## 六、改进建议优先级 +## 八、改进优先级 -| 优先级 | 项目 | 预估工作量 | -|:------:|------|:---------:| -| P0 | **dev → main:推送合并 14 个未推送提交**(当前 main 落后一大截) | 即时 | -| P0 | **真实负载/长稳压测**,给出容量上限曲线("生产级并发"需数据背书) | 1-2 天 | -| P0 | 本地模型支持 (vLLM/Ollama) + 推理模型 reasoning_content 适配 | 2-3 天 | -| P1 | **高可用**:网关/调度多副本 + NATS 集群 + 健康自愈 | 3-5 天 | -| P1 | **备份/灾备**:PG/Milvus/Neo4j 备份与恢复演练 | 2 天 | -| P1 | exec 轨迹流 Redis 回放(根治丢事件)+ 优雅停机 drain | 1-2 天 | -| P1 | 前端 E2E (Playwright) + 核心链路集成测试 | 2-3 天 | -| P1 | 文档解析完善 (MinerU / Unstructured) | 2-3 天 | -| P2 | 计量计费落地 + 按用户配额/限流 | 2-3 天 | -| P2 | KbView.tsx 拆分;循环/迭代节点;代码签名 | 各 1-2 天 | -| P2 | **安全审计 / 渗透测试**(让"纵深防御"从自述变已验证) | 外部 | -| P3 | 多租户 / 团队协作;插件体系;K8s Helm Chart | 3-5 天/项 | +| 优先级 | 项目 | 说明 | +|:------:|------|------| +| P0 | 真实负载 + 长稳压测,给容量曲线 | "生产级并发"需数据背书 | +| P0 | 本地模型(vLLM/Ollama) + 推理模型 reasoning_content 适配 | 对齐生产 Qwen | +| P1 | 高可用:网关/调度多副本 + NATS 集群 + 自愈 | 解单点 | +| P1 | 备份/灾备演练(PG/Milvus/Neo4j) | 数据安全 | +| P1 | exec 轨迹 Redis 回放 + 优雅停机 drain | 可靠性 | +| P1 | 核心链路集成测试 + 前端 E2E | 测试纵深 | +| P2 | 计量计费闭环 + 按用户配额;OCR 完善;KbView 拆分;循环节点 | | +| P2 | 安全审计 / 渗透(让"纵深防御"从自述变已验证) | 外部 | +| P3 | 多租户/团队;插件体系;K8s Helm;代码签名 | | --- -*本文档基于本地 dev 工作树源码分析(2026-06-24);由 Opus 4.8 订正:修正 main/dev 范围、 -去除"超越数万 star""安全最强"等过誉表述、补齐高可用/规模验证/灾备/审计等运维成熟度短板、 -重校评分(4.5 → 3.6)。功能盘点可信,自评分按成熟度折扣阅读。* +*本报告由 Opus 4.8 基于全程搭建经验 + 本次实测撰写;刻意压低自评水分。功能盘点可信, +评分按成熟度折扣阅读。如与旧版(自动分析)冲突,以本版为准。*