forge: とは何であるか、どのような問題を解決し、なぜ注目を集めているのか
forge: とは何であるか、どのような問題を解決し、なぜ注目を集めているのか
解決する問題
Forgeは、セルフホストされた大規模言語モデル(LLM)がツール呼び出し(tool-calling)を行う際の信頼性レイヤーを提供します。これは、小規模なローカルモデルがツール呼び出しのフォーマットに従えなかったり、未知のツールを呼び出そうとしたり、テキスト生成とツール呼び出しの選択に苦労したりするという一般的な問題に対処します。これらは通常、エージェント的ワークフローにおけるクラッシュや誤った動作につながります。
仕組み
Forgeは、LLMとアプリケーションの間に位置するガードレールシステムとして機能します。信頼性を確保するために、いくつかの手法を採用しています。
- Response Validation: 利用可能なツールの定義済みリストとツール呼び出しを照合し、パラメータを検証します。
- Rescue Parsing: 不完全なレスポンス(例:コードフェンス内のJSONや、MistralやQwenなどの特定のモデル形式)から構造化されたツール呼び出しを抽出し、標準的な形式に変換します。
- Retry Loops: ツール呼び出しが無効な場合、Forgeはモデルに対して修正的な「ナッジ(nudge)」を行い、推論を自動的にリトライします。
- Synthetic Respond Tool: 隠し
respondツールを注入することで、モデルがテキストレスポンスを提供しようとする際にも強制的にツール呼び出しを使用させ、テキストとツール呼び出しが不適切に混在することを防ぎます。 - Workflow Constraints: 開発者が、タスクの実行経路を制限するために、必要なステップ、前提条件、および終了ツールを定義できるようにします。
対象ユーザー
ローカルLLM(Ollama, vLLM, llama.cppなどを経由)またはAnthropicを使用したハイブリッド構成を使用して、エージェント的アプリケーションを構築している開発者向けに設計されています。既存のオーケストレーションロジックを書き換えることなく、8Bクラスのモデルのツール呼び出しの精度を向上させたいと考えている方に特に有用です。
ハイライト
- Proxy Mode: 透明なガードレールを適用することで、OpenAI互換のクライアント(aiderやContinueなど)が、より高性能なモデルと通信しているかのように振る舞わせる、ドロップイン形式のプロキシサーバーです。
- High Performance Lift: 独自の評価スイートにおいて、8Bローカルモデルの信頼性を1桁台から84%まで向上させると主張しています。
- Backend Agnostic: Ollama, llama-server, Llamafile, vLLM, Anthropicを含む幅広いバックエンドをサポートしています。
- Flexible Integration: 完全な
WorkflowRunner、透明なプロキシ、または既存のループ用のスタンドアロンなミドルウェアとして使用できます。
Sources
- undefinedantoinezambelli/forge