为什么用 CLI
模型阅读 diff 时,无法知道刚读到的 30 行代码其实在三个文件夹之外已经存在。jscpd 可以:它扫描检出的代码,报告每一处克隆及其两个位置。这个智能体运行 jscpd,保留由拉取请求引入的克隆,并以 jscpd 自己的输出作为证据逐条发布。 示例是一个 TypeScript 计费服务。请根据您的代码库调整路径和阈值。步骤 1 — 创建智能体
在 Code review → What to review → Custom agents 中,点击 New agent → Templates → Blank。在其页面中填写 Instructions:Name
Instructions
步骤 2 — 设置文件
在 Files & knowledge 下:步骤 3 — 添加 CLI
在 Tools → CLIs 下,点击 Add CLI:
Usage:
步骤 4 — 评论
在 Comments & model 下:
点击 Save。
步骤 5 — Try it
粘贴一个复制了函数的拉取请求链接,点击 Run agent。检查:- Tool calls 显示了
jscpd调用及其输出。 - 每条保留的发现的 Comment 末尾都有一个 Evidence 块,引用 jscpd 输出中提到该文件的行:
检查清单
- 安装固定到确切版本
- 允许的前缀以参数开头,而不只是二进制名
- 测试和生成的代码同时写进 Except 和 jscpd 的
--ignore - 已设置 Max comments per pull request
- 已在一个已知包含复制代码的拉取请求上试运行