~/VibeHandbook
$39

AI 服务

microsoft.github.io

LSP

是什么

LSP,即 Language Server Protocol(语言服务器协议),是编辑器和工具获取项目实时代码智能信息的一种通用方式。"语言服务器"在你编写代码时读取代码,并报告错误、类型信息、自动补全建议以及"跳转到定义"链接。有了这一协议,一个语言服务器就能为多个编辑器提供支持——你在 VS Code 中看到的那些红色波浪线,同样可以驱动命令行工具或 AI 编码代理。

优势

  • 提供真实的、理解语言的反馈:是实际的类型错误和未定义引用,而非凭空猜测。
  • 标准化,因此同一个服务器可在多种编辑器和工具间通用。
  • 随输入即时更新,问题会立刻浮现,而不必等到构建时。
  • 支撑开发者日常依赖的各项功能:补全、悬停文档、重命名、跳转到定义。

取舍

  • 每种语言都需要自己的服务器,而各服务器的质量参差不齐。
  • 在大型项目上,服务器可能占用大量内存和 CPU。
  • 它告诉你哪里有问题,却不会告诉你如何修复——解读仍需靠你(或 AI)。
  • 配置可能比较琐碎;为一个项目配好合适的服务器需要费些心思。

何时使用

任何你希望对正在编写的代码获得可信、实时反馈的时候——这基本上就是任何时候。对 vibe coding 而言,它最重要的作用是作为一个信号源:语言服务器产生的诊断信息,正是你希望反馈回循环中的内容。

与 vibe coding 的契合度

LSP 能让 AI 看到与你相同的问题。一个好的框架会在每次编辑后将语言服务器的诊断信息反馈给代理,这样 AI 就能在你运行代码之前发现并修复自己的类型和 lint 错误。你得到的不再是"看起来合理",而是"编译器认可"。告诉你的代理去读诊断信息,而不仅仅是文件本身。

// LSP 服务器返回的一条诊断——把它反馈给代理
{
  "severity": "error",
  "range": { "start": { "line": 12, "character": 6 } },
  "message": "Type 'string' is not assignable to type 'number'."
}