
Eino Compose
This covers the Eino orchestration layer when you need to wire up multi-step pipelines in Go. You get three APIs: Chain for linear flows, Graph for anything with branches or cycles (like ReAct agents), and Workflow for DAGs where you need fine-grained field mapping between different struct types. All three compile down to the same Runnable abstraction with invoke, stream, collect, and transform modes. The framework auto-converts between streaming and non-streaming nodes, which is genuinely convenient. Most real work happens in Graph since branching and state management are table stakes for agents. The reference docs include a complete ReAct example with tool calling and checkpointing, so you're not starting cold.
- skills.sh installs
- 352
- GitHub stars
- 835
- last updated
- Aug 21, 2026
Install
$ npx -y skills add cloudwego/eino-ext --skill eino-compose --agent claude-codeInstalls into .claude/skills of the current project.
Files
Orchestration Overview
The github.com/cloudwego/eino/compose package provides three orchestration APIs:
| API | Topology | Cycles | Type Alignment |
|---|---|---|---|
| Graph | Directed graph | Yes (Pregel mode) / No (DAG mode) | Whole input/output |
| Chain | Linear sequence | No | Whole input/output |
| Workflow | DAG | No | Field-level mapping |
*Chain is implemented on top of Graph in Pregel mode but enforces linear topology.
All three compile into Runnable[I, O] which exposes Invoke, Stream, Collect, and Transform.
import "github.com/cloudwego/eino/compose"
Choosing an API
- Chain -- sequential pipeline: prompt -> model -> parser. Simplest API.
- Graph -- need branching, loops (ReAct agent), or fan-out/fan-in.
- Workflow -- need field-level mapping between nodes with different struct types; DAG only.
Graph Quick Reference
g := compose.NewGraph[InputType, OutputType]()
Sponsors
Details
- Repository
- github.com/cloudwego/eino-ext
- Categories
- DevOps & CI/CD, Automation & Workflows, Mobile Development
- First seen
- Jun 3, 2026