Eino ADK: Quickstart
Installation
Eino 自 0.5.0 版本正式提供 ADK 功能供用户使用,您可以在项目中输入下面命令来升级 Eino:
// stable >= eino@v0.5.0
go get github.com/cloudwego/eino@latest
Agent
什么是 Eino ADK
Eino ADK 参考 Google-ADK 的设计,提供了 Go 语言 的 Agents 开发的灵活组合框架,即 Agent、Multi-Agent 开发框架,并为多 Agent 交互场景沉淀了通用的上下文传递、事件流分发和转换、任务控制权转让、中断与恢复、通用切面等能力。
什么是 Agent
Agent 是 Eino ADK 的核心,它代表一个独立的、可执行的智能任务单元。你可以把它想象成一个能够理解指令、执行任务并给出回应的“智能体”。每个 Agent 都有明确的名称和描述,使其可以被其他 Agent 发现和调用。
任何需要与大语言模型(LLM)交互的场景都可以抽象为一个 Agent。例如:
- 一个用于查询天气信息的 Agent。
- 一个用于预定会议的 Agent。
- 一个能够回答特定领域知识的 Agent。
Eino ADK 中的 Agent
Eino ADK 中的所有功能设计均围绕 Agent 抽象设计展开:
type Agent interface {
Name(ctx context.Context) string
Description(ctx context.Context) string
Run(ctx context.Context, input *AgentInput) *AsyncIterator[*AgentEvent]
}
基于 Agent 抽象,ADK 提供了三大类基础拓展:
ChatModel Agent
: 应用程序的“思考”部分,利用 LLM 作为核心,理解自然语言,进行推理、规划、生成响应,并动态决定如何执行或使用哪些工具。Workflow Agents
:应用程序的协调管理部分,基于预定义的逻辑,按照自身类型(顺序 / 并发 / 循环)控制子 Agent 执行流程。Workflow Agents 产生确定性的,可预测的执行模式,不同于 ChatModel Agent 生成的动态随机的决策。- 顺序 (Sequential Agent):按顺序依次执行子 Agents
- 循环 (Loop Agent):重复执行子 Agents,直至满足特定的终止条件
- 并行 (Parallel Agent):并行执行多个子 Agents
Custom Agent
:通过接口实现自己的 Agent,允许定义高度定制的复杂 Agent
基于基础扩展,您可以针对自己的需求排列组合这些基础 Agents,构建所需要的 Multi-Agent 系统。另外,Eino 从日常实践经验出发,内置提供了几种开箱即用的 Multi-Agent 最佳范式:
- Supervisor: 监督者模式,监督者 Agent 控制所有通信流程和任务委托,并根据当前上下文和任务需求决定调用哪个 Agent。
- Plan-Execute:计划-执行模式,Plan Agent 生成含多个步骤的计划,Execute Agent 根据用户 query 和计划来完成任务。Execute 后会再次调用 Plan,决定完成任务 / 重新进行规划。
下方表格和图提供了这些基础拓展与封装的特点,区别,与关系。后续章节中将展开介绍每种类型的原理与细节:
类别 | ChatModel Agent | Workflow Agents | Custom Logic | EinoBuiltInAgent(supervisor, plan-execute) |
功能 | 思考,生成,工具调用 | 控制 Agent 之间的执行流程 | 运行自定义逻辑 | 开箱即用的 Multi-agent 模式封装 |
核心 | LLM | 预确定的执行流程(顺序,并发,循环) | 自定义代码 | 基于 Eino 实践积累的经验,对前三者的高度封装 |
用途 | 生成,动态决策 | 结构化处理,编排 | 定制需求 | 特定场景内的开箱即用 |
ADK Examples
Eino-examples 项目中提供了多种 ADK 的实施样例,您可以参考样例代码与简介,对 adk 能力构建初步的认知:
项目路径 | 简介 | 结构图 |
顺序工作流案例 | 该示例代码展示了基于 eino adk 的 Workflow 模式构建的一个顺序执行的多智能体工作流。 | ![]() |
循环工作流案例 | 该示例代码基于 eino adk 的 Workflow 模式中的 LoopAgent,构建了一个反思迭代型智能体框架。 | ![]() |
并行工作流案例 | 该示例代码基于 eino adk 的 Workflow 模式中的 ParallelAgent,构建了一个并发信息搜集框架: | ![]() |
supervisor | 该用例采用单层 Supervisor 管理两个功能较为综合的子 Agent:Research Agent 负责检索任务,Math Agent 负责多种数学运算(加、乘、除),但所有数学运算均由同一个 Math Agent 内部统一处理,而非拆分为多个子 Agent。此设计简化了代理层级,适合任务较为集中且不需要过度拆解的场景,便于快速部署和维护。 | ![]() |
layered-supervisor | 该用例实现了多层级智能体监督体系,顶层 Supervisor 管理 Research Agent 和 Math Agent,Math Agent 又进一步细分为 Subtract、Multiply、Divide 三个子 Agent。顶层 Supervisor 负责将研究任务和数学任务分配给下级 Agent,Math Agent 作为中层监督者再将具体数学运算任务分派给其子 Agent。 | ![]() |
plan-execute 案例 | 本示例基于 eino adk 实现 plan-execute-replan 模式的多 Agent 旅行规划系统,核心功能是处理用户复杂旅行请求(如 “3 天北京游,需从纽约出发的航班、酒店推荐、必去景点”),通过 “计划 - 执行 - 重新计划” 循环完成任务: 从结构上看,plan-execute-replan 分为两层: | ![]() |
书籍推荐 agent(运行中断与恢复) | 该代码展示了基于 eino adk 框架构建的一个书籍推荐聊天智能体实现,体现了 Agent 运行中断与恢复功能。 | ![]() |
What’s Next
经过 Quickstart 概览,您应该对 Eino ADK 与 Agent 有了基础的认知。
接下来的文章将深入介绍 ADK 的核心概念,助您理解 Eino ADK 的工作原理并更好的使用它:
最后修改
October 1, 2025
: docs: add description of breaking changes of kitex v0.15.1 (#1430) (dddc165)