ontomics 是一个为编码智能体提供代码库领域知识的语义索引工具。它的目标不是替代搜索或 LSP,而是回答搜索和 LSP 无法回答的问题:这个代码库中有哪些领域概念、它们如何关联、形成了哪些命名约定、领域词汇自上个版本以来发生了什么变化、哪些函数在行为上相似(无论命名如何)。官方称,使用 ontomics 后,编码智能体可以用一次工具调用替代 19 次调用,token 消耗约减少 20 倍,智能体搜索时间约缩短 10 倍。
主要能力 ontomics 会为项目的领域构建语义索引:将相关符号聚类为概念、根据使用频率检测命名约定、解析缩写、按行为相似性对函数分组,并跟踪词汇随时间的变化。该索引可导出为可移植产物,用于在其他仓库中引导约定。
在行为相似性方面,ontomics 使用 CodeRankEmbed(768 维,对比式代码检索)嵌入原始函数体,并按行为相似性聚类。这能揭示命名和调用图都无法暴露的关系,例如同一函数出现在两个位置且相似度分数不同,提示可能存在实现重复。
使用方式 ontomics 安装一次即可在所有项目中使用,无需配置:首次运行时自动检测仓库并建立索引。它要求目标是一个 git 仓库(存在 .git/ 目录),会拒绝索引 home、root 或临时目录;如需索引非 git 目录,可传入 --force。
安装二进制文件的方式包括:npm(macOS/Linux)、macOS(Homebrew)、Shell 安装器(macOS/Linux)。注册到 harness 的方式包括 pi-coding-agent;团队共享时可在仓库根目录放置 .mcp.json。
支持的语言 Python、TypeScript、JavaScript、Rust,根据文件扩展名自动检测。
工作原理 ontomics 完全在本机运行多阶段流水线,无需 API 密钥:
- Parse:tree-sitter 从源文件中提取每个标识符、签名和调用点
- Analyze:TF-IDF 评分识别领域特定概念并检测命名约定
- Embed(概念):BGE-small(384 维)按语义相似性聚类相关概念
- Embed(逻辑):CodeRankEmbed(768 维)嵌入原始函数体并按行为相似性聚类
- Centrality:PageRank 按结构重要性对实体评分
两个嵌入模型在首次运行时下载一次并缓存在本地。索引位于 <repo>/.ontomics/index.db,后续启动从缓存加载并监视文件变化。配置通过仓库根目录的 .ontomics/config.toml 进行,所有字段都有合理默认值,完整设计约定见 SPEC.md。
适用场景与限制 ontomics 适合需要让编码智能体快速理解代码库领域概念、命名约定和词汇演变的场景,也适合在多个仓库之间复用约定。其限制包括:需要 git 仓库(非 git 目录需 --force),目前仅支持 Python、TypeScript、JavaScript、Rust 四种语言;关于收费、价格、平台支持范围等更多信息,资料中暂未提供。