sourcebridge-ai/sourcebridge
GitHub: sourcebridge-ai/sourcebridge
一个 AI 驱动的代码库理解平台,能自动为陌生系统生成速记、导览、架构图和需求追溯矩阵,帮助团队快速掌握复杂代码的真实运作方式。
Stars: 10 | Forks: 1
SourceBridge.ai
你的代码库早该拥有的实战指南。
[](https://github.com/sourcebridge-ai/sourcebridge/actions/workflows/ci.yml)
[](LICENSE)
[](https://go.dev/)
[](https://github.com/sourcebridge-ai/sourcebridge/releases)
[](https://hub.docker.com/u/sourcebridge)
## 什么是 SourceBridge?
SourceBridge 是一个需求感知的代码理解平台。将它指向任何代码库,它会生成实战指南——速记、学习路径、代码导览、架构图和工作流故事——让你的团队能够理解系统实际上是如何运作的。它还能将需求追溯到代码,运行 AI 驱动的审查,并作为用于 AI agent 集成的 MCP 服务器。
大多数工具帮助你搜索代码。**SourceBridge 帮助你理解系统。**
更多截图
### 速记
### 管理监控
### 语义搜索
## 核心功能
- **代码索引** -- 基于 Tree-sitter 的解析,支持 Go、Python、TypeScript、JavaScript、Java、Rust 和 C++
- **实战指南** -- 在仓库、文件和符号级别提供速记、学习路径、代码导览、工作流故事和系统说明
- **需求追踪** -- 从 Markdown 或 CSV 导入需求,自动链接到代码,生成可追溯性矩阵
- **代码审查** -- AI 驱动的结构化审查(安全性、SOLID、性能、可靠性、可维护性)
- **代码讨论** -- 具备完整代码库上下文的对话式探索
- **架构图** -- 根据代码结构自动生成 Mermaid 图
- **影响分析** -- 模拟变更并查看受影响的需求和代码路径
- **MCP 服务器** -- 支持 Model Context Protocol,用于 AI agent 集成([设置指南](docs/user/mcp-clients.md))
- **VS Code 扩展** -- 一流的编辑器集成:内联需求透镜、流式 AI 聊天(`Cmd+I`)、从侧边栏创建/编辑需求、一键生成实战指南([安装指南](plugins/vscode/README.md))
- **多提供商 LLM** -- 支持云 API(Anthropic、OpenAI、Gemini、OpenRouter)或完全本地推理(Ollama、vLLM、llama.cpp、SGLang、LM Studio)
- **GraphQL API** -- 全面程序化访问所有平台功能
- **CLI** -- 用于脚本和自动化的完整命令行界面
## 快速开始
### Docker Hub(最快)
无需克隆 Git 仓库,只需拉取并运行:
```
# 下载 compose 文件
curl -O https://raw.githubusercontent.com/sourcebridge-ai/sourcebridge/main/docker-compose.hub.yml
# 启动 SourceBridge(默认使用 Ollama — 无需 API key)
docker compose -f docker-compose.hub.yml up -d
```
打开 [http://localhost:3000](http://localhost:3000) 并创建你的管理员账户。
完整配置示例
#### Anthropic(推荐以获得最佳质量)
```
SOURCEBRIDGE_LLM_PROVIDER=anthropic \
SOURCEBRIDGE_LLM_API_KEY=sk-ant-api03-xxxxx \
SOURCEBRIDGE_LLM_MODEL=claude-sonnet-4-20250514 \
docker compose -f docker-compose.hub.yml up -d
```
#### OpenAI
```
SOURCEBRIDGE_LLM_PROVIDER=openai \
SOURCEBRIDGE_LLM_API_KEY=sk-xxxxx \
SOURCEBRIDGE_LLM_MODEL=gpt-4o \
docker compose -f docker-compose.hub.yml up -d
```
#### Ollama(本地,免费)
```
# 首先安装 Ollama:https://ollama.com
ollama pull qwen3:32b
# 无需 API key — Ollama 为默认选项
docker compose -f docker-compose.hub.yml up -d
```
#### OpenRouter(可访问 100 多个模型)
```
SOURCEBRIDGE_LLM_PROVIDER=openrouter \
SOURCEBRIDGE_LLM_API_KEY=sk-or-xxxxx \
SOURCEBRIDGE_LLM_MODEL=anthropic/claude-sonnet-4-20250514 \
docker compose -f docker-compose.hub.yml up -d
```
#### 生产环境密钥
在生产环境中,请固定你的 JWT 和 gRPC 密钥,而不是使用默认值:
```
SOURCEBRIDGE_JWT_SECRET=$(openssl rand -hex 32) \
SOURCEBRIDGE_GRPC_SECRET=$(openssl rand -hex 32) \
SOURCEBRIDGE_LLM_PROVIDER=anthropic \
SOURCEBRIDGE_LLM_API_KEY=sk-ant-api03-xxxxx \
SOURCEBRIDGE_LLM_MODEL=claude-sonnet-4-20250514 \
docker compose -f docker-compose.hub.yml up -d
```
### 试用演示
SourceBridge 包含一个示例 TypeScript 项目,你可以立即对其进行索引:
```
git clone https://github.com/sourcebridge-ai/sourcebridge.git
cd sourcebridge
./demo.sh
```
该演示会启动 SourceBridge,索引一个包含 44 个文件的示例 API,并生成速记、代码导览和架构图。打开 [http://localhost:3000](http://localhost:3000) 进行探索。
### 从源码构建
```
git clone https://github.com/sourcebridge-ai/sourcebridge.git
cd sourcebridge
cp .env.example .env # configure your LLM provider
docker compose up -d
```
### macOS CLI
```
brew install sourcebridge-ai/tap/sourcebridge
```
Linux 用户也可以通过 Homebrew 安装,或者直接从 [Releases](https://github.com/sourcebridge-ai/sourcebridge/releases) 页面获取二进制文件。
### Helm / Kubernetes
用于生产环境部署:
```
helm install sourcebridge deploy/helm/sourcebridge/ \
--set llm.provider=anthropic \
--set llm.apiKey=$ANTHROPIC_API_KEY
```
完整的配置选项(包括离线环境和本地推理设置)请参见 [Helm 指南](docs/self-hosted/helm-guide.md)。
## VS Code 扩展
无需离开编辑器即可使用 SourceBridge。该扩展位于 [`plugins/vscode/`](plugins/vscode/),可与任何 SourceBridge 服务器通信——无论是本地、Docker、Helm 还是共享的团队部署。
内联需求透镜 · 流式 AI 聊天 · 侧边栏 CRUD · 一键实战指南
### 安装
从预构建的 VSIX 安装:
```
# 从源代码构建 VSIX
make package-vscode
# 将其安装到本地 VS Code
make install-vscode
```
或者在 VS Code 中:`Cmd+Shift+P` → **Extensions: Install from VSIX…** → 选择 `plugins/vscode/sourcebridge-*.vsix`。
### 配置
1. `Cmd+Shift+P` → **SourceBridge: Sign In**
2. 输入你的服务器 URL(例如,本地开发使用 `http://localhost:8080`,或你们团队的部署 URL)
3. 选择登录方式(浏览器 OIDC 或本地密码)
状态栏(左下角)会反映连接状态:`connected ·
`、`offline · retry in Ns`、`sign in required` 等。点击它可查看快捷操作。
### 亮点
| 流程 | 操作方式 | 说明 |
|---|---|---|
| **流式提问** | 在任意选中文本上按 `Cmd+I` | 聊天面板打开;通过 MCP 实时流入 token(回退机制:如果服务器未挂载 MCP,则使用非流式 GraphQL) |
| **显示已关联的需求** | 在函数上按 `Cmd+.` | 灯泡菜单列出已关联的需求;点击打开详情面板 |
| **创建需求** | 在未关联的符号上按 `Cmd+.` → *Create requirement from this symbol…* | 内联流程会根据符号名称预填标题;新需求会自动关联 |
| **从侧边栏编辑/删除** | 在活动栏中悬停某个需求行 | 出现铅笔和垃圾桶图标;删除是软删除(30天回收站) |
| **文件实战指南** | `Cmd+K N` | 为当前活动文件生成速记并打开面板 |
| **变更风险树** | 活动栏 → Change Risk | 显示最新影响报告中的更改文件/受影响需求/过时的实战指南 |
| **范围调色板** | `Cmd+Shift+;` | 上下文过滤选择器——仅显示对当前焦点有效的操作 |
完整功能列表及故障排除请见 [`plugins/vscode/README.md`](plugins/vscode/README.md)。
### 开发/贡献
```
cd plugins/vscode
npm install
npm run watch # rebuilds on save
# 在 VS Code 中打开文件夹,按 F5 → "Run Extension" 启动开发主机
```
测试:`make test-vscode`(或在 `plugins/vscode/` 目录下运行 `npm test`)。
## 架构
```
┌──────────────────────────────────┐
│ Clients │
│ Web UI / CLI / MCP / GraphQL │
└──────────────┬───────────────────┘
│
┌──────────────▼───────────────────┐
│ Go API Server │
│ chi router + gqlgen GraphQL │
│ JWT auth, OIDC SSO, REST │
│ tree-sitter code indexer │
└───────┬──────────────┬───────────┘
│ │
┌────────────▼──┐ ┌──────▼──────────┐
│ SurrealDB │ │ Python Worker │
│ (embedded │ │ gRPC service │
│ or external)│ │ AI reasoning, │
└───────────────┘ │ linking, │
│ requirements, │
┌───────────────┐ │ knowledge, │
│ Redis Cache │ │ contracts │
│ (optional, │ └──────┬───────────┘
│ defaults to │ │
│ in-memory) │ ┌──────▼───────────┐
└───────────────┘ │ LLM Provider │
│ Cloud or Local │
└──────────────────┘
```
**Go API Server** (`internal/`, `cmd/`) -- HTTP 和 GraphQL API、身份验证、代码索引和请求路由。负责处理 7 种语言的 tree-sitter 解析。
**Python gRPC Worker** (`workers/`) -- 与 LLM 提供商通信的 AI 推理引擎。提供的服务包括推理、链接、需求分析、知识提取和契约生成。
**Next.js Web UI** (`web/`) -- React 19、Tailwind CSS、用于代码展示的 CodeMirror 6、用于依赖图的 @xyflow/react、用于指标的 recharts、用于架构图的 Mermaid。
**SurrealDB** -- 主数据存储。在单节点设置中以内嵌方式运行,或在生产环境中连接到外部实例。
**Redis** -- 可选的缓存层。当未配置 Redis 时,默认使用内存缓存。
## 配置
SourceBridge 从 TOML 配置文件和环境变量中读取配置。环境变量使用 `SOURCEBRIDGE_` 前缀,并将覆盖配置文件中的值。
完整的注释示例请参见 [`config.toml.example`](config.toml.example)。
### 关键环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
| `SOURCEBRIDGE_LLM_PROVIDER` | LLM 提供商名称 | `ollama` |
| `SOURCEBRIDGE_LLM_BASE_URL` | LLM API 端点 | (提供商默认值) |
| `SOURCEBRIDGE_LLM_MODEL` | 模型名称 | (提供商默认值) |
| `SOURCEBRIDGE_LLM_API_KEY` | 云提供商的 API 密钥 | -- |
| `SOURCEBRIDGE_SERVER_HTTP_PORT` | API 服务器端口 | `8080` |
| `SOURCEBRIDGE_SERVER_GRPC_PORT` | 用于 worker 通信的 gRPC 端口 | `50051` |
| `SOURCEBRIDGE_STORAGE_SURREAL_MODE` | `embedded` 或 `external` | `embedded` |
| `SOURCEBRIDGE_STORAGE_SURREAL_URL` | SurrealDB 连接 URL | -- |
| `SOURCEBRIDGE_STORAGE_REDIS_MODE` | `redis` 或 `memory` | `memory` |
| `SOURCEBRIDGE_SECURITY_JWT_SECRET` | JWT 签名密钥 | (认证时必填) |
| `SOURCEBRIDGE_SECURITY_MODE` | 安全模式(`oss` 或 `enterprise`) | `oss` |
## LLM 提供商
SourceBridge 支持云托管和本地推理提供商。可以为不同操作配置特定模型以优化成本(例如,使用较小的模型进行摘要,使用较大的模型进行审查)。
### 云提供商
| 提供商 | 配置值 | API 密钥变量 | 模型 |
|---|---|---|---|
| Anthropic | `anthropic` | `ANTHROPIC_API_KEY` | Claude Sonnet 4、Claude Haiku 等 |
| OpenAI | `openai` | `OPENAI_API_KEY` | GPT-4o、GPT-4o-mini 等 |
| Google Gemini | `gemini` | `GOOGLE_API_KEY` | Gemini 2.5 Pro、Flash 等 |
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | OpenRouter 上的任何模型 |
### 本地推理
| 提供商 | 配置值 | 备注 |
|---|---|---|
| Ollama | `ollama` | 最简单的本地设置。拉取模型即可使用。 |
| vLLM | `vllm` | 基于 PagedAttention 的高吞吐量服务 |
| llama.cpp | `llamacpp` | CPU/GPU 推理,GGUF 模型 |
| SGLang | `sglang` | 基于 RadixAttention 的优化服务 |
| LM Studio | `lmstudio` | 具有 OpenAI 兼容 API 的桌面应用 |
所有本地提供商都暴露出与 OpenAI 兼容的 API。将 `base_url` 设置为本地端点即可。
## 结合 Claude Code 使用
在索引完仓库后,生成一个 `.claude/CLAUDE.md` 技能卡,它会为 Claude Code 提供代码库的结构化映射——包含按子系统划分的章节、从调用图推导出的警告以及代表性符号——以便 agent 在重构前理解架构:
```
sourcebridge setup claude --repo-id
```
这会在仓库中写入三个文件:
- `.claude/CLAUDE.md` — 包含从聚类数据派生出的 `## Subsystem:` 章节的技能卡
- `.claude/sourcebridge.json` — 用于未来刷新的元数据(默认已被 gitignore)
- `.mcp.json` — Claude Code MCP 服务器配置,以便 agent 可以直接调用 SourceBridge 工具
重新索引后再次运行该命令以刷新技能卡。
关于 Claude Code 如何读取 `.claude/CLAUDE.md`,请参见 [Claude Code 内存文档](https://docs.claude.com/en/docs/claude-code/memory)。
## CLI 参考
| 命令 | 描述 |
|---|---|
| `sourcebridge serve` | 启动 API 服务器 |
| `sourcebridge index ` | 使用 tree-sitter 索引仓库 |
| `sourcebridge setup claude` | 为 Claude Code 生成 `.claude/CLAUDE.md` 技能卡 |
| `sourcebridge import ` | 从 Markdown 或 CSV 导入需求 |
| `sourcebridge trace ` | 将需求追溯到关联的代码 |
| `sourcebridge review ` | 运行 AI 驱动的代码审查 |
| `sourcebridge ask ` | 提出关于代码库的问题 |
完整的标志文档请参见 [CLI 参考](docs/user/cli-reference.md)。
## 开发
### 前置条件
- Go 1.25+
- Python 3.12+ 及 [uv](https://docs.astral.sh/uv/)
- Node.js 22+
- Git
### 从源码构建
```
# Clone 代码仓库
git clone https://github.com/sourcebridge-ai/sourcebridge.git
cd sourcebridge
# 构建 Go API server
make build-go
# 安装 Python worker 依赖
make build-worker
# 构建 web UI
make build-web
# 或者一次性构建所有内容
make build
```
### 本地运行
```
# 启动 API server(会先进行构建)
make dev
# 在单独的终端中,以 dev 模式启动 web UI
make dev-web
```
### 测试
```
# 运行所有测试(Go + web + worker)
make test
# 运行 lint(Go + web + worker)
make lint
# 在本地运行 CI 检查(lint + test)
make ci
```
完整的开发工作流请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 部署
### Docker Compose
最适合评估和小型团队。参见上面的 [ocker Compose 快速开始](#docker-compose-recommended)。
### 使用 Helm 的 Kubernetes
用于生产环境和多团队部署:
- [Helm 指南](docs/self-hosted/helm-guide.md) -- 安装、values 参考和示例
- [部署指南](docs/admin/deployment.md) -- 架构考虑和扩展
- [离线安装](docs/self-hosted/air-gapped.md) -- 在无互联网访问的环境中部署
- [升级指南](docs/self-hosted/upgrade.md) -- 版本升级和迁移
- [备份与恢复](docs/admin/backup-restore.md) -- 数据保护程序
## 文档
- [入门指南](docs/user/getting-started.md)
- [CLI 参考](docs/user/cli-reference.md)
- [Web UI 指南](docs/user/web-ui-guide.md)
- [配置](docs/admin/configuration.md)
- [故障排除](docs/admin/troubleshooting.md)
## 贡献
欢迎贡献。有关开发设置、编码标准和拉取请求流程,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
首次贡献者在其 PR 合并前必须同意 [贡献者许可协议](CLA.md)。
## 许可证
SourceBridge 基于 [GNU Affero General Public License v3.0](LICENSE) 授权。
## 运行成功了吗?
如果 SourceBridge 帮助你理解了一个代码库,请告诉我们:
- **觉得好用?** 给仓库点个 star——这有助于其他人发现这个项目
- **遇到问题?** [提交 issue](https://github.com/sourcebridge-ai/sourcebridge/issues)——我们会尽力修复
- **有想法?** [发起新的讨论](https://github.com/sourcebridge-ai/sourcebridge/discussions)标签:DLL 劫持, Docker, EVTX分析, Go语言, MCP, Python工具, Ruby, 云安全监控, 人工智能, 代码地图, 代码审查, 代码搜索, 代码摘要, 代码理解, 低代码理解, 团队协作, 大语言模型, 威胁情报, 学习路径, 安全防御评估, 开发者工具, 搜索引擎, 搜索引擎查询, 敏捷开发, 日志审计, 架构图, 源码分析, 用户模式Hook绕过, 知识库, 程序破解, 系统架构, 网络调试, 自动化, 自动生成文档, 请求拦截, 逆向工具, 需求追踪, 静态分析