Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

xiaoletian64/obs-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

90 Commits

Repository files navigation

version
languages tools speed license

obs-code

代码知识图谱
让 AI 改代码之前,先知道改哪里会牵连什么

MCP Claude Cursor Codex OpenCode


没有 obs-code vs 有 obs-code

❌ 没有 obs-code

你说:修复用户登录的 bug
AI 的做法:
 1. 读 200 个文件
 2. 上下文爆了
 3. 改了 handleLogin
 4. 但不知道 authRouter 也调了它
 5. 线上炸了 💥
结果:改了 A,B 炸了

✅ 有 obs-code

你说:修复用户登录的 bug
AI 的做法:
 1. obs_impact("handleLogin")
 2. 精准知道 3 个调用方
 3. 知道 2 个被调用方
 4. 只看 5 个文件
 5. 改完安全上线 🚀
结果:改一个,不漏一个

核心能力矩阵

find
符号定位
5 级降级搜索
精确→模糊→全文→中文→多维
impact
影响分析
BFS 调用图遍历
调用者+被调用者+源码
plan
修改计划
需求→文件清单
直接交给 AI 编辑
map
功能地图
功能→阅读链路
分阶段+风险报告
wiki
LLM Wiki
自动生成文档
30秒了解任何项目
web
可视化
力导向图谱动画
交互式探索
domain
业务域分析
识别业务域
提取业务流程
tour
学习之旅
引导式架构演练
按依赖顺序学习
semantic
语义搜索
按名称和含义搜索
意图识别+多维度
diff
差异分析
变更影响评估
风险等级预测
layer
分层可视化
架构层自动分组
层间连接分析
concept
概念解释
12种编程模式
上下文解释

工作流对比

┌─────────────────────────────────────────────────────────────────┐
│ 传统 AI 改代码流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 需求 ──→ 读全仓库 ──→ 上下文爆 ──→ 瞎猜 ──→ 改漏 ──→ 💥 │
│ │
│ 耗时:30min+ │ 正确率:40-60% │ 遗漏率:高 │
│ │
└─────────────────────────────────────────────────────────────────┘
 ⬇️ obs-code ⬇️
┌─────────────────────────────────────────────────────────────────┐
│ obs-code 增强流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 需求 ──→ obs_plan ──→ 精准文件清单 ──→ AI 只读相关文件 ──→ ✅ │
│ │ │
│ ├─→ obs_impact ──→ 调用链 ──→ 知道牵连 ──→ ✅ │
│ │ │
│ └─→ obs_feature_map ──→ 阅读链路 ──→ 不遗漏 ──→ ✅ │
│ │
│ 耗时:2min │ 正确率:85-95% │ 遗漏率:极低 │
│ │
└─────────────────────────────────────────────────────────────────┘

性能基准

索引速度

项目 规模 节点 速度
Express 简单 376 6 15 f/s
Axios 中等 636 1,224 267 f/s
NestJS 复杂 5,977 11,580 244 f/s
Vitest 大型 10,054 6,143 33 f/s

搜索策略链(5 级降级)

Level 1 精确匹配 ━━━━━━━━━━━━━━━━━ O(1)
Level 2 模糊匹配 ━━━━━━━━━━━━━━━ FTS5
Level 3 全文搜索 ━━━━━━━━━━━━━ name+doc
Level 4 中文同义词 ━━━━━━━━━━━ 拼音+模糊
Level 5 多维组合 ━━━━━━━━━ 拆分+前后缀

每个级别都支持:file_types directories symbol_types regex


LLM Wiki — 30 秒看懂任何项目

.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 | bash
obs 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 # 全部

3 步上手

# 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 编程模式解释

Web 可视化

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 改代码从"盲人摸象"变成"精准手术"

Star Issues

About

代码知识图谱 — 让 AI 改代码之前,先知道改哪里会牵连什么 | Code knowledge graph for AI-assisted development

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /