ax-llm/ax
The pretty much "official" DSPy framework for Typescript
Ax – 構造化LLMアプリのための多言語フレームワーク
概要 – Ax(発音は「ax-llm」)は、大規模言語モデル(LLM)との型付き対話を一度定義すれば、同じコードをTypeScript/JavaScript、Python、Java、C++、Go、Rustなど多くの言語で実行できるライブラリです。シグネチャ(入出力スキーマ)を宣言するための小さなDSLを提供し、その記述を、サポートされているプロバイダー(OpenAI、Anthropic、Geminiなど)と通信する言語固有のクライアントライブラリにコンパイルします。
主要な概念
- シグネチャ – 文字列DSL、流暢な
f()ビルダー、または任意のStandard Schema v1バリデーター(Zod、Valibot、ArkType)を使用して、リクエスト/レスポンスの形状を宣言します。フレームワークはモデルの出力を解析して検証し、型が保証された結果を提供します。 - デプロイメントプロファイル – 名前付きプロファイル(例:
openai、together、deepseek)は、プロバイダー固有のエンドポイントと配線をカプセル化します。プロバイダーの切り替えは1行の変更で可能です。 - エージェント – メモリ、チェックポイントされたコンテキスト、サンドボックス化されたJavaScript実行を備えた、長期実行・ツール使用型アクターです。エージェントは3段階のパイプライン(蒸留器→実行器(RLMループ)→応答器)を実行します。
- フロー – LLM駆動ノードの型付き有向非巡回グラフです。ノードは分岐、ループ、並列実行が可能で、フレームワークは独立したノードを自動的に最適化します。
- オプティマイザー – Few-shotブートストラップ、GEPA、再利用可能なオプティマイザーアーティファクトの組み込みサポート。
- クロスランゲージコア – 同じAx IRが各ターゲット言語のネイティブパッケージにコンパイルされます。ソースのTypeScriptパッケージ(
@ax-llm/ax)が正規の実装であり、生成されたPython(axllm)、Java(dev.axllm:ax)、C++(axllm::axllm)、Go、Rustクレートはリポジトリにチェックインされています。
使用方法(TypeScriptの例)
import { ai, ax } from "@ax-llm/ax";
const llm = ai({ name: "openai", apiKey: process.env.OPENAI_APIKEY });
const classify = ax(
'review:string -> sentiment:class "positive, negative, neutral"'
);
const { sentiment } = await classify.forward(llm, {
review: "This product is amazing!"
}); // sentiment は "positive" | "negative" | "neutral" として型付けされます
同じシグネチャは、Python、Javaなどでも同一のセマンティクスで実行できます。
重要な機能
- ゼロプロンプトエンジニアリング – DSLがプロンプトを自動生成します。
- デフォルトでストリーミング – 結果は到着次第解析され、早期検証とキャンセルが可能です。
- 型付きマルチモーダルI/O – テキストに加えて
image、audio、fileフィールドをサポートします。 - ツール(ReAct)統合 – モデルが呼び出せる関数を宣言できます。
- サンドボックス化されたJSランタイム – エージェントは生成されたJavaScriptを、細かい権限を持つ強化された環境で実行します。
- メモリとスキル – エージェントは実行中にベクターストアやスキルライブラリを照会できます。
- パフォーマンス意識 – ホットパスはプロバイダーSDKの薄いラッパーであり、ベンチマークでは生の呼び出しに近いレイテンシを示しています。
はじめに
- npmでTypeScriptパッケージをインストールします(
npm i @ax-llm/ax)。 - 同梱の例を
npm run example -- <language> <path>で実行します(例:npm run example -- python src/examples/python/generation/axgen-openai.py)。 - 他の言語では、公開されているパッケージ(
pip install axllm、Maven Central、crates.ioなど)を追加し、同じシンボル(ai、ax、agent、flow)をインポートします。
対象読者
- 言語間で型安全性を求める、本番LLMサービスを構築する開発者。
- モデル契約の単一の真実源を必要とし、コード変更なしでプロバイダーを切り替えたいチーム。
- メモリ、ツール使用、サンドボックス実行を備えたエージェントを必要とするプロジェクト。
リンク
- npm: https://www.npmjs.com/package/@ax-llm/ax
- PyPI: https://pypi.org/project/axllm/
- crates.io: https://crates.io/crates/axllm
- Maven Central: https://central.sonatype.com/artifact/dev.axllm/ax
- Discordコミュニティ: https://discord.gg/DSHg3dU7dW
上記の詳細はすべて、リポジトリのREADMEから直接取得しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト