DISCOVER THE FUTURE OF AI AGENTSarrow_forward

Eino

calendar_todayAdded Feb 25, 2026
categoryAgent & Tooling
codeOpen Source
Workflow AutomationMulti-Agent SystemRAGGoAI AgentsAgent FrameworkSDKAgent & ToolingModel & Inference FrameworkDeveloper Tools & CodingAutomation, Workflow & RPAKnowledge Management, Retrieval & RAG

A Go-based LLM/AI application development framework open-sourced by CloudWeGo (ByteDance), providing component abstractions, agent orchestration, graph/chain workflows, and streaming capabilities.

Introduction#

Eino (pronounced ['aino]) is a Go-based AI application framework from CloudWeGo (ByteDance's open-source organization). Inspired by LangChain and Google ADK, it follows Go idioms and leverages Go's concurrency model and type system.

  • License: Apache-2.0
  • Requirements: Go 1.18+
  • Maintainer: CloudWeGo / ByteDance

Core Features#

Component Abstraction#

Provides reusable component interfaces: ChatModel, Tool, Retriever, ChatTemplate, Embedding, Document Loader, Lambda, etc. Official implementations cover OpenAI, Claude, Gemini, Ark, Ollama, Elasticsearch, and more.

Agent Development Kit (ADK)#

  • ChatModelAgent: Built-in ReAct loop, automatically handles tool calls, conversation state, and reasoning flow
  • Preset Patterns: Deep Agent (task orchestration), Supervisor (hierarchical coordination), sequential/parallel/cyclic
  • Human-in-the-Loop: Interrupt/resume mechanism with checkpoint persistence

Orchestration Engine#

  • Chain: Unidirectional chain flow
  • Graph: Directed graph (cycles allowed)
  • Workflow: Acyclic graph with field-level data mapping
  • Runtime Capabilities: Compile-time type checking, streaming, concurrency management, aspect injection, option dispatching

Streaming#

Framework automatically handles stream concatenation, boxing, merging, and copying; components only implement business-meaningful streaming patterns.

Callback Aspects#

Inject logging, tracing, and metrics at fixed points: OnStart, OnEnd, OnError, OnStartWithStreamInput, OnEndWithStreamOutput.

Code Examples#

Using ChatModelAgent#

agent, _ := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
    Model: chatModel,
    ToolsConfig: adk.ToolsConfig{
        ToolsNodeConfig: compose.ToolsNodeConfig{
            Tools: []tool.BaseTool{weatherTool, calculatorTool},
        },
    },
})
runner := adk.NewRunner(ctx, adk.RunnerConfig{Agent: agent})
iter := runner.Query(ctx, "What's the weather in Beijing this weekend?")

Graph Orchestration#

graph := compose.NewGraph[map[string]any, *schema.Message]()
_ = graph.AddChatTemplateNode("node_template", chatTpl)
_ = graph.AddChatModelNode("node_model", chatModel)
_ = graph.AddToolsNode("node_tools", toolsNode)
compiledGraph, _ := graph.Compile(ctx)
out, _ := compiledGraph.Invoke(ctx, map[string]any{"query":"Beijing's weather this weekend"})

Module Structure#

RepositoryResponsibility
einoCore: type definitions, streaming, component interfaces, orchestration, ADK, aspect mechanism
eino-extEcosystem: third-party component implementations, callback handlers, evaluators
eino-examplesSample applications and best practices
Eino DevOpsVisual development and debugging

Use Cases#

  • Conversational assistants with tool calling
  • Complex task decomposition and multi-agent collaboration
  • Enterprise data processing and reasoning pipelines (RAG, Workflow)
  • Business processes requiring human-in-the-loop (approval, input)

Related Projects

View All arrow_forward

STAY UPDATED

Get the latest AI tools and trends delivered straight to your inbox. No spam, just intelligence.

rocket_launch