Skip to main content

为什么用 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 输出中提到该文件的行:
如果 Warnings 提示 CLI 无法安装,请检查安装命令。CLI 需要 E2B 沙箱;没有它时,智能体会在没有 jscpd 的情况下运行。 当发现正是您想要的内容时,开启该智能体。

检查清单

  • 安装固定到确切版本
  • 允许的前缀以参数开头,而不只是二进制名
  • 测试和生成的代码同时写进 Except 和 jscpd 的 --ignore
  • 已设置 Max comments per pull request
  • 已在一个已知包含复制代码的拉取请求上试运行
所有字段的说明,请参阅 Skills、docs 和工具。