SuperAPI AI 工具集

blinky

Blinky 是一个开源、面向 VSCode 的 AI 调试智能体,利用 LLM 帮助定位并修复后端代码错误。它受 SWE-agent 启发,结合 VSCode API、语言服务器协议(LSP)和打印语句调试来定位并处理真实后端系统中的 bug。用户需在首次运行时提供 OpenAI API 密钥,密钥保存在本地 VSCode 配置中。使用前需从 VSCode 扩展市场安装 Blinky 扩展,在侧边栏点击幽灵图标进入聊天界面,描述要修复的 bug 并可选填写复现步骤,然后启动智能体;运行中可随时反馈,结束后可接受或拒绝智能体所做的更改。该仓库采用 MIT 开源许可,主要针对后端系统,未来计划扩展到其他开发栈。

访问官网

工具介绍

Blinky 是一个开源、面向 VSCode 的 AI 调试智能体,使用 LLM 帮助识别并修复后端代码错误。它受 SWE-agent 启发,核心智能体循环移植自 SWE-agent。

用途方面,Blinky 聚焦于真实世界后端系统中的 bug 定位与修复。项目说明其专注于后端系统,是为了针对特定开发栈优化用户体验;后端 bug 通常更容易以程序化方式复现并可用文本表达,便于喂给大多数 LLM。未来计划扩展到其他开发栈。

主要能力方面,Blinky 结合 VSCode API、语言服务器协议(LSP)和打印语句调试来三角定位并处理 bug。它在 SWE-agent 核心思路上扩展了 agent-计算机接口,增加导航工具:使用 VSCode 的 LSP 实现 GoToDefinition 和 GetAllReferences,以高效遍历代码库;还增加了 GetFilesRelevantToEndpoint 以便更好地导航后端系统。它采用“匹配并替换”(match and replace)方式编辑文件,而非使用起始行号、结束行号和替换文本;该技术要求智能体生成带行号的原始文本,借助行号与文本内容的冗余来捕捉幻觉和缩进错误,并有助于生成缩进正确的替换文本。Verify 工具允许智能体运行用户指定的复现步骤,智能体需迭代调试直到复现步骤中的测试通过,Verify 也能让智能体利用打印语句的执行反馈。Verify 类似于 SWE-agent 创建的 reproduce.py。

使用方式方面,需从 VSCode 扩展市场安装 Blinky VSCode 扩展。首次运行会提示提供 OpenAI API 密钥,密钥存储在本地 VSCode 配置中,用于后续调用 OpenAI 服务器。安装后点击侧边栏的幽灵图标进入聊天界面;在聊天框中描述要修复的 bug;指定触发该 bug 的复现步骤(可选但推荐,因为这样可让智能体获得运行时用于调试);确保没有其他终端进程可能与构建和测试命令发生端口冲突;启动智能体。智能体运行期间可随时提供反馈,该反馈会在后续步骤中被智能体纳入考虑;智能体完成后会显示 UI,供用户接受或拒绝其做出的更改。

本地开发方面,仓库提供快速开始:运行 npm run install:all 开始,按 F5 或从命令面板(⇧⌘P)运行 Debug: Start Debugging 命令。

常见问题方面,Verify 运行慢的常见原因包括:构建/运行进程已在终端中运行导致端口冲突(解决办法是终止本地终端中运行的进程);Verify 需等待构建/运行步骤完成后再运行测试步骤,构建步骤在退出或日志匹配 src/tools/verifier.ts 中的某些模式时视为完成,若构建步骤日志不匹配,可点击“指定复现步骤”下的“高级设置”填写“Build Ready Text”来自行配置;构建过程本身耗时较长,这是难以避免的问题且没有简单解法。提示词自定义方面,由于仓库开源,可编辑 src/config/default.yaml 中的提示词并重建扩展;目前终端用户没有无需重建即可编辑提示词的简便方式,如有足够需求可加入路线图。

与 SWE-agent 的关系方面,Blinky 深受 SWE-Agent 团队工作的启发并借用了其成果,核心智能体循环移植自他们;同时扩展了其关于构建良好 agent-计算机接口的核心洞见,增加了上述 LSP 导航工具和 GetFilesRelevantToEndpoint;其次希望将 SWE-agent 嵌入 VSCode,让开发者可在开发过程中使用并中途通过扩展 UI 提供反馈;还实验了“匹配并替换”技术来编辑文件。

限制与已知问题方面,目前仅面向后端系统,未来才计划扩展到其他开发栈;支持的模型目前以 OpenAI 为主,路线图提到支持更多模型(如 LLaMA 3、Claude);随着智能体推进提示词会变得过长,导致 LLM 推理变慢且 Blinky 更容易混乱,路线图提到更强的剪枝技术、将历史分块摘要为相关要点、改进基于嵌入的上下文发现、文件内容的状态化表示、添加完善的单元与端到端测试;自动化复现步骤创建也在路线图中,因为创建复现步骤繁琐耗时、增加使用摩擦。当前无法作为终端用户在不重建扩展的情况下编辑提示词。

许可与社区方面,仓库中所有代码均为开源(MIT 许可)。可在 Discord 社区提问并了解 Blinky 开发动态;可在 GitHub 提交 bug 报告和功能请求;对贡献代码库有兴趣可提交 issue 和 pull request。