version
languages
tools
speed
license
代码知识图谱
让 AI 改代码之前,先知道改哪里会牵连什么
MCP Claude Cursor Codex OpenCode
┌─────────────────────────────────────────────────────────────────┐
│ 传统 AI 改代码流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 需求 ──→ 读全仓库 ──→ 上下文爆 ──→ 瞎猜 ──→ 改漏 ──→ 💥 │
│ │
│ 耗时:30min+ │ 正确率:40-60% │ 遗漏率:高 │
│ │
└─────────────────────────────────────────────────────────────────┘
⬇️ obs-code ⬇️
┌─────────────────────────────────────────────────────────────────┐
│ obs-code 增强流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 需求 ──→ obs_plan ──→ 精准文件清单 ──→ AI 只读相关文件 ──→ ✅ │
│ │ │
│ ├─→ obs_impact ──→ 调用链 ──→ 知道牵连 ──→ ✅ │
│ │ │
│ └─→ obs_feature_map ──→ 阅读链路 ──→ 不遗漏 ──→ ✅ │
│ │
│ 耗时:2min │ 正确率:85-95% │ 遗漏率:极低 │
│ │
└─────────────────────────────────────────────────────────────────┘
|
每个级别都支持: |
.obs-code/wiki/
├── AGENTS.md ─→ AI 工具读这个:什么时候用哪个工具
├── project.md ─→ 项目概览:语言、规模、关键文件
├── architecture.md ─→ 架构:分层、模式、入口点
├── connections.md ─→ 连接:Hub / Bridge / 主调用链
└── manifest.json ─→ 元数据:索引时间、统计
connections.md 自动生成的调用链热点:
## Hubs(高扇入 — 改这里影响最大)
exec ← 被 30 处调用(SQL 执行核心)
parse ← 被 20 处调用(解析核心)
searchByName ← 被 11 处调用
## Bridges(跨层调用 — 集成测试重点)
feature-map → store 88 calls
graph-sync → store 12 calls
## Main Paths(主调用链 — 理解核心逻辑)
buildFeatureMap → readCandidates → getById → rowToNode
obs-code 现在把 CodeGraph 的"先定义扫描边界"思路融合进索引链路:每次索引都会产出结构化 indexEvidence,让 AI 和人都能确认"这次图谱到底扫了什么、跳过了什么"。
{
"filesScanned": 149,
"bytesScanned": 1064907,
"skippedDirectories": [
{ "path": "node_modules", "reason": "default_exclude" },
{ "path": "datasets/feature-map-benchmark/real-projects", "reason": "default_exclude" }
]
}- CLI / MCP / Web UI 三条链路都能传递索引证据
- 默认跳过依赖、构建产物、缓存、fixture、benchmark 真实项目,避免分析图被外部仓库污染
- Web 可视化提供"分析证据"面板,修改前先看扫描范围和跳过原因
- 直接索引某个真实项目根目录时仍会正常分析,不影响 benchmark 单仓库评测
┌─────────────────────────────────────────────────────────────────┐
│ AI 工具层 │
│ Claude Code · Cursor · Codex · OpenCode │
│ ↕ MCP 协议 (stdio/SSE) │
├─────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │obs_find │ │obs_impact│ │obs_plan │ │obs_feature_map │ │
│ │符号搜索 │ │影响分析 │ │需求→计划 │ │功能→阅读链路 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
│ └─────────────┴───────────┴─────────────────┘ │
│ │ 多策略搜索链 │
│ 精确 → 模糊 → FTS5全文 → 中文同义词 → 多维组合 │
├─────────────────────────────────┬───────────────────────────────┤
│ 图谱引擎 │ │
│ ┌────────────┐ ┌────────────┐ │ ┌──────────────┐ │
│ │ 节点查询 │ │ 边遍历 │ │ │ 影响传播引擎 │ │
│ │ getById │ │ getBySource│ │ │ BFS+规则驱动 │ │
│ │ searchBy │ │ getByTarget│ │ │ AI 剪枝 │ │
│ └────────────┘ └────────────┘ │ └──────────────┘ │
├─────────────────────────────────┼───────────────────────────────┤
│ SQLite (WAL + FTS5) │ │
│ nodes · edges · nodes_fts · file_hashes │
├─────────────────────────────────────────────────────────────────┤
│ 解析层 │
│ Tree-sitter (Go/Rust/Java/C++) · 增强正则 (TS/JS/Python) │
│ 文件监听 (chokidar) · 增量重解析 │
├─────────────────────────────────────────────────────────────────┤
│ 代码仓库 — 14 种语言 │
│ TS · JS · Python · Go · Rust · Java · Swift · Kotlin │
│ PHP · Ruby · C# · Dart · C/C++ · Lua │
└─────────────────────────────────────────────────────────────────┘
| 功能 | CodeGraph | Understand-Anything | obs-code |
|---|---|---|---|
| 语言支持 | 20+ | 10+ | 15 |
| 框架路由 | 14 | 5+ | 14 |
| 文件监听器 | ✅ | ✅ | ✅ |
| 增量同步 | ✅ | ✅ | ✅ |
| 业务域分析 | ❌ | ✅ | ✅ |
| 学习之旅 | ❌ | ✅ | ✅ |
| 语义搜索 | ❌ | ✅ | ✅ |
| 差异分析 | ❌ | ✅ | ✅ |
| 分层可视化 | ❌ | ✅ | ✅ |
| 概念解释 | ❌ | ✅ | ✅ |
| 死代码检测 | ❌ | ❌ | ✅ |
| 线程分析 | ❌ | ❌ | ✅ |
| 自然语言计划 | ❌ | ❌ | ✅ |
| 中文优化 | ❌ | ❌ | ✅ |
obs-code = CodeGraph + Understand-Anything + 独特功能
curl -fsSL https://raw.githubusercontent.com/xiaoletian64/obs-code/main/install.sh | bashobs install --tool claude # Claude Code obs install --tool codex # OpenAI Codex obs install --tool cursor # Cursor obs install --tool opencode # OpenCode obs install --tool micode # MiMo Code obs install --tool all # 全部
# 1. 索引 obs index /你的项目路径 # 2. 启动 MCP 服务 obs serve --mcp # 3. 在 AI 工具里直接说 请用obs分析 用户登录流程
AI 工具接入后默认建议使用中文输出:分析结论、修改计划、风险说明用中文;代码符号、文件路径、命令保持原文,避免翻译后失真。
| 场景 | 工具 | 输入 | 输出 |
|---|---|---|---|
| 🔍 找符号 | obs_find |
符号名 | 文件:行号 |
| 🔗 查影响 | obs_impact |
符号名 | 调用者+被调用者+源码 |
| 📋 做需求 | obs_plan |
自然语言 | 修改文件清单(abs_path) |
| 🗺️ 读功能 | obs_feature_map |
功能名 | 分阶段阅读链路 |
| 🧵 查入口 | obs_thread |
— | 入口→路由→目标 |
| 🛤️ 找路由 | obs_routes |
— | HTTP 路由+调用链 |
| 🗑️ 清死码 | obs_deadcode |
— | 零调用函数 |
| 📚 生文档 | llm_wiki_generator |
— | project/arch/conn.md |
| 🏢 析业务 | obs_domain |
— | 业务域+流程+步骤 |
| 🎯 导学习 | obs_tour |
— | 引导式学习之旅 |
| 🔍 语搜搜 | obs_semantic_search |
查询 | 语义搜索结果 |
| 📊 差异分析 | obs_diff |
— | 变更影响+风险等级 |
| 🏗️ 分层图 | obs_layers |
— | 架构层可视化 |
| 💡 概念解释 | obs_concepts |
— | 编程模式解释 |
obs web /你的项目路径
# http://localhost:3456- Cytoscape.js 力导向布局 + 800ms 动画
- 节点 hover 放大 + 关联边高亮
- 点击聚焦平滑缩放 + 详情面板
- AI 解释按钮 + 功能梳理阅读链
- 分析证据面板:显示索引范围、跳过目录、扫描文件数
TypeScript
JavaScript
Python
Go
Rust
Java
Swift
Kotlin
PHP
Ruby
C#
Dart
C/C++
Lua
让 AI 改代码从"盲人摸象"变成"精准手术"