sp; Github github.com Blinky is an open-source AI debugging agent for VSCode that uses LLMs to help identify and fix backend code errors (inspired by SWE-agent).
Blinky: An open-source AI debugging agent for VSCode
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
VSCode Extension |
Discord |
Github
https://github.com/seahyinghang8/blinky/assets/7028464/8a41a523-b3ce-4bf6-b15d-b4939f5983b7
Blinky is an open-source AI debugging agent for VSCode that uses LLMs to help identify and fix backend code errors (inspired by SWE-agent).
Blinky leverages the VSCode API, Language Server Protocol (LSP), and print statement debugging to triangulate and address bugs in real-world backend systems.
Get Started
> Note: You will be prompted to provide your OpenAI API key for your first run. This key is stored locally in your VSCode config for subsequent calls to OpenAI's server.
1. Install the Blinky VSCode extension from the VSCode extension marketplace.
2. Go to the chat interface by clicking on the ghost icon on the side bar.\
3. Describe the bug you are trying to fix in the chatbox.\
4. Specify the repro steps to trigger the bug. (Optional but recommended because it will give the agent access to runtime for debugging).\
5. Ensure there are no other terminal processes that might have a port conflict with your build and test command.
6. Start the agent and watch it go brrrr... 💨
You can always provide feedback while the agent is running. The feedback will be incorporated by the agent in the subsequent step.\
Once the agent is done, you will be presented with the UI to accept or reject the changes that the agent has made.\
If you found Blinky helpful, please give our repo a star ⭐ to show your support!
Roadmap
- Automating repro step creation and making it more seamless.
- Problem: Creating repros is tedious and time-consuming, increases friction to use the agent.
- Ideas:
- Use demonstration data to show how to create a repro.
- Have the LLM collaborate with user to generate a repro script. This could be tied into the repository's testing framework.
- Re-design the repro to fit better into a developer's workflow.
- Supporting more models (e.g. LLaMA 3, Claude).
- Better agent history filtering and backtracking.
- Problem: As the agent progress, the prompt gets too long. This slows LLM inference and increases the chance that Blinky gets confused.
- Ideas:
- More robust technique to prune already explored paths.
- Summarize chunks of history into relevant points.
- Improved context discovery with embeddings.
- Stateful representation of file content
- Add proper unit and e2e testing
FAQ
How is Blinky related to SWE-agent?
We were heavily inspired by and borrowed from the great work done by the folks behind SWE-Agent - our core agent loop was ported over from them.
We extended their core insight around building good agent-computer interfaces by giving it additional navigation tools such as GoToDefinition and GetAllReferences using VSCode's Language Server Protocol (LSP) to efficiently traverse the codebase. We also added GetFilesRelevantToEndpoint to better navigate backend system.
Second, we thought it would be cool to have SWE-agent embedded within VSCode so devs can use it during development and provide feedback to it midway using the VSCode extension UI
We also experimented with using a "match and replace" technique to edit files instead of using start line numbers, end line numbers and new text. The folks at aider.chat do something similar as well.