explaingit

cloudwego/eino

11,218GoAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

A Go framework from ByteDance for building AI-powered applications, offering reusable components for chat and retrieval, a graph-based workflow composer, and an agent kit for autonomous multi-step AI tasks.

Mindmap

mindmap
  root((repo))
    What it does
      Builds AI apps in Go
      Composes LLM workflows
      Runs autonomous agents
    Components
      Chat model connectors
      Embeddings retrieval
      Tool definitions
    Workflow system
      Graph of nodes
      Streaming output
      Human in the loop
    Agent features
      Sub-agent delegation
      Shell and Python exec
      Visual debugger
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Wire together OpenAI, Claude, or Ollama chat models with a knowledge base into a RAG pipeline using Eino's graph composer.

USE CASE 2

Build an autonomous AI agent in Go that can break a goal into sub-tasks, run shell commands, execute Python, and search the web.

USE CASE 3

Add a human-in-the-loop checkpoint to an AI workflow so the agent pauses and waits for approval before taking a critical action.

Tech stack

Go

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires Go 1.18 or later and API keys for the LLM providers you want to connect, such as OpenAI or Claude.

In plain English

Eino is a Go framework for building applications that use large language models (AI systems that process and generate text). It comes from ByteDance's CloudWeGo team and is designed specifically for Go developers who want to build AI-powered features without having to handle all the low-level coordination themselves. The framework provides three main layers. The first is a set of reusable components: standard building blocks for connecting to chat models (OpenAI, Claude, Gemini, Ollama, and others), searching a knowledge base, generating text embeddings, and similar tasks. These components follow Go conventions and have consistent interfaces so they can be swapped or combined. The second layer is a composition system for wiring components together into workflows. You define a graph of nodes, each responsible for a step, and the framework handles running them in order, passing data between steps, and managing streaming output throughout the pipeline. A workflow built this way can also be exposed as a tool that an AI agent can call. The third layer is an Agent Development Kit for building autonomous agents, meaning programs where the AI decides what steps to take based on a goal rather than following a fixed sequence. A simpler agent handles single-model tasks with optional tools. A deeper agent can break a complex problem into pieces, delegate to specialized sub-agents, run shell commands, execute Python, and search the web. Additional features include built-in support for pausing an agent mid-task to ask a human for input before continuing, callback hooks for logging and monitoring, and a visual debugging tool. The framework requires Go 1.18 or later and is available under an open-source license.

Copy-paste prompts

Prompt 1
I want to build a RAG pipeline in Go using Eino that connects to OpenAI and queries a vector knowledge base. Show me how to define the graph nodes and wire them together.
Prompt 2
How do I create an Eino agent that can use tools, like running a shell command or searching the web, and decide which tool to call based on a user goal?
Prompt 3
I'm using Eino and want to add logging and monitoring to my pipeline using the callback hook system. Show me how to register a callback and what events it receives.
Prompt 4
How do I expose an Eino workflow as a tool that another AI agent can call, and how do I set up a multi-agent hierarchy in Eino?
Open on GitHub → Explain another repo

← cloudwego on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.