cloudwego/eino

每日信息看板 · 2026-03-08
开源项目
Category
github_search
Source
4
Score
2026-03-08T01:52:27Z
Published

AI 总结

CloudWeGo 发布了面向 Golang 的 LLM 应用开发框架 Eino,提供组件、Agent 开发套件与工作流编排能力,重要性在于帮助 Go 开发者更规范高效地构建 AI Agent 与复杂 LLM 应用。
#GitHub #repo #开源项目 #Golang #CloudWeGo #Agent

内容摘录

Eino

!coverage
Release
WebSite
License
Go Report Card
OpenIssue
ClosedIssue
!Stars
!Forks

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, and ChatTemplate, 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:

Add tools to give the agent capabilities:

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 can be configured to coordinate multiple specialized agents, run shell commands, execute Python code, and search the web.

→ DeepAgent example · docs
Composition

When you need precise control over execution flow, use compose to build graphs and workflows:

Compositions can be exposed as tools for agents, bridging deterministic workflows with autonomous behavior:

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.

→ docs · examples
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
Eino User Manual
Eino: Quick Start
Dependencies
Go 1.18 and above.
Code Style

This repo uses golangci-lint. Check locally with:

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, notify Bytedance Security via the 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.

&ensp;&ensp;&ensp; <img src=".github/static/img/eino/lark_group_zh.png" alt="LarkGroup" width="200"/>
License

This project is licensed under the Apache-2.0 License.