AI 智能体
在你的编码智能体写出另一个副本之前,Deslop 会告诉它相似代码已经存在。 智能体发问,Deslop 依据它正在工作的这个仓库的实时分析作答。没有定时任务,没有批处理,也不需要谁记得去跑一次扫描。
本页是写给你 —— 正在做配置的人类。 它说明 MCP 服务器提供了什么,以及如何把各个客户端连接上去。
写给智能体本身的说明 —— 它在写代码前遵循的规则、相似度阈值、MCP 不可用时的 CLI 回退,以及如何解析报告 —— 都在 面向 AI。那一页以第二人称写成,直接写给机器。请把你的智能体指向那个 URL。
可直接粘贴到你项目 AGENTS.md / CLAUDE.md 的规则块参见智能体配方。它适用于 Claude Code、Cursor、Copilot、Continue 与 Codex。
MCP 工具,全部实时
只有 find-similar 属于编写代码的内循环。其余的全是只读报告查询,或按需取用的配置工具,因此智能体的工作上下文保持精简,而不必背负一整面墙的工具输出。
| 工具 | 何时调用 |
|---|---|
find-similar |
在编写新代码之前——是否已存在等价实现?这就是预防工具。 |
top-offenders |
工作区中最严重的簇,最严重者优先。从这里开始清理。 |
cluster-by-id |
你即将合并的某个簇的完整成员列表与信号。 |
report-for-file |
单文件的簇切片。 |
report-for-range |
单选区的簇切片。 |
report-get |
整个工作区的报告。 |
report-query |
对报告的过滤查询。 |
rescan |
在大规模外部变更后强制刷新。 |
list-embedding-models |
提供方公布的模型。 |
set-embedding-model |
在运行时切换「行为相同、代码不同」[Type-4] 语义模型。 |
session-config |
检查运行中服务器的生效配置。 |
schema-doc |
每个响应的权威 JSON schema。每个会话调用一次,而非每次响应都调用。 |
每一个响应都针对实时工作区状态计算。编辑器服务器在内存中持有实时报告,并在每次变更时刷新(防抖,并设有硬上限);MCP 服务器则在下一次工具调用时通过本地 IPC 端点读取该实时状态。macOS 与 Linux 使用 .deslop/cache/deslop.sock;Windows 使用通过 .deslop/cache/deslop.port 发现、由令牌保护的 TCP 回环端点。没有批处理步骤。
将 deslop-mcp 接入你的客户端——指向 VSIX 捆绑的二进制文件
deslop-mcp 随 VS Code 扩展 VSIX 一同发布。安装扩展后,每个外部 MCP 客户端(Claude Code、Claude Desktop、Codex、Cursor、Continue)都应通过绝对路径引用解包后的 VSIX 二进制文件,这样智能体运行的就是扩展所发布的那个确切二进制文件——与 VSIX 版本锁定,不会发生 PATH 漂移。
从 Marketplace 安装扩展后,二进制文件位于:
~/.vscode/extensions/nimblesite.deslop-live-<VERSION>-<platform>/bin/<platform>/deslop-mcp
<platform> 为 darwin-arm64、darwin-x64、linux-x64、linux-arm64 或 win32-x64。<VERSION> 为已安装的扩展版本——每次更新 VSIX 后,都要把它改为新安装的版本号。
Claude Code
claude mcp add deslop -s user -- \
~/.vscode/extensions/nimblesite.deslop-live-<VERSION>-darwin-arm64/bin/darwin-arm64/deslop-mcp \
--root .
Codex (~/.codex/config.toml)
[mcp_servers.deslop]
command = "/Users/you/.vscode/extensions/nimblesite.deslop-live-<VERSION>-darwin-arm64/bin/darwin-arm64/deslop-mcp"
args = ["--root", "."]
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"deslop": {
"command": "/Users/you/.vscode/extensions/nimblesite.deslop-live-<VERSION>-darwin-arm64/bin/darwin-arm64/deslop-mcp",
"args": ["--root", "/absolute/path/to/your/repo"]
}
}
}
不要让 MCP 客户端指向
cargo install或target/release构建产物。 从源码构建 Deslop 是为了测试你刚做的改动;它不是分发渠道。本仓库刻意不提供make install-binary目标。
Homebrew / Scoop CLI 用户——指向 $PATH 上的裸 deslop-mcp
如果你通过 brew install nimblesite/tap/deslop 或 scoop install deslop 安装了 CLI,该包还会把 deslop-mcp 和 deslop-lsp 一并放到你的 $PATH 上,与 deslop 并列——Homebrew tap 配方和 Scoop 清单会安装全部三个二进制文件,并与发布版本锁定。无需 VSIX、无需扩展目录、无需绝对路径。直接使用裸命令:
claude mcp add deslop -s user -- deslop-mcp --root .
{
"mcpServers": {
"deslop": {
"command": "deslop-mcp",
"args": ["--root", "."]
}
}
}
同样的 "command": "deslop-mcp" 形式适用于 Codex(~/.codex/config.toml)、Cursor 和 Continue。它也是签入 .mcp.json 或团队共享配置的正确取值——每台机器都通过 $PATH 解析它。
需要知道的两点:
- 不存在
deslop mcp子命令。deslopCLI 只用于一次性运行和 CI 审计;MCP 由独立的deslop-mcp二进制文件提供。 - 从源码构建不会把任何东西放到
$PATH上。 只有brew/scoop会这么做。这些包管理器会让二进制文件与发布版本步调一致地版本化;cargo build不会。
智能体循环
主打的工作流是响应式的,而非批处理:
- 智能体提出一个改动。在它写出新代码之前,它通过 MCP 对候选片段调用
find-similar。 - 如果
find-similar返回一个高于所配置相似度下限的簇,智能体就复用规范实现,或重写该调用点。 - 当智能体编辑文件时,文件监视器会触发,分析随之刷新。下一次工具调用时,MCP 服务器会提供新状态。
- 智能体重新查询
top-offenders或report-for-file,确认该簇已消失。无需重新运行、无需标志、无需批处理 CLI 调用。
当 MCP 不可用时 —— CI、冷缓存审计,或没有 MCP 客户端的智能体 —— 循环会降级到 deslop CLI,它运行完全相同的流水线,产出完全相同的 JSON。增量缓存默认开启,因此编辑后的重新运行只会重新解析发生变化的文件。逐步的回退方案见面向 AI。
Deslop 刻意不做的事
- 它不会重写你的代码。Deslop 负责发现、排名、比较与预防重复;提取由你决定。
- 它不会让 CI 失败,除非你自己设置阈值。
- 它不会假定"近似命中 = bug"。有些重复是有意为之的(测试夹具、引导代码)。Deslop 负责报告;由你来决定。
- 它不会访问网络,除非你显式选择一个远程嵌入模型。