mcpField
M
Make CoPilot an Interactive Programmer

Make CoPilot an Interactive Programmer

本地服务
marketplace.visualstudio.com开发工具641 周前更新

关于 Make CoPilot an Interactive Programmer

Backseat Driver 是面向 VS Code 的 Calva 扩展工具,为 Copilot、Cursor 等 AI 工具提供 Clojure REPL 交互编程能力。它适合 Clojure 开发者,可零配置或通过 MCP 接入。

主要功能

  1. 01在 Clojure REPL 中执行代码
  2. 02结构化创建和编辑 Clojure 文件
  3. 03自动括号平衡与顶层表单替换
  4. 04符号信息与 clojuredocs.org 文档查询
  5. 05通过 resources 提供技能说明

适用场景

  1. 01让 AI 在 REPL 中调查和验证实现方案
  2. 02批量编辑 Clojure 源文件并保持括号平衡
  3. 03查询 Clojure 核心符号的文档和示例

MCP 相关

该项目可作为 MCP 服务运行,向 MCP 客户端提供 Clojure 工具和资源,例如符号查询与技能说明。对于 Copilot 和 Cursor,则可零配置直接使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

在 VS Code 中启用原生 AI 交互式编程

面向 VS Code Agent 框架的 Clojure 工具。(例如 Copilot 和 Cursor。)

VS Code Extension Issues License

Backseat Driver 通过以下方式,让 VS Code AI 框架使用 Calva 的 Clojure 工具:

  1. Copilot:零配置。(使用 VS Code LM Tools。)
  2. Cursor:零配置。(使用 Cursor add-MCP-server API)。
  3. 其他 AI 框架:MCP(需要为每个项目进行一些配置)。

功能

  • 工具:评估代码 可随时访问 Clojure REPL 以评估代码。Calva 中所有活动的 REPL 会话均可供选择(使用 shadow-cljs 时,还包括构建和运行时)。
  • 工具:编辑 Clojure 文件 以结构化方式创建和编辑文件,并支持批量操作。包括:
    • 创建 Clojure 文件 创建 Clojure 文件并自动平衡括号
    • 追加代码 向 Clojure 文件追加代码并自动平衡括号
    • 替换顶层形式 结构化编辑,包括格式化、括号平衡和 lint 检查
    • 插入顶层形式 结构化编辑,包括格式化、括号平衡和 lint 检查
  • 工具:括号平衡器 帮助模型正确处理括号平衡(由 Parinfer 提供支持)
  • 工具:加载文件 通过 Calva 已连接的 REPL 加载/评估整个 Clojure 文件
  • 工具:符号信息查询,AI 可以查询感兴趣的符号,并获取文档字符串、参数信息等
  • 工具:clojuredocs.org 查询,获取 Clojure 核心相关符号的文档、示例和另请参阅信息
  • 资源:符号信息查询,(有些实验性)与工具相同
  • 资源:clojuredocs.org 查询,(有些实验性)与工具相同
  • 资源:技能,可通过 resources/list 发现,并通过 resources/read 读取的专门指令

请注意,编辑工具没有用于审查修改内容的 UI。建议使用源代码管理工具和 VS Code 的 时间线视图来查看。

Agent 指南:充分利用 Backseat Driver

Backseat Driver 为 AI Agent 提供 Clojure 交互式编程工具,以及使用这些工具的技能。为了让你能够掌控 Agent 如何处理 Clojure 和 REPL,该扩展不会提供太多有关 Clojure 知识、理念或 REPL 方法论的内容。

要让 Agent 真正高效地处理 Clojure 工作,它需要了解你偏好的 Clojure 编写方式,以及如何有效使用 REPL。

为避免从一张白纸开始,让糟糕的训练数据和对 Clojure 的幻觉毁掉一切,可以考虑安装 clojure 插件,以及 Awesome Backseat Driver 仓库中的其他插件。

说明

Awesome Backseat Driver 目前提供 Copilot 和 Cursor 插件。不过,如果你使用其他框架,仍然可以从中复制技能、自定义 Agent 等内容。(也可以让你的 Agent 帮你完成。)

配置 Backseat Driver

评估结果大小限制

为防止大型 REPL 评估结果占满 Agent 的上下文窗口,Backseat Driver 会自动限制返回结果的大小:

  • calva-backseat-driver.evaluation.maxLength(默认值为 25)——集合中显示的最大项数。设为 0 可关闭长度限制。
  • calva-backseat-driver.evaluation.maxDepth(默认值为 7)——最大嵌套深度;更深的结构会被替换为 ##。设为 0 可关闭深度限制。
技能

Backseat Driver 为 AI Agent 提供两项技能:

  • calva-backseat-driver.provideBdSkill(默认值为 true)——向 Agent 提供 Backseat Driver 技能
  • calva-backseat-driver.provideEditSkill(默认值为 true)——向 Agent 提供 Clojure 结构化编辑技能
编辑器配置

用于插入和替换顶层形式的结构化编辑工具会遵循 Backseat Driver 的两项编辑器设置:

  • calva-backseat-driver.editor.fuzzyLineTargetingPadding(默认值为 2)——匹配目标文本时,AI 可以扫描请求行两侧的行数。大型重构期间,如果形式的位置会发生变化,请增大此值;设为 0 则进行精确的行定位。权衡取舍:值越大,对行位置变化的容忍度越高,但当 Agent 缓冲区副本已过期时,匹配到附近相似形式的风险也越高。
  • calva-backseat-driver.editor.lineContextResponsePadding(默认值为 10)——定位失败时,返回的故障排查片段中包含请求行两侧的行数。减小此值可缩短响应,增大此值则可提供更多上下文。权衡取舍:值越大,越能为 Agent 重试提供线索,但与发送精简片段相比,可能会额外消耗 token(或时间)。
MCP

参见:将 Backseat Driver 配置为 MCP 服务

入门

前提条件
使用方法
  1. 教会 AI Clojure 和 REPL 使用规范,例如,参见:Agent 指令
  2. 将 Calva 连接到你的 Clojure/ClojureScript 项目
  3. 让 Copilot 帮你处理事情。当你说“请使用 REPL 调查……”时,它就会明白你的意思。
  • 它会知道如何找到正确的 REPL 会话以及如何使用它。
  • 配置 Calva 使用终端输出 REPL 内容,并监视输出终端,查看它在 REPL 中尝试了什么

它与子 Agent 配合得很好,也支持并行子 Agent。可以试试这样:

  1. “请安排三个并行子 Agent 使用 REPL 调查如何实现……”
  • REPL 输出会显示你和 Agent 分别在 REPL 中尝试了什么。
  • 你也可以参与 REPL 活动。

WIP

和大家一样,我也在学习如何使用 AI,并逐步摸索。与此同时,整个领域的发展速度远超我的学习速度。Backseat Driver 是我尽最大努力为 Clojure 开发者提供的强大 AI 工具,开箱即用,无需配置。

事实证明,Backseat Driver 的基本设计长期以来一直有效且实用。但我也在不断改进它,融入新学到的东西。其中很多经验都来自用户。

请务必告诉我你使用 Backseat Driver 的体验,以及你希望看到哪些功能。🙏

贡献

欢迎贡献!无论是 Issue、PR 还是其他形式都可以。在提交 PR 之前,希望你先创建一个 Issue,说明要解决的问题。你也可以在开始着手处理之前,先联系我讨论该问题。

许可证 🍻🗽

MIT

欢迎赞助我的开源工作 ♥️

欢迎通过此链接支持我的工作:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。