ax-llm/ax

The pretty much "official" DSPy framework for Typescript

解決する課題

Axは、LLMアプリケーションを構築するための、言語に依存しない統一されたプログラミングモデルを提供します。TypeScript、Python、Java、C++、Go、Rust向けのネイティブライブラリとしてコンパイルされる単一のセマンティックコアを提供することで、異なるプログラミング言語間での手動のプロンプトエンジニアリングや繰り返しのボイラープレートの必要性を排除します。

仕組み

Axは「Signatures」を使用して、文字列DSLまたは流動的なビルダーを用いて型定義された構造化生成(入力と出力)を定義します。これらのシグネチャは、複数のAIサービス(OpenAI、Anthropic、Geminiなど)をサポートするプロバイダー抽象化を介して実行されます。

より複雑なロジックには、以下を提供します:

  • AxAgent: シグネチャを、サンドボックス化されたJSランタイム、メモリ、スキルを備えたツール使用アクターに変換する3段階のパイプライン(distiller、executor、responder)です。
  • AxFlow: 分岐、ループ、並列実行をサポートし、ノードをプログラムグラフとして連鎖させることを可能にする型定義されたワークフローランナーです。
  • Optimizers: モデルのパフォーマンスを改善するための、GEPAやfew-shot bootstrappingなどのツール。

対象者

複数の言語エコシステムにわたって実行する必要がある堅牢で型安全なLLMアプリケーションを構築する必要がある開発者、または手動のプロンプトエンジニアリングに代わる構造化されたプログラムによる代替手段を求める開発者。

ハイライト

  • 多言語サポート: TypeScript、Python、Java、C++、Go、Rust向けのコンパイル済みネイティブライブラリ。
  • 型定義された構造化生成: 厳格な出力検証と自動リトライのためのZod、Valibot、ArkTypeのサポート。
  • プロバイダー非依存: コードを変更することなく、OpenAI、Anthropic、DeepSeekなどのプロバイダーをシームレスに切り替え可能。
  • 高度なエージェントアーキテクチャ: 長いコンテキストを管理するための再帰的ランタイム(RLM)、サンドボックス実行、統合されたメモリ/スキルを含む。
  • マルチモーダルおよびオーディオ: 画像、オーディオ、リアルタイム音声ストリームの組み込みサポート。
  • Flow-as-Code: 型定義されたグラフやMermaid図を介して複雑なワークフローを定義する機能。