antoinezambelli/forge

A Python framework for self-hosted LLM tool-calling and multi-step agentic workflows

解決する課題

Forgeは、セルフホスト型LLMのツール呼び出しのための信頼性レイヤーを提供します。これは、ローカルモデル(特に8Bパラメータ前後の小規模モデル)がツールを実行する際に発生しやすい、出力形式の不備、誤ったツールの選択、または構造化されたワークフローの遵守失敗といった不安定さに対処します。

仕組み

Forgeは、LLMとアプリケーションの間に配置されるガードレールのスタックを実装しています。以下の3つの方法で使用できます:

  1. Proxy Server: OpenAIおよびAnthropic APIに対応した、そのまま導入可能なプロキシです。リクエストをインターセプトして透明的にガードレールを適用するため、既存のツール(aiderやClaude Codeなど)のコードを変更することなく、ローカルモデルを使用できます。
  2. WorkflowRunner: ツールと構造化されたエージェントループを定義するためのハイレベルなフレームワークであり、システムプロンプトからコンテキストの圧縮まで、ライフサイクル全体を管理します。
  3. Guardrails Middleware: 既存のカスタムオーケストレーションループに統合可能な、構成可能なツールセットです。

主な技術的メカニズムには以下が含まれます:

  • Rescue Parsing: 非標準的なフォーマット(例:XMLやフェンス付きJSON)から構造化されたツール呼び出しを抽出し、標準的なスキーマに変換します。
  • Response Validation: ツール呼び出しがクライアントに届く前に、定義された仕様に照らして検証します。
  • Retry Loops: 失敗した推論を、モデルへの修正的な「ナッジ(促し)」とともに自動的にリトライします。
  • Synthetic respond Tool: モデルにテキスト応答用の特定のツールを使用するよう強制し、テキスト生成とツール呼び出しの間の一般的な混同を防ぎます。

対象ユーザー

セルフホスト型LLM(Ollama、vLLM、llama.cppなどを使用)を用いてエージェント型アプリケーションを構築しており、巨大なフロンティアモデルに切り替えることなく、ツール呼び出しにプロダクショングレードの信頼性を必要とする開発者。

ハイライト

  • 大幅なパフォーマンス向上: 評価スイートにおいて、8Bローカルモデルの信頼性を1桁台から84%まで引き上げます。
  • 幅広いバックエンドサポート: Ollama、llama-server、Llamafile、vLLM、およびAnthropicと互換性があります。
  • 書き換え不要の統合: プロキシモードにより、既存のAIコーディングハーネスのソースコードを修正することなく強化できます。
  • コンテキスト管理: トークン予算を効率的に管理するための階層的な圧縮戦略が含まれています。