Axiom 是一个面向大语言模型(LLM)的精确符号与数值数学工具,基于 Giac/Xcas 计算机代数系统,通过 Model Context Protocol(MCP)服务器和 shell 命令两种方式提供服务。它以 axiom-math 为名发布在 npm 上。
用途
LLM 在计算中经常出错,尤其是在符号数学、精确分数和多步问题方面。Axiom 通过两层引擎提供经过验证的精确结果:math.js 用于快速数值计算(算术、三角函数、矩阵),Giac/Xcas WASM 用于符号计算(微积分、代数、方程求解)。
主要能力
Axiom 暴露 3 个 MCP 工具:
- compute:所有数学计算的统一网关。传入 CAS 风格的问题字符串,路由器解析并分派到正确的引擎。它识别 CAS 风格的动词并覆盖多个领域,未识别的输入回退到原始 Giac/Xcas 求值。
- verify:独立检查数学命题。返回四个字段:verified、evaluated、confidence、checks_performed。其中 evaluated 应首先阅读,当没有检查产生可用答案时为 false,此时 verified: false 表示“未知”而非“反驳”。
- plot:将二维函数渲染为 SVG 图像,返回 base64 编码的 SVG(包含坐标轴、网格、标签、渐近线检测)以及文本说明。
服务器还注册了引导式 MCP 提示,用于链接 compute/verify 的多步工作流:solve-step-by-step、analyze-function、verify-identity、convert-units、analyze-dataset、solve-ode-system、regression-workflow。
使用方式
作为 CLI 可直接使用,作为 MCP 服务器可配置到任何客户端。作为 agent skill,可放入 skills/axiom-math/SKILL.md,该文件教导 agent 三个命令及其退出码。
安装:包名为 axiom-math,正常使用无需安装,npx 会获取并缓存。也可安装使 axiom-math 命令位于 PATH 中。需要 Node.js >= 20。首次运行下载约 3.8 MB(CAS 引擎编译为 WebAssembly),耗时几秒;后续运行从 npx 缓存读取。
CLI(STDIO 传输):同一二进制文件可作为一次性 CLI 使用,无参数时是 MCP 服务器,带子命令时运行一次计算并退出。退出码:0 成功,1 工具或用法错误,2 verify 检查了命题且为假。2 是数学判定,因此未检查的命题不使用它:解析失败、CAS 无法求值或上标有多种读法的命题以 1 退出且 stdout 无输出。
HTTP 传输是无状态的:每个 POST /mcp 独立处理,不发放 Mcp-Session-Id,请求间不保留会话状态。服务器不发送服务器发起的通知。
适用场景
适用于需要精确符号数学计算的 LLM 应用,如微积分、方程求解、线性代数、组合数学、命题验证等。可作为模型生成结果的第二意见。
限制
- 结果超过 100,000 字符会被拒绝返回。
- 某些输入会被拒绝而非回答:算术求值为 NaN(如 0/0)是错误;无限结果会带警告返回;t 检验需要变化;列联表需要非负计数、无全零行或列、行等长、多于一行一列;单因素方差分析需要组内变化且观测数多于组数;数值方法在表达式不依赖于求解或积分的变量时被拒绝,或 CAS 符号回答而非数值时被拒绝。
- 微分方程组以列表形式书写时会被重写为矩阵形式,返回每个函数的解,组件按方程书写顺序返回,JSON 信封在 components 字段中命名它们。初始条件必须为每个函数在同一给定,或完全不给出。部分集合被拒绝。非线性系统、系数依赖自变量、导数阶数高于一、超过九个方程、CAS 无法完成的系统均被拒绝。
- 安全:无认证和速率限制。默认绑定地址 127.0.0.1,但 docker/docker-compose.yml 设置 MCP_HOST=0.0.0.0。若暴露端口,应置于认证和限流的反向代理之后。POST /mcp 还验证 Host 头是否在允许列表中(默认 localhost、127.0.0.1、[::1])以阻止 DNS 重绑定。若通过非回环地址访问,需设置 MCP_ALLOWED_HOSTS,否则所有 POST /mcp 请求将得到 403。此检查不是认证。
- 许可证:GNU General Public License v3.0 或更高版本。Axiom 嵌入 Giac/Xcas(GPL-3.0-or-later),因此组合作品携带相同许可证。通过 MCP 与 Axiom 通信的 agent 不受 GPL 影响,因为它们是独立程序。重新分发 Axiom 本身时需遵守 copyleft 条款。
基准测试
基准测试结果(GLM-5.1,2026 年 5 月):Phase 0 评分器(LaTeX/Unicode 规范化 + 符号等价)是所有数据集的主要价值驱动。CAS-quick 从 26.7%(4 月评分器前)提升到 70%(评分器后)。Omni-MATH ≥7 对当前 LLM+CAS 设置已达上限。完整结果见 benchmark/results/ 和 docs/superpowers/specs/。
构建与测试
WASM 构建(Giac):运行 scripts/build-giac-wasm.sh,使用 docker build 构建 docker/build-giac-wasm/Dockerfile,并将 giac.wasm.js 直接写入 src/server/giac/。需要本地运行 Docker Desktop 或其他 Docker 守护进程。 测试:npm test 运行单元测试,无需构建;npm run test:integration 先构建再测试打包的 dist/ 输出。单元+集成套件 100% 通过率。
项目状态
欢迎错误报告和拉取请求,见 CONTRIBUTING.md。项目经过五个阶段(Phase 0–4)的广泛消融实验,一些实验方法被测试并拒绝,相关文档保留为项目档案。