AI Compare
​
​
ToolsArticlesServices
Best for
    All tools

    Sales

    AI tools for finding leads, qualifying them, preparing quotes, following up and keeping the CRM up to date.

    Marketing

    AI tools for content, social media, images, video, SEO and campaigns.

    Customer service

    AI tools for answering customer emails, chats and calls, handling requests and escalating the hard cases.

    Operations

    AI tools for running the daily work: workflows, scheduling, projects, purchasing and delivery.

    Finance

    AI tools for invoices, bookkeeping, reconciliation, spreadsheets and financial reporting.

    Management & Admin

    AI tools for owners, managers and office staff: planning, reports, documents, meetings, scheduling and everyday admin.

    HR

    AI tools for hiring, screening candidates, onboarding, training and answering employee questions.

    Legal & Compliance

    AI tools for reviewing contracts, tracking deadlines and preparing compliance work for a qualified person to check.

    IT & Development

    AI tools for developers and IT teams: coding, AI models, agents, infrastructure and integrations.

Find AI tools for your team
AllAssistantsWriting & DocsImagesVideoAudioAI AgentsAutomationCode
← Back to tools

•

2024-12-04

eino logo

eino

Not rated yet

12.5K GitHub stars

Type:

Tool

Platforms:

Github

Task:

Chat with AIConnect AI to appsRun AI agents

Best for:

IT & Development
Visit websiteView on GitHub

Pricing


Starting price

$0

Type

Freemium

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.

Configure a ChatModel, optionally add tools, and you have a working agent.

README

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:

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.

→ DeepAgent example · docs

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.

→ 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:

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.

    LarkGroup

License

This project is licensed under the Apache-2.0 License.

Releases

Release information has not been added yet.

Related articles

Guides and news that mention this tool.

Z
M
n8n logo

AI Agents in Zapier vs Make vs n8n: Which Is Best?

Comparison
n8n logo

What Is n8n? The Open-Source Workflow Automation Tool Explained

Get started
G
Z
M

AI Email Labeling in Gmail with OpenAI

Use cases
W
n8n logo

AI WhatsApp Customer Support Agent

Use cases
G
n8n logo
Gemini logo

Build a RAG Chatbot over Your Google Drive Documents

Use cases
T
n8n logo
ChatGPT logo

Build an AI Assistant on Telegram (Voice + Text) with n8n

Use cases
Complete your AI stack

Add a general assistant, research, coding, monitoring, and team productivity to your automations.

ChatGPT logo
ChatGPT
General assistant

General-purpose AI assistant for research, writing, coding, data analysis, image creation, and everyday productivity

View tool
Perplexity logo
Perplexity
Research

AI-powered search and research assistant

View tool
Cursor logo
Cursor
Build integrations

AI coding editor and autonomous software development platform

View tool
Best alternatives

Compare similar tools in the same category.

OpenClaw logo

OpenClaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

Cursor logo

Cursor

AI coding editor and autonomous software development platform

Hermes Agent logo

Hermes Agent

The agent that grows with you

Firecrawl logo

Firecrawl

The API to search, scrape, and interact with the web at scale. 🔥

Copilot logo

Copilot

AI assistant for creating, searching, communicating, and automating work across Microsoft 365 apps.

View all in this category
Help
Pick an answer below
Hi! I can point you to the right tool or guide. What are you looking for?
Browse all articles