Eino + DeepFlux 实战全景复盘:100 篇,从 5 分钟 Demo 到企业级平台(第100篇-E86)
这是第 100 篇收官篇。不拆新源码——反过来把 99 篇走过的路和 DeepFlux 这个真实仓库放在一起盘一遍。一100 篇走了哪几步回头看系列其实是一条从外向内、再向外的路线第一季01-14从平台往下看。先拆 DeepFlux 这个企业级平台——DDD 四层、Session 状态机、ReAct 主循环、HITL、SSE 推流、Hook 护栏、多 LLM、RAG、记忆、RLS 多租户、审计、可观测。当时的问题是企业级 Agent 平台长什么样答案是 14 篇。补充篇前半E1-E30钻进引擎。平台跑在 Eino 上那就把 Eino 拆开——Graph/Chain/Workflow 三种编排、Pipe 流式管道、七个组件接口ChatModel/Tool/Retriever/Embedder/Document/Indexer/Prompt、五个适配器怎么桥接。这段是最源码的compose.Graph怎么编译、Pregel 怎么调度、StreamReader 怎么背压一路读到仓库内部。补充篇后半E31-E99回到初学者。意识到系列对新手不友好从 E315 分钟跑通第一个 Agent重开一条上手线按能跑→会说话→会思考→会做事→有知识→记得你→不乱跑→多 Agent→上线的顺序重走一遍。B 场景的主题分布就是这个结构的投影入门/实战 19 篇 源码 24 篇两条线基本对半。二Eino 的知识地图99 篇收拢成六块如果只允许留下六句话编排三件套Chain 线性、Graph 通用 DAG、Workflow 字段映射。选择标准不是哪个强是控制流和数据流谁复杂——E52 给过决策表。一切皆流从Pipe[T]channel 背压到 StreamReader 到 SSEtoken 是一个个蹦出来的中间每一跳都可能丢、可能堵、可能要转换。E6/E7/E45 三篇其实讲的是同一件事的三个深度。组件即接口七个组件接口全部是接口 多实现 Option 传参的范式。会看一个就会看全部适配器写法在 E29 收拢成五个样板。中断是常态HITL 八模式E85、Checkpoint 七状态E80、per-tool 中断——生产 Agent 的一半复杂度在停下来等人不在跑得快。RAG 的魔鬼在切片和评测E68 切片策略、E70 别信榜单测自己的、E74 多查询 vs 重排的分工、E76 端到端六步链路。检索效果差九成不是模型问题。上下文是稀缺资源记忆四元组E78、衰减淘汰E79、长对话摘要E82、工具结果裁剪E83——全部在回答窗口不够时先扔什么。三DeepFlux 怎么用 Eino三平面demo 的 C 场景验证了 DeepFlux 的骨架对应三条平面的拍板平面落点职责控制orchestrationBCWorkflow 编排步骤、审批点、断点续跑V5 per-tool checkpoint智能agentBCAgent 语义会话、记忆召回、工具策略、方案包执行Einogo.mod 依赖图编译、节点调度、流式管道、组件生态两个 BC 都是标准 DDD 四层application/domain/infrastructure/interfacesC2 验证。Eino 被压在 infrastructure 附近做执行引擎不向上渗透——这是系列反复出现的边界原则框架管跑业务管意义。30 个 internal 目录里核心 BCagent/orchestration/kb/memory/tool/hook/audit/tenant/auth/llm/mcp构成平台的骨架其余是支撑storage/embedding/observability和外围billing/branding/sop。四框架边界Eino 给了什么DeepFlux 自己建了什么收官最适合回答的问题。对照表能力Eino 提供DeepFlux 自建为什么自建图编排/调度✅ Graph/Chain/Workflow—引擎能力直接用流式管道✅ Pipe/StreamReaderSSE 会话层HertzStreamer业务要 critical 帧语义、断线恢复ChatModel 适配✅ 多 Providerprofiles.yaml Quirks 修复链配置驱动 模型脾气数据化记忆❌ 无官方组件四元组 scope DecayScore Profile作用域语义是业务决策多租户❌ 不在框架范围Postgres RLS SET LOCAL 双防线隔离是合规要求不是功能工具安全中间件钩子五层防线白名单→HITL→护栏→nonce→审计纵深防御单层都会被绕过HITL✅ Interrupt/Resume Checkpoint审批中心、超时兜底 CronJob面向人的流程完整闭环可观测✅ Callback 切面OTel 三信号 Langfuse 双链路企业要的是 trace_id 串日志和成本账单规律很清楚Eino 给的都是引擎级能力跑、流、调、断DeepFlux 建的都是企业级能力租户、审计、防线、成本。框架选型时真正该问的不是它功能全不全而是它的边界划在哪里、边界外的东西我建起来顺不顺手。Eino 的 Callback/中间件留了足够的切面这是自建部分能立起来的原因。五诚实复盘被推翻和会变的Qdrant → pgvector。README 顶部的注就是坦白E09/E11 写于迁移前Qdrant 内容是当时实现。少一个独立存储组件运维面小一半——但代价是 HNSW 2000 维上限这类约束E72。FlowAgent / Supervisor 被标 NOT RECOMMENDED。E92/E93 拆源码时反复遇到Agent 间 Transfer 全量共享上下文实践中效果不如预期官方建议改用 AgentToolAgent 就是 ToolE91 的 Host-Worker 模式。看源码注释里的不推荐比看功能列表更接近真相。迁移数在长。143 → 145两周 2。任何当前状态的数字都是快照复盘的价值在趋势和结构序号连续、embed.FS 单一事实源不在冻结的数值。CozeLoop 自建被否、Langfuse 双链路。生产可观测走过弯路先自建内存开销否决最终 Langfuse JP 区 已有 OTel 并行——E88/E89 拆的就是最终形态弯路只在篇尾提了一句。六写作方法复盘demo-first99 篇每篇都有一个/tmp/eNNdemo纯标准库 Go、不连网、自检 panic。这个约束逼出了三件事没跑过的结论写不出来。demo 崩了就是理解错了——E87 复刻 Callback 时自检抓出 3 处断言错误E99 假客户端漏抄 nil 守卫当场空指针。复刻失败的地方恰恰是源码里最值得讲的细节。小白友好不是少讲是讲能跑的。入门线每篇的最小示例都是复制粘贴能跑的复杂度靠 demo 场景数递增不靠文字堆砌。每篇结尾git 没动。一个锚点系列只读不写两个仓库eino/eino-ext/deepflux在写作期间零改动——所有实测都是只读探测这话说得出口是因为它可验证。小结100 篇一句话收拢企业级 Agent 引擎Eino× 工程化DDD/RLS/审计/防线× 运维迁移/可观测/交付缺一条腿都站不稳。系列到这里收官。两个仓库还在长迁移 2 只是开始如果哪天 Eino 出了 ADK 正式版的多 Agent 方案、或者 DeepFlux 的 orchestration 上了新玩法再来写续篇也不迟——老规矩先跑 demo 再说话。