mcpField
E
eino-guide

eino-guide

github.com/cloudwego開発828323 回インストール1 週間前に更新
リポジトリ

eino-guide について

eino-guideは、LLMアプリケーションを開発するGo開発者向けのEinoフレームワークガイドです。コンポーネント、オーケストレーション、エージェント開発を扱い、一般的なタスクに関連する概念やスキルを案内します。

主な機能

  1. 01モデル、ツール、検索などのコンポーネントを解説
  2. 02Graph、Chain、Workflowによる構成を説明
  3. 03ADK、Runner、人間介在フローを紹介
  4. 04コアパッケージと拡張実装を整理
  5. 05タスクに応じた開発手法を案内

活用シーン

  1. 01Go製LLMアプリのコンポーネントインターフェース選定
  2. 02直線型または分岐型フローの構成方法の選択
  3. 03複数ターンのエージェントとツールの実装計画
  4. 04RAGや人間の承認を含むワークフローの設計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cloudwego/eino-ext --skill eino-guide

インストール後、Claude Code で/eino-guideを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
quick-start.md
runnable.md
schema.md

詳細

Eino フレームワークガイド

Eino(「アイノー」と発音します)は、LLM アプリケーションを構築するための Go フレームワークです。

コアコンセプト

コンポーネント

AI の機能を提供する標準化されたインターフェースです。各インターフェースには、相互に置き換え可能な実装が複数あります。

コンポーネント機能主なインターフェース
ChatModelLLM 推論(生成/ストリーミング)model.BaseChatModel、model.ToolCallingChatModel
Toolモデルが呼び出せる関数tool.InvokableTool、tool.EnhancedInvokableTool
Embeddingテキストからベクトルへの変換embedding.Embedder
Retrieverベクトル/キーワード検索retriever.Retriever
Indexerベクトル付きドキュメントの保存indexer.Indexer
ChatTemplate変数を使ったプロンプトのフォーマットprompt.ChatTemplate
Document Loader/Transformerドキュメントの読み込みと処理document.Loader、document.Transformer
Callback Handler可観測性とトレースcallbacks.Handler

実装は eino-ext(OpenAI、Claude、Gemini、Ark、Ollama、Milvus、Redis、Elasticsearch など)にあります。

-> コンポーネントの選択、設定、使用には /eino-component を使用してください。

オーケストレーション(Compose)

コンポーネントを実行可能なパイプラインにつなぐための 3 つの API です。すべて Runnable[I, O] にコンパイルされ、4 つの実行モード(Invoke、Stream、Collect、Transform)を備えています。

APIトポロジー使用場面
Graph循環をサポートする有向グラフ分岐やループを含む複雑なフロー(例:ReAct パターン)
Chain線形の逐次処理シンプルなパイプライン(例:テンプレート -> モデル)
Workflowフィールド単位のマッピングを行う DAG構造体のフィールドに基づいて分岐を並列実行する場合

Compose レイヤーは、型チェック、ノード間のストリーム変換、並行処理、コールバックの注入、オプションの配布を自動的に処理します。

-> グラフ、チェーン、ワークフロー、ストリーミング、コールバック、状態管理の構築には /eino-compose を使用してください。

ADK(Agent Development Kit)

AI エージェントを構築するための高レベルな抽象化です。モデルとツールを組み合わせたループのパターンをカプセル化します。

概念機能
ChatModelAgentReAct スタイルのエージェント:モデルが生成し、ツールを呼び出し、完了するまでループします
DeepAgentファイルシステムバックエンド、ツール検索、要約機能を備えた事前構築済みエージェント
Runnerエージェントを実行し、チェックポイントを管理し、イベントストリームを出力します
Middleware (Handlers)エージェントの動作をインターセプトして拡張します(ファイルシステム、要約、計画・タスクなど)
Interrupt/Resume人間参加型の処理:エージェントを一時停止し、ユーザー入力を受け取り、チェックポイントから再開します
AgentToolエージェントを、別のエージェントが呼び出せるツールとしてラップします

-> エージェントの構築、ミドルウェアやランナーの設定、人間参加型の処理には /eino-agent を使用してください。

スキーマ

すべてのレイヤーで共有されるデータ型です。

  • schema.Message -- 会話メッセージ(system/user/assistant/tool の各ロール、コンテンツ、ツール呼び出し)
  • schema.Document -- コンテンツ、メタデータ、ベクトル埋め込みを含むドキュメント
  • schema.ToolInfo -- JSON スキーマ形式のパラメーターを含むツールの説明
  • schema.StreamReader[T] -- 汎用ストリーミングリーダー(必ず defer stream.Close() を使用してください)

リポジトリ

リポジトリ役割
github.com/cloudwego/einoコア:インターフェース、スキーマ、Compose エンジン、ADK、コールバック
github.com/cloudwego/eino-ext実装:モデルプロバイダー、ベクトルストア、ツール、コールバックハンドラー

パッケージの概要

eino(コア):

パッケージ含まれるもの
schemaMessage、Document、ToolInfo、StreamReader
components/modelChatModel および AgenticModel インターフェース
components/toolTool インターフェース(BaseTool、InvokableTool、StreamableTool、Enhanced 系)
components/embeddingEmbedder インターフェース
components/retrieverRetriever インターフェース
components/indexerIndexer インターフェース
components/documentLoader、Transformer インターフェース
components/promptChatTemplate インターフェース
composeGraph、Chain、Workflow、ToolsNode、Runnable、state、checkpoint
callbacksHandler インターフェース、グローバル/実行ごとの登録
adkAgent、Runner、ChatModelAgent、ミドルウェア、中断/再開
adk/prebuilt/deepDeepAgent プリセット

eino-ext(実装):

パッケージ含まれるもの
components/model/{provider}ChatModel の実装(openai、claude、gemini、ark、ollama、deepseek、qwen など)
components/embedding/{provider}Embedding の実装(openai、ark、ollama など)
components/retriever/{backend}Retriever の実装(redis、milvus2、es8、qdrant)
components/indexer/{backend}Indexer の実装(redis、milvus2、es8、qdrant)
components/tool/{type}Tool の実装(mcp、googlesearch、duckduckgo、bingsearch など)
callbacks/{provider}Callback ハンドラー(cozeloop、apmplus、langfuse、langsmith)
adk/backend/localDeepAgent 向けローカルファイルシステム Backend

アプローチの選択

シナリオアプローチスキル
単一のモデル呼び出し(生成またはストリーミング)ChatModel を直接使用/eino-component
ツールを使う複数ターンのエージェントChatModelAgent + Runner/eino-agent
ファイルシステムやツール検索を使う本番向けエージェントDeepAgent/eino-agent
直線的なパイプライン(template -> model)Chain/eino-compose
分岐やループを含む複雑なフローGraph/eino-compose
フィールドマッピングを使う並列分岐Workflow/eino-compose
RAG(埋め込み + インデックス作成 + 検索)Indexer + Retriever + Embedding/eino-component
人間による承認が必要なエージェントInterrupt/Resume + Runner/eino-agent
可観測性とトレーシングCallback ハンドラー/eino-component

参考ファイル

  • reference/schema.md -- すべてのレイヤーで共有されるコアデータ型:Message、Document、ToolInfo、StreamReader
  • reference/runnable.md -- Runnable[I, O] インターフェース、4 つの実行モード、ランタイムオプション
  • reference/quick-start.md -- 3 つの完全な動作例(ChatModel、Agent+Runner、Chain)

エージェントへの指示

  1. 質問が具体的な場合は、適切なスキル(/eino-component、/eino-compose、/eino-agent)に誘導してください。「アプローチの選択」テーブルを参照してください。
  2. github.com/cloudwego/eino および github.com/cloudwego/eino-ext の実際のインポートパスを使った Go コード例を必ず提示してください。
  3. コンポーネントの実装詳細についてコードを生成する前に、必ずプロバイダーの参考ファイルを読んでください。コンストラクターや設定の命名規則を推測しないでください。
  4. エージェントのユースケースでは、compose グラフを使って ReAct ループを手動で構築するより、ADK(ChatModelAgent + Runner)を優先してください。プリエンプションとライフサイクル管理が必要な、対話型の複数ターンアプリケーションには TurnLoop を推奨してください。
  5. ストリーミングコードを示す場合は、必ず defer stream.Close() を含めてください。

コメント