关于 Astria
Astria 使用 Rust 和 tree-sitter 确定性提取代码,构建本地 SQLite 知识图谱。它面向需要定位实现、检查关系并依据源码证据评估变更的开发者和编码 Agent;结构分析无需 API 密钥。
主要功能
- 01本地 SQLite 代码图谱
- 02基于 Rust 和 tree-sitter 的确定性提取
- 03查询符号及其关系
- 04变更影响分析
- 05证据类别与源码位置
- 06可选的本地嵌入和语义增强
适用场景
- 01查找某项行为的实现位置
- 02追踪代码符号之间的关系
- 03编辑前检查图谱可达的影响范围
MCP 相关
Astria 通过与命令行相同的检索引擎提供 MCP 查询。README 提及 Agent 集成,但未说明 MCP 工具或传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
查找实现、检查其关系,并在编辑前评估变更。Astria 使用确定性的 Rust/tree-sitter 提取机制,构建本地 SQLite 知识图谱。CLI 和 MCP 查询使用相同的检索引擎;源代码位置和证据类别让结果可供检查。结构分析无需 API 密钥。本地嵌入和远程语义增强均为可选功能。
安装
npm install -g @nodesify/astria
需要 Node.js >= 22。软件包附带预构建的原生二进制文件;安装无需 Rust 工具链。macOS/Linux 也可以使用 brew install nodesify/tap/astria(tap)。
Intel Mac(darwin-x64)、musl Linux 和 windows-arm64 构建不包含本地嵌入功能,因为 ONNX Runtime 在这些平台上没有预构建运行时。结构分析仍可正常使用;run --embed 会提示不支持嵌入功能。运行 astria stats --json 查看 embeddingsSupported。
使用图谱
astria run . # build .astria/
astria map # orient by source modules
astria query "where is request authentication implemented"
astria explain <node-id> # inspect a returned symbol
astria path <caller-id> <callee-id> # follow relationships
astria affected <node-id> # assess a proposed change
astria update . # refresh after editing
使用图谱返回的节点 ID。请对照链接的源代码确认重要结果:根据名称推导的调用/导入绑定标记为 RESOLVED,存在歧义的目标则标记为 INFERRED。--detail high 会将遍历范围限制在 EXTRACTED/DECLARED 事实内。affected 报告图谱中的可达关系,但无法证明运行时行为。
使用 .astriaignore 排除文件(采用 gitignore 语法)。图谱和报告存放在 .astria/ 下;阅读 graph_report.md 了解概况。未变更的源文件会复用提取缓存,而更新操作会根据当前语料库协调引用。升级后,运行 astria update .,刷新针对限定调用目标的缓存提取结果。
指南与证据
评估工具会分别衡量文件和声明检索、交付的 token 数、搜索/读取成本以及图谱构建时间。历史对比使用了小型、经过测试的外部数据集,并以单次搜索作为基准下限。新的 Requests 和 Commander 问题由 Agent 基于源材料编写,在首次明确评估之前会予以保留且不进行测试。没有任何结果能证明其在完整的 Agent 任务中具有普遍优势或节省成本。
架构与语言
采用 Rust 工作区,包含 20 个 crate,另有一个 Node.js CLI。使用 42 种已注册的语言配置;确切的解析器覆盖范围和可选的 lang-* 构建功能详见语言支持。有关流水线、缓存和证据约定,请参阅 ARCHITECTURE.md。
Astria 是受 Graphify 启发的独立实现,与该项目无关联,也未获其认可。
从源代码构建
# Build Rust core
cargo build --release
# Copy the native library for the source CLI (Linux)
mkdir -p packages/astria-cli/dist
cp target/release/libastria_napi.so packages/astria-cli/dist/astria.node
# Build Node.js CLI
cd packages/astria-cli && npm ci && npm run build
macOS 和 Windows 的原生构件路径请参阅贡献指南。
需要 Rust 1.88+(在工作区中声明为 rust-version)和 Node.js >= 22。
许可证
MIT — 详见 LICENSE。
欢迎贡献,贡献内容将依据贡献者许可协议获得许可——请参阅 CONTRIBUTING.md 开始参与。
安装默认采用项目范围:astria install --platform codex --scope project。若要进行用户范围的集成,请显式使用 --scope user。设置或升级后运行 astria doctor。支持的平台、升级、备份/恢复和完整卸载流程,请参阅安装生命周期指南。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。