yologdev/yoagent

The agent loop for Rust — stream from 7 LLM protocols, run tools, loop until done.

何を解決するか

yoagent は Rust で AI エージェントを構築するための専門的なフレームワークです。特に「エージェントループ」——LLM にプロンプトを送信し、応答をストリーミングし、ツールを実行し、最終的な回答に達するまで繰り返すプロセス——に焦点を当てています。汎用的な LLM フレームワークとは異なり、ベクトルストアや RAG パイプラインを含まず、プロダクション環境でツールコールエージェントを実行するために必要な仕組みに集中しています。

動作方法

プロジェクトの核となるのは、LLM とツール実行環境の間のやり取りを管理するステートレスな agent_loop() 関数です。履歴とキューを管理するためのオプションの Agent ラッパーも提供されています。フレームワークは、Anthropic、OpenAI、Gemini、Bedrock を含む 7 つのネイティブなワイヤプロトコルをサポートしており、思考予算やプロンプトキャッシュのブレークポイントといったプロバイダー固有の機能を保持します。

主なアーキテクチャ的特徴:

  • セッションツリー: 履歴はリストではなくツリーとして管理され、ユーザーは会話のターンをフォークしたり、チェックポイントを設定したり、過去のターンを検索したりできます。
  • 拡張機能: 1 つのプラグイン契約により、開発者はツールコールや結果のゲート、変更、非表示、および予算の強制を実現できます。
  • サブエージェント: 子ループにタスクを委任でき、それぞれ独自のモデルとツールを持つことができます。

対象ユーザー

汎用的な LLM オーケストレーションレイヤーのオーバーヘッドなしに、堅牢でプロダクション対応のツールコールループを必要とする Rust 開発者。

主な特徴

  • ネイティブプロトコルサポート: 1 つの OpenAI 互換シャイムではなく、7 つのネイティブプロトコルを実装。
  • ツリー基準の履歴: 以前のターンを破壊せずに、分岐や編集が可能。
  • オフラインテスト: API キーなしでマルチターン会話のスクリプトを記述できる MockProvider を含む。
  • uma Wasm サポート: wasm32-unknown-unknown をサポートし、Cloudflare Workers などの環境にデプロイ可能。
  • 組み込みツール: bash、ファイルシステム操作、検索のためのネイティブツールを標準搭載。
  • 記録可能な実行: GASP リポジトリに追加のみ可能な意味的イベントログとして実行を記録可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト