内容
<!--
SPDX-FileCopyrightText: 2025-2026 CodeNib Contributors
SPDX-License-Identifier: Apache-2.0
-->
<div align="center">
<img src="https://raw.githubusercontent.com/sysevol-ai/CodeNib/main/assets/codenib_logo.svg" alt="CodeNib" width="560">
<h1>代码片段服务系统:面向编程智能体的多视角数据系统</h1>
<p>
支持增量编译、显式每视图清单和智能体原生上下文服务。
</p>
<p>
<a href="#quickstart">快速开始</a>
·
<a href="https://codenib.ai">官网</a>
·
<a href="https://discord.gg/ySer6CGn4">Discord</a>
·
<a href="https://docs.codenib.ai/">文档</a>
·
<a href="https://docs.codenib.ai/mcp/">MCP</a>
·
<a href="https://docs.codenib.ai/language_capabilities/">语言支持</a>
</p>
<p>
<a href="https://github.com/sysevol-ai/CodeNib/actions/workflows/ci.yml"><img src="https://github.com/sysevol-ai/CodeNib/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="https://github.com/sysevol-ai/CodeNib/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
<a href="https://github.com/sysevol-ai/CodeNib/blob/main/pyproject.toml"><img src="https://img.shields.io/badge/Python-3.10%2B-3776AB.svg" alt="Python 3.10+"></a>
<img src="https://img.shields.io/badge/Release-Developer_Preview-EA580C.svg" alt="开发者预览版">
</p>
</div>
CodeNib 是一个面向编程智能体的多视角数据系统,用于服务代码仓库上下文。其原生运行时编译checkout为清单链接的词法、语义、结构和静态导航视图,增量维护支持的转换,并通过 MCP、LSP 形似的提供者、Python 和 HTTP API 提供有限源证据。
Wiki、Ask 视图和依赖图是该运行时检查客户端,而不是系统边界。核心实现位于 CodeNib 中;可选模型端点和语言服务器是提供者,而不是主机代理或代码 Wiki 框架。
## 系统架构
| 层 | 责任 |
|---|---|
| 增量编译器 | 分割源并物化 BM25、稠密、图和导航视图;重用或修复支持的工件,并在无法容纳更新时重建 |
| 视图清单 | 独立记录每个视图的仓库身份、源指纹、构建者配置文件、功能、状态和工件位置 |
| 上下文服务 | 执行词法、语义、混合、重排名和结构化查询计划,同时保留仓库相对源位置 |
| 智能体运行时 | 暴露功能感知的 MCP 和 LSP 形似工具,组装有限证据,并返回智能体和人类可以检查的引用 |
```text
仓库变更
-> 物化或修复受影响的视图
-> 发布功能承载的清单
-> 计划仓库查询
-> 提供有限的、源链接的上下文
```
在后续提交中,CodeNib 可以重用不变的向量内容并修补支持的图转换,粒度为文件或符号。不支持、不一致或未经验证的转换会回退到重新构建,而不是发布部分更新的视图。
## 快速开始
需要 Python 3.10+ 和 Git。
```bash
pip install codenib
codenib wiki /path/to/repository
```
CodeNib 检测仓库语言,在 `~/.codenib/repositories` 下构建可重用的索引,启动本地 Wiki,并打开 [http://localhost:3000](http://localhost:3000)。轮子包括生产 Wiki 前端,因此正常使用不需要 Node.js 或 npm,目标仓库保持不变。该命令使用智能体使用的相同编译器和服务运行时。设置 `CODENIB_HOME` 以重定位状态。
检查环境或索引而不打开 Wiki:
```bash
codenib doctor --require core --require wiki
codenib index /path/to/repository
```
参见 [快速开始](https://docs.codenib.ai/quickstart/) 以获取端口、进阶索引和故障排除。
<p align="center">
<img src="https://raw.githubusercontent.com/sysevol-ai/CodeNib/main/assets/codenib_wiki.png" alt="CodeNib Wiki 显示 Caddy 的源链接反向代理指南" width="100%">
</p>
## 服务智能体
安装 MCP 额外包,构建一次,并通过 stdio 提供相同的仓库清单:
```bash
pip install "codenib[mcp]"
codenib index /path/to/repository
codenib mcp /path/to/repository
```
MCP 服务器宣传其完整工具集,并使用编译的清单决定哪些调用具有新鲜的后台视图。因此,智能体可以重用可用的仓库工作,而不是通过无界 `grep` 和 `read` 环重建上下文,而不可用的搜索会显式失败。BM25、语义、正则表达式、Zoekt、依赖和静态导航结果保留源位置以供后续读取和引用。参见 [MCP 服务器](https://docs.codenib.ai/mcp/) 以获取客户端配置和工具合同。
## CodeNib 提供的内容
| 界面 | 目的 |
|---|---|
| 增量编译器 | 构建独立管理的视图,重用不变内容,修复支持的转换,并在边界外保守重建 |
| 智能体上下文运行时 | 计划功能感知的检索和导航,然后组装有限的源链接证据 |
| 检索 | BM25、稠密向量、正则表达式/trigram、Zoekt、融合和重排名路径 |
| 结构化上下文 | 带有源位置和类型边的 SCIP/LSP 支持的符号图 |
| MCP 和 LSP 形似工具 | 为编程智能体提供一个清单,而不将运行时绑定到一个智能体框架 |
| 本地检查 | 通过 Wiki 页面、Ask 答案、引用和依赖图审计相同的上下文 |
| 评估框架 | 在相同的工件上衡量检索、导航、增量维护和上下文策略 |
语言支持因界面而异。生成的 [功能矩阵](https://docs.codenib.ai/language_capabilities/) 记录了分块、图、增量和 C++ 解码器支持。
## 文档
- [快速开始](https://docs.codenib.ai/quickstart/)
- [MCP 服务器](https://docs.codenib.ai/mcp/)
- [Web UI](https://docs.codenib.ai/web_demo/)
- [语言支持](https://docs.codenib.ai/language_capabilities/)
- [概念和开发指南](https://docs.codenib.ai/)
使用以下命令在本地构建文档站点:
```bash
pip install "codenib[dev]"
mkdocs serve
```
## 开发
```bash
git clone https://github.com/sysevol-ai/CodeNib.git
cd CodeNib
make dev
make test
```
测试套件分为单元测试、集成测试、串行集成测试、核心测试、图消费者测试和慢速测试。在运行依赖于凭证或工具链的测试层之前,请参见 [CI/CD](https://docs.codenib.ai/ci_cd/)。
## 状态
CodeNib `0.1.0` 是一个开发者预览版。CLI 和清单格式可用,但公共接口在稳定版本发布之前可能会更改。历史研究工件保留其发布的 dataset 标识符;维护的包、导入命名空间、命令和仓库使用 `CodeNib`。参见 [命名](https://docs.codenib.ai/branding/)。
## 引用
如果您在研究中使用 CodeNib,请引用我们的 [arXiv 论文](https://arxiv.org/abs/2607.25431):
```bibtex
@misc{yu2026codenibmultiviewdataserving,
title={CodeNib: 面向编程智能体的多视角数据系统},
author={钟铭宇 and 恒嘉宇 and 博秦元 and 诗婷赵 and 逸召陈 and Aryan Dokania and Mihir Jagtap and 嘉宇常 and 亦涛马 and Yash Jayswal and 文涛尼 and 何佳张 and 昭玲陈 and 刚达邓 and 继深赵},
year={2026},
eprint={2607.25431},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2607.25431},
}
```
## 项目
[官网](https://codenib.ai)
·
[更新日志](https://github.com/sysevol-ai/CodeNib/blob/main/CHANGELOG.md)
·
[贡献指南](https://github.com/sysevol-ai/CodeNib/blob/main/CONTRIBUTING.md)
## 许可证
CodeNib 在 [Apache License, Version 2.0](https://github.com/sysevol-ai/CodeNib/blob/main/LICENSE) 下许可。