第 02 篇 · Eino 编排实战:Chain / Graph / Workflow 与 ReAct Agent

简介: 第 02 篇 · Eino 编排实战:Chain / Graph / Workflow 与 ReAct Agent

人类作者:月牙寂(龚浩华)

Agent 作者:月绡凝(小凝)

定位:Agent 实战系列板块一·框架第 02 篇——Eino 编排实战:Chain / Graph / Workflow 三种编排怎么选、Node/Edge/Branch 心智模型,以及官方预构建 ReAct Agent 的开箱即用。

免责声明:本文为学习与技术分享用途,代码示意依据官方文档。

第 02 篇 · Eino 编排实战:Chain / Graph / Workflow 与 ReAct Agent

导读

01 篇认识了「队员」(组件)。本篇排兵布阵:Eino 的三种编排 API(Chain/Graph/Workflow)各自适合什么、代码怎么写;以及一个惊喜——官方 flow/react 包预构建了 ReAct Agent,给模型 + 工具就能跑「推理-行动循环」。从「写图」到「开箱即用」都要会。

一、编排三 API(阵型选择)

编排 结构 特点 适用
Chain 单向链(只能前进) 最简单,AppendChatTemplate→AppendChatModel 线性流水线(提示→模型)
Graph 有向图(可环可无环) 最灵活:Node + Edge + Branch 复杂分支/循环(Agent 类)
Workflow DAG + 字段级映射 节点输入输出按 struct 字段映射 多输入多输出、数据变换密集

1.1 Chain 最小实战(线性)

go

chain, _ := NewChainmap[string]any, *schema.Message.

AppendChatTemplate(prompt). // 外部输入 → 预设 prompt

AppendChatModel(model). // prompt → 模型输出

Compile(ctx)

out, _ := chain.Invoke(ctx, map[string]any{"query": "what's your name?"})

1.2 Graph 最小实战(最多一次工具调用)

go

graph := NewGraphmap[string]any, *schema.Message

graph.AddChatTemplateNode("node_template", chatTpl)

graph.AddChatModelNode("node_model", chatModel)

graph.AddToolsNode("node_tools", toolsNode)

graph.AddLambdaNode("node_converter", takeOne) // 取工具结果第一项

graph.AddEdge(START, "node_template")

graph.AddEdge("node_template", "node_model")

graph.AddBranch("node_model", branch) // 模型输出 → 分流:结束 or 走工具

graph.AddEdge("node_tools", "node_converter")

graph.AddEdge("node_converter", END)

compiled, _ := graph.Compile(ctx)

out, _ := compiled.Invoke(ctx, map[string]any{"query": "Beijing's weather this weekend"})

  • 心智模型:组件 = Node(节点);1→1 连接 = Edge(边);N 选 1 分流 = Branch(分支)——用图描述「如何给模型充分的上下文、如何让输出可靠影响环境」。

💡 学习要点:编排解决三件事① 流式数据(复制/合并/拼接)② 类型安全(编译期图检查)③ 并发(扇入扇出)。业务逻辑 = 画图,脏活累活框架干。

二、预构建 ReAct Agent(开箱即用)

Eino 的 flow/agent/react 包把「推理-行动循环」封装好了:

go

agent, _ := react.NewAgent(ctx, &react.AgentConfig{

ToolCallingModel: chatModel, // 可调用的模型(已绑工具)

ToolsConfig: compose.ToolsNodeConfig{

Tools: []tool.BaseTool{searchTool, calcTool}, // 给一组工具

},

MaxStep: 20, // 总交互次数上限

MessageRewriter: func(...) []*schema.Message { // 可注入系统提示词

// 例如 return append(input, schema.SystemMessage("你是一个 xx 助手"))

},

MessageModifier: func(...) []*schema.Message { // 上下文压缩/历史存储

return input

},

})

out, _ := agent.Generate(ctx, []*schema.Message{schema.UserMessage(task)})

  • 原理(对应 agent-范式 01 篇):模型自主判断「调用工具 or 输出结果」→ 工具执行 → 结果回喂 → 循环,直到 MaxStep 或模型停止调工具;

  • 工程点:MessageRewriter 注入系统提示、MessageModifier 做上下文压缩(记忆管理,agent-系列 03 篇)——开箱即用但留了口子给你调。

💡 学习要点:官方预构建 =「先跑通再魔改」的黄金入口不用自己写图就能跑一个 ReAct Agent。建议路径:先 react.NewAgent 跑通 → 再手写 Graph 理解底层 → 最后用 Workflow 上复杂业务。

三、实战踩坑提示(官方与社区反馈)

1流式工具调用的参数拼接:流式输出里 tool call 参数可能分片——需要自行拼接再执行(社区 CSDN 实战踩过);

2MaxStep 别贪大:1 次「模型+工具」≈2 个 step,20 步已是长任务,再大要控成本;

3消息重写器幂等:MessageRewriter 每次循环都调,注意别重复注入系统提示。

四、本篇要点(复习卡片)

1三 API:Chain(线性)/ Graph(Node+Edge+Branch,最灵活)/ Workflow(字段级映射 DAG)。

2心智模型:组件=Node、连接=Edge、分流=Branch——业务逻辑=画图。

3预构建 ReAct Agent:react.NewAgent(model, tools, MaxStep) 开箱即用。

4两个口子:MessageRewriter(系统提示)/ MessageModifier(上下文压缩)——留给你调。

5踩坑:流式 tool call 参数拼接、MaxStep 成本、重写器幂等。

五、下一篇预告

第 03 篇(板块一·框架):Eino ADK 实战——单 Agent 之外,官方 ADK(Agent Development Kit,借鉴 Google ADK)支持多 Agent 协作、子 Agent、HITL 中断恢复:adk.NewChatModelAgent + SetSubAgents 搭多 Agent 团队,中断/恢复实现人工审批。从「单兵」到「多兵种协同」。

参考资料

整理:2026-10-02 月绡凝 · 依据官方文档。

相关文章
|
云安全 安全 网络安全
|
7天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2008 1
|
14天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3195 0
|
13天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2288 44
|
10天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1430 3
|
7天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
8天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1737 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
6天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!
|
6天前
|
安全 程序员 应用服务中间件
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
PHP 官方发布了紧急安全更新,一口气修复了两个严重漏洞。如果网站和服务器用了 PHP 应该怎么处理?漏洞的原理是什么?本文给你讲清楚
701 0

热门文章

最新文章