OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Blinky 集成VSCode的AI代码调试与问题定位Agent工具

Blinky 集成VSCode的AI代码调试与问题定位Agent工具

 
  quintessence ·  2026-03-19 21:49:23 · 5 次点击  · 0 条评论  


blinky banner

Blinky: 面向 VSCode 的开源 AI 调试助手

VSCode 扩展  |   Discord  |   Github

https://github.com/seahyinghang8/blinky/assets/7028464/8a41a523-b3ce-4bf6-b15d-b4939f5983b7

Blinky 是一个面向 VSCode 的开源 AI 调试助手,它利用大语言模型(LLMs)来帮助识别和修复后端代码错误(灵感来源于 SWE-agent)。

Blinky 结合 VSCode API、语言服务器协议(LSP)和打印语句调试,来定位并解决真实后端系统中的错误

快速开始

注意:首次运行时,系统会提示您提供 OpenAI API 密钥。该密钥将存储在您本地的 VSCode 配置中,用于后续调用 OpenAI 服务器。

  1. 从 VSCode 扩展市场安装 Blinky VSCode 扩展
  2. 点击侧边栏上的幽灵图标进入聊天界面。\
    blinky icon
  3. 在聊天框中描述您要修复的错误。\
    describing bug in a chatbox
  4. 指定触发错误的复现步骤。(可选但推荐,因为这将使助手能够访问运行时进行调试)。\
    specifying the repro steps
  5. 确保没有其他终端进程可能与您的构建和测试命令产生端口冲突。
  6. 启动助手,然后看它飞速运行... 💨

在助手运行时,您可以随时提供反馈。助手会在后续步骤中采纳这些反馈。\
starting the agent and watching the progress

助手完成后,您将看到一个界面,用于接受或拒绝助手所做的更改。\
changes to be applied

如果您觉得 Blinky 有帮助,请给我们的仓库点个星 ⭐ 以示支持!

路线图

  • 自动化复现步骤创建并使其更流畅。
    • 问题:创建复现步骤繁琐耗时,增加了使用助手的阻力。
    • 想法:
      • 使用演示数据展示如何创建复现步骤。
      • 让 LLM 与用户协作生成复现脚本。这可以与仓库的测试框架结合。
      • 重新设计复现步骤,以更好地融入开发者的工作流程。
  • 支持更多模型(例如 LLaMA 3, Claude)。
  • 更好的助手历史记录过滤和回溯机制。
    • 问题:随着助手推进,提示词变得过长。这会减慢 LLM 推理速度,并增加 Blinky 产生混淆的可能性。
    • 想法:
      • 采用更稳健的技术来修剪已探索的路径。
      • 将历史记录块总结为相关要点。
  • 利用嵌入技术改进上下文发现。
  • 文件内容的状态化表示。
  • 添加适当的单元测试和端到端测试。

常见问题

Blinky 与 SWE-agent 有何关联?

我们深受 SWE-Agent 背后团队杰出工作的启发,并借鉴了他们的成果——我们的核心助手循环是从他们那里移植过来的。

我们扩展了他们在构建良好人机交互界面方面的核心见解,通过 VSCode 的语言服务器协议(LSP)为其提供了额外的导航工具,如 GoToDefinitionGetAllReferences,以高效遍历代码库。我们还添加了 GetFilesRelevantToEndpoint 以更好地导航后端系统。

其次,我们认为将 SWE-agent 嵌入 VSCode 会很酷,这样开发者可以在开发过程中使用它,并通过 VSCode 扩展界面在过程中提供反馈。

我们还尝试使用“匹配并替换”技术来编辑文件,而不是使用起始行号、结束行号和新文本。aider.chat 的团队也做了类似的事情。

为什么需要“匹配并替换”编辑?它是如何工作的?

截至 2024 年 5 月,最先进的 LLM 在进行大范围编辑时仍存在困难,导致助手需要多次迭代才能做出正确的编辑。

我们的“匹配并替换”技术强制助手生成带有行号前缀的原始文本。行号和文本内容的冗余有助于捕捉幻觉和缩进错误。通过生成原始文本,似乎也有助于生成正确缩进的替换文本。

Verify 工具有什么作用?

Verify 是一个允许助手运行用户指定的复现步骤的工具。助手需要迭代调试代码,直到复现步骤中的测试通过。Verify 还允许助手利用其打印语句的执行反馈。

Verify 类似于 SWE-agent 创建的用于复现错误的 reproduce.py

为什么 Verify 运行需要很长时间?

请务必检查 Verify 的输出,看看是否有任何明显问题。以下是一些常见问题:

  1. 构建/运行进程已在终端中运行,导致端口冲突。解决方法是终止本地终端中运行的进程。
  2. Verify 需要等待构建/运行步骤完成后才能运行测试步骤。如果构建步骤退出或者日志匹配 src/tools/verifier.ts 中的任何模式,则认为构建步骤完成。\
    如果您的构建步骤日志不匹配任何这些模式,您可以通过点击“指定复现步骤”下的“高级设置”并填写“构建就绪文本”部分来配置自己的模式。\
    Settings UI to configure build ready text
  3. 构建过程本身就需要很长时间才能完成。这是一个无法避免且没有简单解决方案的问题。

如何自定义提示词?

由于本仓库是开源的,您可以编辑 src/config/default.yaml 中的提示词并重新构建扩展。目前,对于最终用户来说,没有无需重新构建就能轻松编辑提示词的方法。如果有足够的需求,我们可以将其加入路线图。

为什么 Blinky 专为后端系统设计?

Blinky 专注于后端系统,因为我们希望针对特定的开发栈优化用户体验。后端错误也往往更容易通过程序复现,并且可以方便地以文本形式表达,从而更容易输入到大多数 LLM 中。

最终,我们计划将应用范围扩展到后端系统之外,涵盖其他开发栈。

贡献

本仓库中的所有代码都是开源的(MIT 许可证)。

⭐ 给我们的仓库点星以示支持!

加入 我们的 Discord 社区 提问并关注 Blinky 的开发进展。请留言告诉我们您如何使用 Blinky,我们很乐意了解更多。

如果您能在 GitHub 上提交错误报告和功能请求,我们将不胜感激,这有助于我们持续改进 Blinky!

如果您有兴趣为 Blinky 的代码库做贡献,我们欢迎提交 Issue 和 Pull Request!

本地开发快速入门:运行 npm run install:all 开始,然后按 F5 或从命令面板(⇧⌘P)运行命令 Debug: Start Debugging。查看此指南获取更多关于 VS Code 扩展开发的详细信息。

5 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 42 ms
Developed with Cursor