eino-guide
Eino framework overview, concepts, and navigation. Use when a user asks general questions about Eino, needs help getting started, wants to understand the architecture, or is unsure which Eino skill to use. Eino is a Go framework for building LLM applications with components, orchestration graphs, and an agent development kit.
What this skill does
# 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.
| Component | What It Does | Key Interface |
|-----------|-------------|---------------|
| ChatModel | LLM inference (generate / stream) | `model.BaseChatModel`, `model.ToolCallingChatModel` |
| Tool | Functions the model can call | `tool.InvokableTool`, `tool.EnhancedInvokableTool` |
| Embedding | Text to vector | `embedding.Embedder` |
| Retriever | Vector/keyword search | `retriever.Retriever` |
| Indexer | Store documents with vectors | `indexer.Indexer` |
| ChatTemplate | Prompt formatting with variables | `prompt.ChatTemplate` |
| Document Loader/Transformer | Load and process documents | `document.Loader`, `document.Transformer` |
| Callback Handler | Observability and tracing | `callbacks.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).
| API | Topology | When to Use |
|-----|----------|-------------|
| **Graph** | Directed graph, supports cycles | Complex flows with branching, loops (e.g., ReAct pattern) |
| **Chain** | Linear sequential | Simple pipelines (e.g., template -> model) |
| **Workflow** | DAG with field-level mapping | Parallel 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.
| Concept | What It Does |
|---------|-------------|
| **ChatModelAgent** | ReAct-style agent: model generates, calls tools, loops until done |
| **DeepAgent** | Pre-built agent with filesystem backend, tool search, summarization |
| **Runner** | Executes agents, manages checkpoints, emits event streams |
| **Middleware (Handlers)** | Intercept and extend agent behavior (filesystem, summarization, plan-task, etc.) |
| **Interrupt/Resume** | Human-in-the-loop: pause agent, get user input, resume from checkpoint |
| **AgentTool** | Wrap 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
| Repository | Role |
|---|---|
| `github.com/cloudwego/eino` | Core: interfaces, schema, compose engine, ADK, callbacks |
| `github.com/cloudwego/eino-ext` | Implementations: model providers, vector stores, tools, callback handlers |
## Packages at a Glance
**eino (core):**
| Package | Contains |
|---------|----------|
| `schema` | Message, Document, ToolInfo, StreamReader |
| `components/model` | ChatModel and AgenticModel interfaces |
| `components/tool` | Tool interfaces (BaseTool, InvokableTool, StreamableTool, Enhanced variants) |
| `components/embedding` | Embedder interface |
| `components/retriever` | Retriever interface |
| `components/indexer` | Indexer interface |
| `components/document` | Loader, Transformer interfaces |
| `components/prompt` | ChatTemplate interface |
| `compose` | Graph, Chain, Workflow, ToolsNode, Runnable, state, checkpoint |
| `callbacks` | Handler interface, global/per-run registration |
| `adk` | Agent, Runner, ChatModelAgent, middleware, interrupt/resume |
| `adk/prebuilt/deep` | DeepAgent preset |
**eino-ext (implementations):**
| Package | Contains |
|---------|----------|
| `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/local` | Local filesystem Backend for DeepAgent |
## Choosing Your Approach
| Scenario | Approach | Skill |
|----------|----------|-------|
| Single model call (generate or stream) | Use ChatModel directly | `/eino-component` |
| Multi-turn agent with tools | ChatModelAgent + Runner | `/eino-agent` |
| Production agent with filesystem, tool search | DeepAgent | `/eino-agent` |
| Linear pipeline (template -> model) | Chain | `/eino-compose` |
| Complex flow with branching or loops | Graph | `/eino-compose` |
| Parallel branches with field mapping | Workflow | `/eino-compose` |
| RAG (embed + index + retrieve) | Indexer + Retriever + Embedding | `/eino-component` |
| Agent with human approval | Interrupt/Resume + Runner | `/eino-agent` |
| Observability and tracing | Callback 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()`.
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.