这个项目能做什么
## 概述
`prod-code` 是一个远程代码智能服务器,专为AI编码代理集群设计。它将语言分析、构建和测试从开发者的笔记本电脑转移到局域网节点上,同时保持本地编辑体验。系统将检出内容镜像到网关,网关维护着热分析器(rust-analyzer 进程内运行;gopls、clangd、TypeScript、pyright、sourcekit-lsp 作为子进程运行)并在那里执行命令。代理通过 MCP 工具访问它,编辑器可以将其用作即插即用的语言服务器。
## 主要特性
- **远程分析**:语言服务器在局域网节点上运行,而非笔记本电脑上,减少本地 CPU 和内存负载。
- **MCP 集成**:通过模型上下文协议向AI代理(Claude、Codex、Gemini)暴露工具。
- **编辑器支持**:作为 Zed 等编辑器的语言服务器工作,提供设置和保存事件的协议桥接。
- **多语言支持**:支持 Rust、Go、C/C++、TypeScript/JavaScript、Python 和 Swift。
- **安全重构**:提供语义重命名、签名更改、移动、提取等工具,并在第二个分析器上进行验证。
- **构建/测试执行**:命令在节点上运行,带有热缓存;结果和文件更改同步回来。
- **集群支持**:多个节点可以互相通信,并根据负载和语言支持分配工作区。
## 代理工具
MCP 服务器提供了一套全面的工具:
- **查找代码**:`code_search`、`code_symbols`、`code_definition`、`code_references`、`code_callers`、`code_callees`、`code_implementations`、`code_supertypes`、`code_outline`、`code_source`。
- **理解代码**:`code_slice`、`code_hover`、`code_type_at`、`code_impact`、`code_dead_code`、`code_prune_orphans`。
- **安全更改**:`code_validate_edit`、`code_diagnostics`、`code_rename`、`code_safe_delete`、`code_change_signature`、`code_move`、`code_extract_function`、`code_introduce_parameter_object`、`code_migrate_type`、`code_generify`、`code_invert_boolean`、`code_make_static`、`code_inline_parameter`、`code_extract_delegate`、`code_extract_trait`、`code_loop_to_iterator`、`code_introduce_variable`、`code_convert_to_method`、`code_wrap_return`、`code_extract_field`、`code_encapsulate_field`、`code_schema_rename`、`code_assists`、`code_codemod`、`code_generate_fixture`、`code_shadow_run`。
- **运行**:`code_check`、`code_lint`、`code_test`、`code_benchmarks`、`code_exec`、`code_diagnose_failure`。
- **操作**:`code_status`、`code_sync`。
所有基于位置的工具也接受 `symbol` 参数代替文件/行号,因此代理无需 grep 行号。
## 工作原理
- **镜像检出**:首次联系发送路径、大小和哈希清单;网关从源仓库播种工作树,并仅同步缺失文件。后续同步使用水印和差异。
- **每个工作树一个分析器**:每个 git 工作树都有自己的服务器工作区和数据库,防止交叉污染。引擎保持驻留,直到空闲30分钟。
- **在第二个分析器上验证**:编辑建议在单独的引擎上检查,以避免污染主分析器的状态。
- **在节点上构建和测试**:命令在工作区自己的 `target/` 目录中运行,保持缓存温暖。更改的文件写回检出。
- **集群通信**:节点每5秒通信一次;客户端需要一个种子地址。放置考虑现有持有量和负载。
## 安装
```sh
# 客户端(单个二进制;网关是同一二进制的兄弟)
cargo install --path crates/prod-code-client
# 注册到 Claude
claude mcp add --scope user prod-code -e PROD_CODE_REMOTE=192.0.2.10:9400 -- prod-code mcp
# 注册到 Codex
codex mcp add prod-code --env PROD_CODE_REMOTE=192.0.2.10:9400 -- prod-code mcp
# 在节点上
prod-code-server --bind 0.0.0.0:9400 --storage /srv/prod-code/workspaces \
--advertise <此主机>:9400 --peers <其他节点>
```
## 编辑器使用
`prod-code lsp` 充当编辑器的语言服务器。语言自身的服务器在节点上运行,桥接器双向传递协议。对于 Zed,在 `editors/zed` 中有专用扩展,或者您可以将 Zed 的 rust-analyzer 指向 `prod-code lsp --language rust`。
## 配置
可以在检出根目录的 `prod-code.toml` 中设置每个仓库的选项,例如 Rust 功能标志、sysroot 使用和目标选择。
## 指标和操作
每个查询、命令和同步轮次都作为事件(代理、主机、工作区、方法、持续时间、成功)记录到 JSONL 文件。`prod-code metrics` 聚合整个集群的 p50 和 p95 指标。macOS 节点的部署脚本处理签名和 launchd 设置。
## 现场评估
项目包括针对知名开源仓库(ripgrep、tantivy、tokio、polars、uv、bevy、prometheus、kubernetes、etcd、django、black)的评估,使用标准化67工具协议,并链接详细博客报告。
## 要求
构建需要 Rust 1.95.0 或更高版本。使用 rustup 安装:
```sh
rustup toolchain install 1.95.0 --profile minimal -c rustfmt -c clippy
```
## 许可证
MIT / Apache-2.0 双许可。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。