自动化工作流管理工具

copilot-conductor是一个命令行工具,用于构建和管理仓库内的自动化工作流,通过与GitHub Copilot等AI代理交互,提高开发效率和可靠性。

  • by timovv
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 timovv/copilot-conductor

使用说明

🐑 副驾驶指挥

copilot conductor是一个命令行实用程序,用于帮助构建和管理在Visual Studio Code中使用GitHub copilot等AI代理的存储库自动化工作流。

概念

反转控制

Conductor脚本通过CLI线束能够与Copilot或任何其他配备MCP的工具进行交互,以根据需要执行特定的子任务。这种方法 反转控制:一个编译好的、确定性的脚本指示代理具体做什么,而不是将整个工作流程交给Copilot,让它疯狂地运行 希望 它在正确的时间调用正确的工具。这种反向方法减轻了编码代理的许多局限性:

  • 代理在执行一系列步骤时是不可靠的。通过反转控制,导体程序仅在必要时调用Copilot,并且一次只向Copilot馈送一步。这意味着Copilot不再有责任遵循这些步骤,从而大大提高了可靠性。
  • 代理的上下文窗口有限。向代理提供一长串指令可能会有问题,导致代理忘记之前的指令,陷入循环或切线。由于指挥程序负责编排步骤,因此为Copilot提供的每个特定子任务的指令可以更丰富、更详细,从而提高输出质量。

指挥任务

每个工作流都被实现为一个“指挥任务”,通常是从描述工作流的Markdown文件“编译”而来的。Conductor任务能够请求Copilot执行子任务(例如更新文件或运行终端命令),因此它们在有用时仍然可以使用LLM的全部功能。他们还可以要求用户输入。

未压缩的Markdown脚本位于 .conductor/tasks,而它们的编译等价物在 .conductor/scripts,相对于项目根。

快速编译

导体程序允许您以自然语言Markdown形式定义任务,然后将其编译(使用Copilot)为TypeScript导体脚本。编译后,可以手动编辑脚本以对其进行改进。一般来说,Copilot在这种转换方面做得很好,一旦编译,脚本就可以一次又一次地确定地运行。编译实际上是作为导体脚本本身实现的,它引导Copilot完成编译过程,并确保编译后的输出被写入正确的位置。

项目结构

tasks/

此文件夹包含一些示例任务。

src/

包含客户端、服务器和编译任务工具的源代码。

入门

安装所有依赖项,构建并链接到您的环境:

npm install
npm run build
npm link

将服务器添加到项目的 mcp.json:

{
  "servers": {
    "conductor": {
      "type": "stdio",
      "command": "copilot-conductor",
      "cwd": "${workspaceFolder}" // (or wherever the .conductor folder with your scripts lies)
    }
  }
}

然后,告诉Copilot(在聊天窗口中)“进入指挥模式”,它将在后台为您启动客户端。您可以与UI交互以启动和编译任务。