AI Coding LSP

rag系列文章目录


文章目录


前言

AI coding越来越火,相关的工具也也越来越成熟,程序员好像距离失业越来越近了。但是好的工具还是要学习的,这里介绍下LSP,主要之前有些AI coding工具,让人很困惑,比如仅仅支持某些语言,LSP这个工具就是让AI更好的理解代码的,能够更好地进行AI辅助编程。


一、LSP简介

LSP即(Language Server Protocol),是一种标准化协议,用于:在 编辑器(Client) 与 语言服务器(Server) 之间,通过 JSON-RPC 通信,提供语言相关的智能能力。

比如在IDEA编辑器里面,代码补全、跳转到定义、查找引用、类型提示、实时错误诊断、重构(重命名、提取方法等)这些功能,都是LSP提供的。LSP的核心思想是:将"语言理解能力"从编辑器中剥离,集中到语言服务器中。

编辑器:只负责 UI 与用户交互

Language Server:负责解析代码、构建 AST、类型推导、语义分析

当你在编辑器中:

  • 输入代码 → 自动补全
  • Cmd + 点击 → 跳转定义
  • 重命名方法 → 全局安全替换

背后流程是:

  • 编辑器发送请求(如 textDocument/definition)
  • LSP 基于 AST / 符号表计算结果
  • 返回精确位置或修改建议

二、AI coding为何需要LSP

大模型在代码上的天然局限

  • 不具备真实符号表
  • 不理解项目级依赖关系
  • 容易编造不存在的类 / 方法
  • 对大型工程改动风险极高

有LSP,大模型就能够补齐短板

大模型短板 LSP 补充
不知道真实 API 提供真实符号
改动影响不可控 提供引用关系
无法验证正确性 提供诊断结果

三、claude code + LSP

Claude Code 是一个 Code Agent,负责:

  • 任务理解
  • 修改规划
  • 多步执行
  • 校验与回滚

而不是一个语言分析器。claude code是如何使用LSP的呢?

bash 复制代码
Claude Code(Agent / Planner)
        │
        │ 需要代码语义
        ▼
 本地开发环境(VSCode / CLI)
        │
        ▼
 Language Server(jdtls / gopls / pyright)

Claude Code 实际利用的 LSP 信息,如文件结构(类 / 方法)、函数真实定义、调用与引用关系、编译 / 诊断结果。这些信息用于:安全重构、避免 hallucination、验证修改是否破坏工程,这也是 Claude Code 比"网页版 Claude 写代码"稳定得多的原因。

四、LSP vs MCP

MCP 是一种:大模型调用外部工具的标准协议,用于让模型安全、结构化地调用:shell、git、数据库、API、云服务。

MCP和LSP的区别如下:

维度 LSP MCP
关注对象 代码语义 外部工具
提供能力 事实、结构、类型 动作、执行
是否确定性 取决于工具
是否代码专用
典型用途 理解代码 操作系统 / 服务

LSP:感知层(代码世界)

MCP:执行层(外部世界)

LLM / Agent:决策层


总结

LSP 是代码世界的"真相来源",MCP 是行动的"工具接口",Claude Code 是把两者组织起来完成复杂任务的 Agent。有了LSP的加持,能够让AI coding能力更强。

相关推荐
softshow10268 小时前
Ubuntu20.04 安装声卡驱动
人工智能
Ronaldinho Gaúch8 小时前
leetcode279完全平方数
c++·算法·动态规划
桂花饼8 小时前
小镜 AI —— 一站式全球顶级大模型聚合平台
人工智能·sora2·gemini 3·gpt-5.2·codex-max
Howrun7778 小时前
C++_bind_可调用对象转化器
开发语言·c++·算法
(; ̄ェ ̄)。8 小时前
机器学习入门(十七)朴素贝叶斯
人工智能·机器学习
有一个好名字8 小时前
力扣-迷宫中离入口最近的出口
算法·leetcode·职场和发展
yuanlulu8 小时前
Agent_Skills_完全教程「AI生成」
人工智能·大语言模型·agent·智能体·skill·claude code·opencode
乌萨奇也要立志学C++8 小时前
【洛谷】剪枝与优化 剪枝策略实战解析:数的划分与小猫爬山
算法·剪枝
工程师老罗8 小时前
目标检测的常见数据集
人工智能·目标检测·计算机视觉