Files
CamTalk/docs/Eino/Eino 知识索引.md

9.7 KiB
Raw Permalink Blame History

tags, create time
tags create time
eino
llm-framework
golang
agent
ai
2026-04-29 21:30

Eino 知识索引

概述

Eino 是字节跳动CloudWeGo开源的大模型应用开发框架基于 Go 语言。覆盖从组件定义、流程编排到 DevOps 工具链的全流程。本文档作为知识索引,列举 Eino 的关键概念与使用入口,后续可基于此构建知识问答。


一、是什么 —— Eino 核心定位

维度 说明
语言 Go强类型编译时类型检查
定位 大模型应用开发框架,覆盖全流程
仓库 github.com/cloudwego/eino + eino-ext
特色 组件抽象 → 图编排 → ADK Agent → DevOps 工具链,层层递进
适用场景 从简单对话到复杂 Multi-Agent 系统,均可应对

[!question] 思考:为什么选 Go 而不是 Python强类型在大模型应用规模化后能带来什么收益


二、怎么分层 —— Eino 架构分层

graph TD
    A["Eino 框架"] --> B["组件层 Components"]
    A --> C["编排层 Orchestration"]
    A --> D["ADK 层 Agent 开发套件"]
    A --> E["工具层 DevOps"]

    B --> B1["ChatModel"]
    B --> B2["ChatTemplate"]
    B --> B3["Tool / ToolsNode"]
    B --> B4["Retriever"]
    B --> B5["Document Loader"]
    B --> B6["Embedding / Indexer"]
    B --> B7["Lambda 自定义"]

    C --> C1["Chain 链式"]
    C --> C2["Graph 有向图"]
    C --> C3["Workflow 字段映射"]
    C --> C4["Stream 流处理"]
    C --> C5["Callback 横切面"]

    D --> D1["Agent 接口"]
    D --> D2["ChatModelAgent ReAct"]
    D --> D3["WorkflowAgents"]
    D --> D4["Multi-Agent 范式"]
    D --> D5["Middleware 中间件"]

    E --> E1["Tracing 链路追踪"]
    E --> E2["IDE 插件 / 可视化"]
    E --> E3["Debug 调试"]

三、怎么用 —— 快速上手路径

3.1 入门四步走

步骤 主题 入口文档
Step 1 ChatModel 与 Message学会调模型 Eino/quick_start/chapter_01_chatmodel_and_message
Step 2 ChatModelAgent + Runner + AgentEvent学会跑 Agent Eino/quick_start/chapter_02_chatmodelagent_runner_agentevent
Step 3 Memory & Session让 Agent 有记忆 Eino/quick_start/chapter_03_memory_and_session
Step 4 Tool & FileSystem让 Agent 能干活 Eino/quick_start/chapter_04_tool_and_filesystem

3.2 进阶专题

主题 关键内容 入口文档
Middleware 横切面注入PlanTask / Summarization / Skill 等内置中间件 Eino/quick_start/chapter_05_middleware
Callback & Trace 执行过程可观测、可追踪 Eino/quick_start/chapter_06_callback_and_trace
Interrupt & Resume Human-in-the-loop断点续跑 Eino/quick_start/chapter_07_interrupt_resume
Graph & Tool 低代码编排,图即是工具 Eino/quick_start/chapter_08_graph_tool
A2UI Protocol Agent 生成 UI 协议 chapter_10_a2ui_protocol
Skill Console 技能注册与管理 Eino/quick_start/chapter_09_skill_console

四、关键概念清单

4.1 组件 Component

组件 职责 为什么需要
ChatModel 与大模型交互的核心接口 统一不同模型OpenAI / Ark / Gemini的调用方式
ChatTemplate 构造 Prompt 模板 将变量注入系统/用户消息,结构化管理
Tool / ToolsNode 可被模型调用的工具 让 LLM 从"只会说"变成"能执行"
Retriever 检索外部知识 RAG 的核心,给模型注入上下文
Document Loader 加载各类文档 将 PDF / Markdown / 网页等转为可处理文本
Embedding / Indexer 向量化 + 索引 语义检索基础
Lambda 自定义函数作为组件 当现有组件不满足需求时,自由扩展

[!question] 思考Lambda 和 Tool 的区别是什么?什么场景用哪个?

4.2 编排 Orchestration

编排方式 特点 适用场景
Chain 简单的顺序执行,有向无环 线性 Pipeline
Graph 有向图(可含环),灵活分支控制 ReAct Agent 等复杂路由
Workflow 字段级别的数据映射与传递 抖音场景:字段粒度的图映射

