cloudwego/eino-ext

eino-guide

Eino framework overview, concepts, and navigation.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Eino Framework Guide

Eino (pronounced "i know") is a Go framework for building LLM applications.

Core Concepts

Component

Standardized interfaces for AI capabilities. Each interface has multiple interchangeable implementations.

ComponentWhat It DoesKey Interface
ChatModelLLM inference (generate / stream)model.BaseChatModel, model.ToolCallingChatModel
ToolFunctions the model can calltool.InvokableTool, tool.EnhancedInvokableTool
EmbeddingText to vectorembedding.Embedder
RetrieverVector/keyword searchretriever.Retriever
IndexerStore documents with vectorsindexer.Indexer
ChatTemplatePrompt formatting with variablesprompt.ChatTemplate
Document Loader/TransformerLoad and process documentsdocument.Loader, document.Transformer
Callback HandlerObservability and tracingcallbacks.Handler

Implementations live in eino-ext (OpenAI, Claude, Gemini, Ark, Ollama, Milvus, Redis, Elasticsearch, etc.).

-> Use /eino-component for selecting, configuring, and using components.

Orchestration (Compose)

Three APIs for wiring components into executable pipelines. All compile to a Runnable[I, O] with four execution modes (Invoke, Stream, Collect, Transform).

APITopologyWhen to Use
GraphDirected graph, supports cyclesComplex flows with branching, loops (e.g., ReAct pattern)
ChainLinear sequentialSimple pipelines (e.g., template -> model)
WorkflowDAG with field-level mappingParallel branches with struct field routing

The compose layer handles type checking, stream conversion between nodes, concurrency, callback injection, and option distribution automatically.

-> Use /eino-compose for building graphs, chains, workflows, streaming, callbacks, and state management.

ADK (Agent Development Kit)

High-level abstractions for building AI agents. Encapsulates the model-tool-loop pattern.

ConceptWhat It Does
ChatModelAgentReAct-style agent: model generates, calls tools, loops until done
DeepAgentPre-built agent with filesystem backend, tool search, summarization
RunnerExecutes agents, manages checkpoints, emits event streams
Middleware (Handlers)Intercept and extend agent behavior (filesystem, summarization, plan-task, etc.)
Interrupt/ResumeHuman-in-the-loop: pause agent, get user input, resume from checkpoint
AgentToolWrap an agent as a tool callable by another agent

-> Use /eino-agent for building agents, configuring middleware, runners, and human-in-the-loop.

Schema

Shared data types used across all layers:

  • schema.Message -- Conversation message (system/user/assistant/tool roles, content, tool calls)
  • schema.Document -- Document with content, metadata, and vector embeddings
  • schema.ToolInfo -- Tool description with JSON schema parameters
  • schema.StreamReader[T] -- Generic streaming reader (always defer stream.Close())

Repositories

RepositoryRole
github.com/cloudwego/einoCore: interfaces, schema, compose engine, ADK, callbacks
github.com/cloudwego/eino-extImplementations: model providers, vector stores, tools, callback handlers

Packages at a Glance

eino (core):

PackageContains
schemaMessage, Document, ToolInfo, StreamReader
components/modelChatModel and AgenticModel interfaces
components/toolTool interfaces (BaseTool, InvokableTool, StreamableTool, Enhanced variants)
components/embeddingEmbedder interface
components/retrieverRetriever interface
components/indexerIndexer interface
components/documentLoader, Transformer interfaces
components/promptChatTemplate interface
composeGraph, Chain, Workflow, ToolsNode, Runnable, state, checkpoint
callbacksHandler interface, global/per-run registration
adkAgent, Runner, ChatModelAgent, middleware, interrupt/resume
adk/prebuilt/deepDeepAgent preset

eino-ext (implementations):

PackageContains
components/model/{provider}ChatModel implementations (openai, claude, gemini, ark, ollama, deepseek, qwen, etc.)
components/embedding/{provider}Embedding implementations (openai, ark, ollama, etc.)
components/retriever/{backend}Retriever implementations (redis, milvus2, es8, qdrant)
components/indexer/{backend}Indexer implementations (redis, milvus2, es8, qdrant)
components/tool/{type}Tool implementations (mcp, googlesearch, duckduckgo, bingsearch, etc.)
callbacks/{provider}Callback handlers (cozeloop, apmplus, langfuse, langsmith)
adk/backend/localLocal filesystem Backend for DeepAgent

Choosing Your Approach

ScenarioApproachSkill
Single model call (generate or stream)Use ChatModel directly/eino-component
Multi-turn agent with toolsChatModelAgent + Runner/eino-agent
Production agent with filesystem, tool searchDeepAgent/eino-agent
Linear pipeline (template -> model)Chain/eino-compose
Complex flow with branching or loopsGraph/eino-compose
Parallel branches with field mappingWorkflow/eino-compose
RAG (embed + index + retrieve)Indexer + Retriever + Embedding/eino-component
Agent with human approvalInterrupt/Resume + Runner/eino-agent
Observability and tracingCallback handlers/eino-component

Reference Files

  • reference/schema.md -- Core data types shared across all layers: Message, Document, ToolInfo, StreamReader
  • reference/runnable.md -- Runnable[I, O] interface, four execution modes, runtime options
  • reference/quick-start.md -- Three complete working examples (ChatModel, Agent+Runner, Chain)

Instructions to Agent

  1. Route to the appropriate skill (/eino-component, /eino-compose, /eino-agent) when the question is specific. Consult the "Choosing Your Approach" table.
  2. Always provide Go code examples using real import paths from github.com/cloudwego/eino and github.com/cloudwego/eino-ext.
  3. For component implementation details, always read the provider's reference file before generating code. Do not assume constructor or config naming conventions.
  4. Prefer ADK (ChatModelAgent + Runner) for agent use cases over manually building ReAct loops with compose graphs. For interactive multi-turn applications needing preemption and lifecycle management, recommend TurnLoop.
  5. When showing streaming code, always include defer stream.Close().
from this repository

More skills

All skills
cloudwego
Community

eino-agent

Eino ADK agent construction, middleware, and runner. Use when a user needs to build an AI Agent, configure ChatModelAgent with ReAct pattern, use middleware (filesystem, tool search, tool reduction, summarization, plan-task, skill, agents.md), set up the Runner for event-driven execution, implement human-in-the-loop with interrupt/resume, use Cancel/Retry/Failover for model resilience, build push-based multi-turn loops with TurnLoop, or wrap agents as tools. Covers ChatModelAgent, DeepAgents, an

installs
2
GitHub stars
818
Updated
Sep 24
cloudwego
Community

eino-component

Eino component selection, configuration, and usage. Use when a user needs to choose or configure a ChatModel, AgenticModel, Embedding, Retriever, Indexer, Tool, Document loader/parser/transformer, Prompt template, or Callback handler. Covers all component interfaces and their implementations in eino-ext including OpenAI, Claude, Gemini, Ark, Ollama, Milvus, Elasticsearch, Redis, MCP tools, and more.

installs
2
GitHub stars
818
Updated
Sep 24
cloudwego
Community

eino-compose

Eino orchestration with Graph, Chain, and Workflow. Use when a user needs to build multi-step pipelines, compose components into executable graphs, handle streaming between nodes, use branching or parallel execution, manage state with checkpoints, or understand the Runnable abstraction. Covers Graph (directed graph with cycles), Chain (linear sequential), and Workflow (DAG with field mapping).

installs
2
GitHub stars
818
Updated
Sep 24