这个项目能做什么

## 概述 `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 双许可。