← all repositories
cloudwego/eino

LangChain's Go cousin, built by ByteDance

Eino brings LLM orchestration, agents, and graph workflows to Go with idiomatic patterns and streaming baked in.

eino
Velocity · 7d
+21
★ / day
Trend
steady
star history

What it does

Eino is a Go framework for building LLM-powered applications. It wraps chat models, tools, retrievers, and templates into reusable components, then wires them into agents or custom execution graphs. The Agent Development Kit handles ReAct loops, multi-agent delegation via DeepAgent, and human-in-the-loop interrupts with resume-from-checkpoint. A separate eino-ext repo supplies official implementations for OpenAI, Claude, Gemini, Ollama, Elasticsearch, and others.

The interesting bit

The compose package lets you build deterministic DAGs and then expose them as tools that agents can invoke. That’s a neat inversion: rigid pipelines become flexible capabilities, rather than fighting with agent chaos or abandoning control entirely.

Key highlights

  • Streaming handled automatically — concatenation, merging, boxing across graph nodes; components only implement what they need
  • Callback aspects — inject logging, tracing, metrics at fixed lifecycle hooks (OnStart, OnEnd, OnError, plus stream variants)
  • DeepAgent — breaks problems into steps and delegates to sub-agents with shell, Python, and web search tools
  • Human-in-the-loop — any agent or tool can pause, persist state, and resume later
  • Go 1.18+, Apache 2.0, with golangci-lint enforced style

Caveats

  • The framework is split across four repos (core, extensions, devops, examples), so navigation takes some orientation
  • Documentation links point to Chinese-language pages as primary; English coverage is present but secondary

Verdict

Worth a look if you’re building AI services in Go and want something more structured than raw API calls but more idiomatic than porting Python patterns. Skip it if you’re already productive in Python’s ecosystem and don’t need Go’s deployment model.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.