cloudwego/eino
cloudwego/eino has 13,563 GitHub stars and 1,159 forks. GitHot measured +9 stars in 24 hours and +75 in 7 days. Last checked 2026-11-05 19:09 UTC. Last push 2026-11-04.
Go 기반 LLM/AI 애플리케이션 개발을 위한 궁극의 프레임워크입니다.
측정된 스타 증가
- in 24h
- +9
- in 7 days
- +75
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
OriginalEino
English | 中文
Overview
Eino['aino] is an LLM application development framework in Golang. It draws from LangChain, Google ADK, and other open-source frameworks, and is designed to follow Golang conventions.
Eino provides:
- Components: reusable building blocks like
ChatModel,Tool,Retriever, andChatTemplate, with official implementations for OpenAI, Ollama, and more. - Agent Development Kit (ADK): build AI agents with tool use, multi-agent coordination, context management, interrupt/resume for human-in-the-loop, and ready-to-use agent patterns.
- Composition: connect components into graphs and workflows that can run standalone or be exposed as tools for agents.
- Examples: working code for common patterns and real-world use cases.

Quick Start
ChatModelAgent
Configure a ChatModel, optionally add tools, and you have a working agent:
chatModel, _ := openai.NewChatModel(ctx, &openai.ChatModelConfig{
Model: "gpt-4o",
APIKey: os.Getenv("OPENAI_API_KEY"),
})
agent, _ := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
Model: chatModel,
})
runner := adk.NewRunner(ctx, adk.RunnerConfig{Agent: agent})
iter := runner.Query(ctx, "Hello, who are you?")
for {
event, ok := iter.Next()
if !ok {
break
}
fmt.Println(event.Message.Content)
}
Add tools to give the agent capabilities:
agent, _ := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
Model: chatModel,
ToolsConfig: adk.ToolsConfig{
ToolsNodeConfig: compose.ToolsNodeConfig{
Tools: []tool.BaseTool{weatherTool, calculatorTool},
},
},
})
The agent handles the ReAct loop internally — it decides when to call tools and when to respond.
→ ChatModelAgent examples · docs
DeepAgent
For complex tasks, use DeepAgent. It breaks down problems into steps, delegates to sub-agents, and tracks progress:
deepAgent, _ := deep.New(ctx, &deep.Config{
ChatModel: chatModel,
SubAgents: []adk.Agent{researchAgent, codeAgent},
ToolsConfig: adk.ToolsConfig{
ToolsNodeConfig: compose.ToolsNodeConfig{
Tools: []tool.BaseTool{shellTool, pythonTool, webSearchTool},
},
},
})
runner := adk.NewRunner(ctx, adk.RunnerConfig{Agent: deepAgent})
iter := runner.Query(ctx, "Analyze the sales data in report.csv and generate a summary chart")
DeepAgent can be configured to coordinate multiple specialized agents, run shell commands, execute Python code, and search the web.
Composition
When you need precise control over execution flow, use compose to build graphs and workflows:
graph := compose.NewGraph[*Input, *Output]()
graph.AddLambdaNode("validate", validateFn)
graph.AddChatModelNode("generate", chatModel)
graph.AddLambdaNode("format", formatFn)
graph.AddEdge(compose.START, "validate")
graph.AddEdge("validate", "generate")
graph.AddEdge("generate", "format")
graph.AddEdge("format", compose.END)
runnable, _ := graph.Compile(ctx)
result, _ := runnable.Invoke(ctx, input)
Compositions can be exposed as tools for agents, bridging deterministic workflows with autonomous behavior:
tool, _ := graphtool.NewInvokableGraphTool(graph, "data_pipeline", "Process and validate data")
agent, _ := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
Model: chatModel,
ToolsConfig: adk.ToolsConfig{
ToolsNodeConfig: compose.ToolsNodeConfig{
Tools: []tool.BaseTool{tool},
},
},
})
This lets you build domain-specific pipelines with exact control, then let agents decide when to use them.
→ GraphTool examples · compose docs
Key Features
Component Ecosystem
Eino defines component abstractions (ChatModel, Tool, Retriever, Embedding, etc.) with official implementations for OpenAI, Claude, Gemini, Ark, Ollama, Elasticsearch, and more.
→ eino-ext
Stream Processing
Eino automatically handles streaming throughout orchestration: concatenating, boxing, merging, and copying streams as data flows between nodes. Components only implement the streaming paradigms that make sense for them; the framework handles the rest.
→ docs
Callback Aspects
Inject logging, tracing, and metrics at fixed points (OnStart, OnEnd, OnError, OnStartWithStreamInput, OnEndWithStreamOutput) across components, graphs, and agents.
→ docs
Interrupt/Resume
Any agent or tool can pause execution for human input and resume from checkpoint. The framework handles state persistence and routing.
Framework Structure

The Eino framework consists of:
Eino (this repo): Type definitions, streaming mechanism, component abstractions, orchestration, agent implementations, aspect mechanisms
EinoExt: Component implementations, callback handlers, usage examples, evaluators, prompt optimizers
Eino Devops: Visualized development and debugging
EinoExamples: Example applications and best practices
Documentation
Dependencies
- Go 1.18 and above.
Code Style
This repo uses golangci-lint. Check locally with:
golangci-lint run ./...
Rules enforced:
- Exported functions, interfaces, packages, etc. should have GoDoc comments
- Code should be formatted with
gofmt -s - Import order should follow
goimports(std -> third party -> local)
Security
If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our security center or vulnerability reporting email.
Do not create a public GitHub issue.
Contact
- Membership: COMMUNITY MEMBERSHIP
- Issues: Issues
- Lark: Scan the QR code below with Feishu to join the CloudWeGo/eino user group.

License
This project is licensed under the Apache-2.0 License.
관련 프로젝트 살펴보기
affaan-m/ECC
에이전트 실행·제어 프레임워크를 위한 성능 최적화 시스템. Claude Code, Codex, Opencode, Cursor 등을 위한 스킬, 본능, 메모리, 보안, 연구 우선 개발을 제공합니다.
298,184 스타NousResearch/hermes-agent
당신과 함께 성장하는 에이전트
261,026 스타multica-ai/andrej-karpathy-skills
Andrej Karpathy가 관찰한 LLM 코딩의 함정을 바탕으로 Claude Code의 동작을 개선하는 단일 CLAUDE.md 파일입니다.
230,068 스타firecrawl/firecrawl
웹과 그 너머의 데이터로 AI 에이전트를 강화합니다. 초지능을 위한 라이브러리를 구축하고 있습니다. 🔥
199,027 스타