额外能力:

  • Stream 流处理:自动处理流式输入输出,支持流的复制、合并、拼接
  • Callback 横切面:在组件执行前后注入逻辑(日志、追踪、统计)
  • 编译时类型检查Graph Compile 时验证节点类型对齐,而非运行时才发现

4.3 ADK —— Agent 开发套件

Agent 接口(统一抽象)

type Agent interface {
    Name(ctx context.Context) string
    Description(ctx context.Context) string
    Run(ctx context.Context, input *AgentInput, options ...AgentRunOption) *AsyncIterator[*AgentEvent]
}

三个核心要素:身份Name + 职责Description + 标准化执行Run → AsyncIterator

Agent 类型全景

graph LR
    A["Agent 接口"] --> B["ChatModelAgent\nReAct 模式"]
    A --> C["WorkflowAgents\n流程编排"]
    A --> D["Multi-Agent\n协作范式"]
    A --> E["自定义 Agent\n实现接口"]

    C --> C1["Sequential\n顺序执行"]
    C --> C2["Parallel\n并发执行"]
    C --> C3["Loop\n循环执行"]

    D --> D1["Supervisor\n集中式协调"]
    D --> D2["Plan-Execute\n规划-执行-反思"]
    D --> D3["DeepAgents\n规划驱动集中协作"]
Agent 类型 一句话描述 典型场景
ChatModelAgent 基于 ReAct 的思考-行动循环 需要模型自主决策和工具调用的场景
SequentialAgent 按顺序依次执行子 Agent ETL 流水线、CI/CD
ParallelAgent 多个子 Agent 并发执行 多源数据采集、多渠道推送
LoopAgent 循环执行直到满足退出条件 数据同步、迭代优化
Supervisor 中心调度,统一分配与汇总 科研项目管理、客服流程
Plan-Execute Planner → Executor → Replanner 闭环 Excel 处理、多步骤推理
DeepAgents Main Agent + WriteTodos + TaskTool 长流程阶段性管理、多角色协作

Agent 协作机制

机制 使用方式 适用场景
History 框架自动传递前序 Agent 输出 Agent 间默认信息流
Shared Session KV 存储,GetSessionValue / AddSessionValue 跨 Agent 共享状态
Transfer移交 NewTransferToAgentAction 将任务移交子 Agent 边界清晰的层级式分工
ToolCall工具调用 NewAgentTool 将 Agent 封装为 Tool 仅需参数、无需完整上下文时

中断与恢复

  • Agent 运行时通过 Interrupt Action 主动中断
  • CheckPointStore 保存断点状态
  • Resume 方法携带新信息从断点恢复
  • 适用场景:需要外部输入、人工审批、长时等待

Middleware 中间件体系

内置中间件 功能
PlanTask 任务规划与拆解
Summarization 上下文摘要压缩
ToolSearch 动态工具搜索与选择
ToolReduction 工具调用结果精简
Skill 技能注册与匹配
FileSystem 文件读写能力注入
PatchToolCalls 工具调用修正

五、实战案例索引

案例 核心知识点 入口文档
ReAct Agent Graph 编排 + Tool 调用 Eino/docs/overview/eino_open_source
Excel Agent Plan-Execute + Multi-Agent + CodeAgent Eino/docs/overview/eino_adk_excel_agent
项目管理 Agent Supervisor + 中断恢复 + Transfer Eino/docs/overview/eino_adk0_1
字节内部实践 豆包、抖音等真实场景 Eino/docs/overview/bytedance_eino_practice

六、进阶对比与选型

对比维度 Eino LangChain / LlamaIndex
语言 Go强类型 Python动态类型
类型安全 编译时校验 运行时才发现
长期维护 类型系统天然可维护 动态语言大型项目维护成本高
并发模型 goroutine 原生并发 asyncio / 多线程
编排能力 Graph + Workflow 双模式 LCEL + Graph
Agent 框架 ADK 统一抽象 + 多种范式 LangGraph Agent

[!question] 思考Eino 的 Graph vs Agent什么时候直接用 Graph什么时候用 ADK Agent


七、版本演进速览

版本 关键变化
v0.1 首个开源版本,核心组件 + Chain/Graph
v0.2 Callback 体系完善
v0.3 小幅 break change
v0.4 Compose 优化
v0.5 ADK 实现
v0.6 JSON Schema 优化
v0.7 Interrupt/Resume 重构
v0.8 ADK Middleware 体系

八、外部资源


关联笔记