概述与安装
Eino(发音 [aino],近似 “I know”)是字节跳动开源的 Go 语言大模型应用开发框架。它从 LangChain、LlamaIndex、Google ADK 等框架汲取灵感,遵循 Go 语言编程惯例,强调类型安全、简洁性、可扩展性与可靠性。
内部已大规模应用于字节跳动数百个业务线,支撑 抖音、豆包、Coze 等核心产品。
架构全景
┌────────────────────────────────────────────────────┐
│ ADK(Agent 开发套件) │
│ ChatModelAgent │ DeepAgent │ Supervisor │ PlanExecute │
│ Runner / TurnLoop / Checkpoint │
├────────────────────────────────────────────────────┤
│ 编排框架(compose) │
│ Graph API │ Chain API │ Workflow API │
│ 流式处理 │ 并发管理 │ 类型检查 │ 切面注入 │
├────────────────────────────────────────────────────┤
│ 组件抽象(components) │
│ ChatModel │ Tool │ Retriever │ Embedding │ Indexer │
│ ChatTemplate │ Loader │ Transformer │ Lambda │
├────────────────────────────────────────────────────┤
│ schema — Message / StreamReader / Document │
├────────────────────────────────────────────────────┤
│ callbacks — 可观测性(tracing / logging) │
└────────────────────────────────────────────────────┘核心价值
| 维度 | 说明 |
|---|---|
| 组件抽象 | 精心整理的 Component 接口与实现,可复用与组合 |
| ADK | 高级 Agent 抽象,支持多智能体编排、人机协作中断 |
| 编排框架 | 自动类型检查、流式处理、并发管理、切面注入 |
| 类型安全 | 编译期类型校验,泛型贯穿始终 |
| DevOps | 可视化开发调试、在线追踪与评估(Eino Devops) |
仓库体系
| 仓库 | 职责 |
|---|---|
github.com/cloudwego/eino |
核心框架:类型、组件抽象、编排引擎、ADK |
github.com/cloudwego/eino-ext |
组件实现(OpenAI / Claude / Gemini / Ark / Ollama 等)、Callback、评估器 |
EinoExamples |
示例应用与最佳实践 |
Eino Devops |
可视化开发与调试工具 |
安装
go get github.com/cloudwego/eino@latest按需引入扩展组件:
go get github.com/cloudwego/eino-ext/components/model/openai@latest最小示例
package main
import (
"context"
"fmt"
"io"
"github.com/cloudwego/eino-ext/components/model/openai"
"github.com/cloudwego/eino/schema"
)
func main() {
ctx := context.Background()
model, _ := openai.NewChatModel(ctx, &openai.ChatModelConfig{
APIKey: os.Getenv("OPENAI_API_KEY"),
Model: "gpt-4o",
})
stream, _ := model.Stream(ctx, []*schema.Message{
schema.SystemMessage("You are a helpful assistant."),
schema.UserMessage("Hello, what is Go?"),
})
defer stream.Close()
for {
chunk, err := stream.Recv()
if err == io.EOF {
break
}
fmt.Print(chunk.Content)
}
}💡 学习路线:组件接口 → 编排框架 → ADK → 多 Agent 协作 → Callback 可观测性