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:一個三階段流水線(distiller、executor、responder),透過沙箱化的 JS 執行階段、記憶體和技能,將簽章轉換為使用工具的角色。
- AxFlow:一個類型化的工作流執行器,允許開發人員將節點鏈接成支援分支、迴圈和並行執行的程式圖。
- Optimizers:用於優化模型效能的工具,例如 GEPA 和 few-shot bootstrapping。
適用對象
需要構建必須在多個語言生態系統中運行的穩健、類型安全型 LLM 應用程式的開發人員,或者希望尋找結構化、程式化方式替代手動提示工程的開發人員。
亮點
- 多語言支援:為 TypeScript、Python、Java、C++、Go 和 Rust 提供編譯後的原生函式庫。
- 類型化結構化生成:支援 Zod、Valibot 和 ArkType,用於嚴格的輸出驗證和自動重試。
- 提供者無關:無需更改程式碼即可在 OpenAI、Anthropic 和 DeepSeek 等提供者之間無縫切換。
- 進階代理架構:包括用於管理長上下文的遞迴執行階段 (RLM)、沙箱執行以及整合的記憶體/技能。
- 多模態與音訊:內建對圖像、音訊和即時語音串流的支援。
- Flow-as-Code:能夠透過類型化圖或甚至是 Mermaid 圖表來定義複雜的工作流。