Eino_ADK与A2A实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 如何构建
MultiAgent
Eino ADK与A2A实践
演讲人:王德政
SPEAKER: WangDeZheng
2. Eino
Eino[‘aino] 是一个 Golang 语言的开源 AI 应用开发框架。 它从开源社区中的诸多优秀 LLM 应用开发框架,如 LangChain、LangGraph
和 LlamaIndex 等获取灵感,提供了一个强调简洁性、可扩展性、可靠性与有效性,且更符合 Go 语言编程惯例的 AI 应用开发框架。
目前 Eino 在 Github 上已经收获 7.3k Star,并在公司内部500+服务、目前已知十余家外部企业落地。
3. Eino
提供了一系列 组件(component) 抽象与实现,可轻松复用与组合,用于构建 LLM 应用。
4. Eino
提供了 Graph 编排能力,将各种各样的组件串联起来。
5. 目录 |Contents
Part 01
Eino ADK 介绍
•为什么需要ADK
•什么是ADK
•Agent 抽象
•多 Agent 协作
•开箱即用的 Agents
Part 02
A2A 介绍
•什么是A2A
•在Eino中使用A2A
Part 03
示例
6. 01
Eino ADK介绍
7. 为什么需要 ADK
Eino Graph 提供了基于组件的编排能力:
过高灵活性使易用性下降:
•类型转换、节点依赖关系、状态管理复杂
•缺乏对Agent原生结构(如记忆)的直接支持
8. 什么是 ADK
Eino ADK(Agent Development Kit)参考了Google ADK,提供了Agent 级别的抽象、多 Agent 构建能力以及上下文传递、中断与恢
复等功能,同时复用了Eino的组件生态,让开发者更简单、直观地构建 Go Agent 应用。
9. Agent 抽象
Eino ADK 的核心是 Agent 抽象(Agent Interface),ADK 的所有功能设计均围绕 Agent 抽象展开。
•Name 与 Description 定义了 Agent 的身份与能力,为多 Agent 之间的自动化协作提供了支持
•Run 方法定义了与 Agent 交互的统一方式,AgentInput 包含 Agent 的输入,AsyncIterator 能够实时返回 Agent 中产生
AgentEvent,AgentEvent 中包含了 Agent 输出、指令、报错等信息
10. 多 Agent 协作
Workflow
ADK 提供了以固定顺序运行多个 Agent 的能力:
•
Sequential:以固定顺序执行多个 Agent
11. 多 Agent 协作
Workflow
ADK 提供了以固定顺序运行多个 Agent 的能力:
•
Parallel:并行执行多个 Agent
12. 多 Agent 协作
Workflow
ADK 提供了以固定顺序运行多个 Agent 的能力:
•
Loop:循环执行多个 Agent
13. 多 Agent 协作
Transfer
Agent 产生包含 Transfer 指令的 Event 后,ADK 框架会调用目标 Agent,利用这个机制可以在运行时动态决定 Agent 路由:
14. 多 Agent 协作
上下文传递
ADK 中每个 Agent 产生的 AgentEvent 都会保存在 Session 中,一个新的 Agent 运行时,这些 Event 会转化成这个 Agent 的输入,
ADK 提供了默认的转换方式:
15. 开箱即用的 Agents
ChatModelAgent(ReactAgent)
16. 开箱即用的 Agents
PlanAndExecute
17. 开箱即用的 Agents
PlanAndExecute
18. 开箱即用的 Agents
PlanAndExecute
19. 开箱即用的 Agents
Supervisor
20. 开箱即用的 Agents
Supervisor
21. 02
A2A 介绍
22. 什么是 A2A
A2A(AgentToAgent)协议是 Google 提出一种开放标准,旨在实现 AI Agent 之间的无缝通信与
协作。
23. A2A 在 Eino 中的应用
Eino ADK 提供了双向封装能力:既能将 Agent 发布为 A2A 服务,也能将 A2A 服务转换为本地 Agent,让开发者无需
关心底层协议。
24. 03
示例
25. TravelResearchAgent
场景说明
开发一个旅游规划 Agent,结合天气、机酒、目的地吸引力等角度生成一份旅游计划。
Agent 结构设计
背景信息调研产生的上下文较大,且不同项目调研之间上下文不应共享,所以才用PlanAndExecute的方式实现此Agent:
1. Planner:生成制定旅游计划的步骤
2. Executor:使用多种工具(天气查询、航班酒店搜索、目的地吸引力)执行计划
3. Replanner:评估执行结果,若信息不足则调整计划,否则生成最终总结
26. TravelResearchAgent
创建PlanAndExecute Agent之前,需要先创建合适的Planner、Executor和Replanner:
代码地址
27. TravelResearchAgent
这里直接使用默认实现创建 Planner 和 RePlanAgent,只需配置ChatModel:
28. TravelResearchAgent
Executor 需要自定义 Prompt 来优化工具调用效果:
29. TravelResearchAgent
通过 GenInput 配置自定义 Prompt 并渲染:
30. TravelResearchAgent
Trace
31. TravelResearchAgent
利用 Eino 提供的封装,将创建好的 TravelReasearchAgent 以 A2AServer 的形式提供服务:
32. TravelResearchAgent
也可以将 A2AClient 封装成 Agent 供 TravelResearchAgent 使用:
33. THANKS