一句话说清楚

Axon 是一个代码智能引擎——它把你整个代码库解析成知识图谱,然后通过 MCP 协议暴露给 Claude Code、Cursor 这些 AI Agent。

你的 Agent 从此不再是"盲改代码",而是改之前就知道:这个函数被谁调用了、改动会影响哪些模块、有没有死代码可以删。

它解决的真问题

用过 Claude Code 或 Codex 的人都有这个体验:Agent 改了一个函数的返回值,然后 CI 炸了。为什么?因为它根本不知道有 47 个地方依赖这个返回类型。

这不是 Agent 笨,是它天生的缺陷:

传统做法是人肉 review Agent 的 diff,但这不就回到了原点吗?

Axon 的解法:在索引阶段就把代码结构预计算好,Agent 每次 tool call 返回的都是完整、可操作的上下文。

12 阶段分析管线

Axon 的核心是一条 12 阶段的静态分析管线,跑一次就把代码库"透视"了:

阶段干什么
文件遍历按 .gitignore 规则扫描,识别支持的语言
结构提取构建文件/文件夹层级,建立 CONTAINS 关系
AST 解析tree-sitter 提取函数、类、方法、接口、枚举
Import 解析把 import 语句映射到实际文件(相对/绝对/裸模块)
调用追踪映射函数调用关系,带置信度分数,过滤 138 个语言内置函数
继承分析追踪 class 继承(EXTENDS)和接口实现(IMPLEMENTS)
类型分析提取参数、返回值、变量标注中的类型引用
社区检测Leiden 算法自动聚类,发现功能模块边界
执行流追踪框架感知的入口检测 + BFS 流程追踪
死代码检测多轮分析,理解装饰器、Protocol、override
变更耦合分析 6 个月 git 历史,找出总是同时改的文件
向量嵌入384 维向量,支持语义搜索(可跳过)

整个过程对大多数仓库 5 秒内完成,全本地运行,零云端依赖。

给 Agent 的 7 把武器

Axon 通过 MCP 暴露了 7 个工具,每个都直击 Agent 的痛点:

axon_query — 混合搜索

BM25 全文搜索 + 语义向量搜索 + 模糊匹配,三路融合。搜 "auth handler" 不是返回一堆文件名,而是按执行流分组的结果。Agent 一次调用就能理解"认证相关代码在哪里、怎么跑的"。

axon_context — 360° 全景

输入一个符号名,返回:谁调用了它、它调用了谁、类型引用关系、置信度标签、是不是死代码。相当于给 Agent 一张函数的"人际关系图"。

axon_impact — 爆炸半径

最实用的工具。准备改一个函数?它按深度分组告诉你影响范围:

每条边都有置信度分数(1.0 精确匹配,0.8 接收者方法,0.5 模糊匹配),帮 Agent 排优先级。

axon_dead_code — 死代码扫描

不是简单的"零调用者"判断。它理解框架入口点、导出符号、构造器、dunder 方法、装饰器、Protocol 接口契约。不会把 __init__@app.route 标记为死代码。

axon_detect_changes — diff 到影响

输入一个 git diff,输出受影响的符号和执行流。PR review 时 Agent 可以自动知道"这次改动影响了哪些东西"。

axon_cypher — 图查询

直接写 Cypher 查询语句查知识图谱。高级用户可以做任意复杂的结构查询。

axon_list_repos — 仓库列表

查看所有已索引的仓库和统计信息。

不只是 CLI — 可视化 Dashboard

一行命令 axon ui 启动交互式 Web Dashboard(localhost:8420),三个视图:

还有命令面板(Cmd+K)、快捷键、流程追踪动画、图谱小地图。支持 --watch 模式实时更新。

三步上手

# 1. 安装
pip install axoniq
# 或者用 uv(推荐)
uv add axoniq

# 2. 索引你的项目
cd your-project
axon analyze .

# 3. 可视化探索
axon ui

接入 Coding Agent

Claude Code

在项目根目录的 .mcp.json 里加:

{
  "mcpServers": {
    "axon": {
      "command": "axon",
      "args": ["serve", "--watch"]
    }
  }
}

或者一行命令:claude mcp add axon -- axon serve --watch

Cursor

在 MCP settings 里加同样的配置。

共享模式

axon host --watch   # 启动共享主机:UI + 多 MCP 客户端

--watch 用 Rust 写的文件监听器(watchfiles),500ms 去抖。文件级阶段(解析、import、调用、类型)即时触发,全局阶段(社区、流程、死代码)每 30 秒批量更新。

为什么这个设计聪明

Axon 最聪明的地方在于:把重活放在索引阶段,让 tool call 变得极轻。

传统做法:Agent 改代码 → grep 找调用者 → 漏了 → CI 炸。Agent 的 10 次搜索可能还漏掉间接依赖。

Axon 做法:索引时预计算好所有关系 → Agent 一次 tool call 拿到完整影响范围 → 安全修改。

三个核心收益:

和其他方案对比

能力grep/ripgrepLSP硬塞上下文Axon
可视化图谱✅ Web Dashboard
全文搜索✅ BM25+向量混合
调用图部分看运气✅ 带置信度
死代码检测✅ 多轮框架感知
执行流追踪✅ 入口→流
影响分析✅ 深度分组
MCP 集成部分N/A✅ 完整 MCP
离线运行

当前限制

适用场景

总结

Axon 解决的是 Coding Agent 的"盲区"问题——Agent 能写代码但不理解代码结构。通过预计算知识图谱 + MCP 暴露,它让 Agent 在做修改决策时有了完整的结构视野。

714 Star 不算多,但这个方向非常对。随着 AI Agent 越来越多地参与实际编码,"Agent 需要代码结构理解"会成为刚需。Axon 目前是这个赛道里最完整的开源方案。

项目地址:github.com/harshkedia177/axon

PyPI:pypi.org/project/axoniq