ThePrimeagen/99 是一个为 Neovim 设计的实验性 AI 代理插件,旨在为开发者提供一种高效、受限且专注于代码编辑的 AI 辅助工作流。该项目由知名技术内容创作者 ThePrimeagen 发起,其核心目标是解决传统 AI 工具在代码编辑场景中过于通用、缺乏上下文感知以及可能干扰开发者心流的问题。
背景与问题: 随着大型语言模型(LLM)的普及,AI 辅助编程工具层出不穷。然而,许多通用型 AI 助手在集成到代码编辑器时,往往难以精确理解代码上下文,容易给出不相关的建议,或者需要用户进行大量手动操作来筛选和应用结果。这不仅降低了效率,还可能打断开发者的专注状态。ThePrimeagen 认为,对于专业的开发者而言,AI 应该是一个高度定制化、能够理解特定代码结构和编程习惯的“智能助手”,而不是一个包罗万象的“万能工具”。
项目定位与核心价值: 99 项目将自身定位为“Neovim 值得拥有的 AI 代理”,它不是一个通用的 AI 聊天机器人,而是专注于在 Neovim 编辑器内部,通过高度受限和上下文感知的交互,帮助开发者完成特定的编码任务。其核心价值在于提供一种“恰到好处”的 AI 辅助,即在需要时提供精确的帮助,同时避免不必要的干扰。它通过引入“技能(Skill)”的概念,让 AI 的能力被限制在预定义的、与代码相关的操作中,从而提高效率和准确性。
工作原理与设计思想: 99 的设计思想是基于“受限区域”和“技能”的。它通过 SKILL.md 文件定义具体的 AI 行为和规则,这些规则可以根据项目结构或文件类型自动加载。当用户在 Neovim 中触发 AI 代理时(例如通过快捷键),AI 会根据当前代码上下文和预定义的技能,提供代码补全、函数填充、代码重构等服务。项目还支持自定义规则,允许用户根据自己的需求扩展 AI 的能力。这种机制确保了 AI 的响应是高度相关的,并且能够无缝集成到 Neovim 的工作流中。
关键特性与优势:
- 上下文感知: 能够根据当前文件路径、项目结构自动加载相关的
AGENT.md或SKILL.md文件,提供更精准的建议。 - 技能驱动: 通过
@符号触发技能补全,将 AI 的能力限制在预定义的、与编程任务相关的“技能”范围内,避免通用性回答。 - 高度可定制: 支持用户定义自己的
SKILL.md文件和规则,以适应不同的项目和个人编码习惯。 - Neovim 原生集成: 作为 Neovim 插件,与 Neovim 的快捷键、自动补全(如
cmp)等功能无缝结合,提供流畅的开发体验。 - 专注于代码: 明确区分通用请求(建议使用
opencode)和代码相关请求,确保 AI 代理在 Neovim 中的职责清晰。
实际应用场景:
- 函数或代码块填充: 快速生成函数体、循环结构或常用代码模板。
- 代码重构辅助: 根据预设规则对代码进行小范围的重构或优化。
- 特定语言特性补全: 在 TypeScript 或 Lua 等支持的语言中,利用 AI 补全复杂的类型定义或 API 调用。
- 调试辅助: 尽管项目处于早期阶段,但其设计理念也为未来集成自动添加调试语句等功能提供了可能。
- 定制化开发工作流: 开发者可以根据团队或个人规范,编写特定的
SKILL.md文件,让 AI 代理辅助遵循这些规范。