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)封装了特定提供商的端点和连接。切换提供商只需一行更改。 - 代理 – 长期运行、使用工具的执行者,具有记忆、检查点上下文和沙盒 JavaScript 执行。代理运行三阶段流水线:蒸馏器 → 执行器(RLM 循环)→ 响应器。
- 流程 – 由 LLM 驱动的节点的类型化有向无环图。节点可以分支、循环、并行运行,框架会自动优化独立节点。
- 优化器 – 内置支持少样本引导、GEPA 和可重用的优化器工件。
- 跨语言核心 – 相同的 Ax IR 被编译成每种目标语言的本地包。源 TypeScript 包(
@ax-llm/ax)是规范实现;生成的 Python(axllm)、Java(dev.axllm:ax)、C++(axllm::axllm)、Go 和 Rust crate 都检入到仓库中。
如何使用(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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目