【AI编程】 serena使用教程

1,392 阅读2分钟

image.png

相关地址: github.com/oraios/sere…

ai编程工具的短板

传统ai编程ide,例如cursor通常阅读代码的方式是: 读取目录->读取文件->读取代码->生成逻辑 ,serena基于lsp协议,从代码结构侧深入理解代码逻辑

模式普通 AI 工具(如 Copilot/Cursor)Serena(AI + LSP 工具链)
代码来源当前编辑窗口 + 邻近 buffer + 简单目录索引全项目符号树 + 语言级语义分析
理解方式靠 Token 顺序和位置猜测结构由 LSP 提供抽象语法树(AST)、跳转、引用、补全信息
上下文构造GPT/Claude 端手动拼接 prompt通过工具 find_symbol / find_references 等精确提取
可操作性模型靠自然语言“指示”编辑模型可直接调用 insert_code、replace_code 等工具
适合场景小文件、简单变更、自动补全大型项目、跨文件理解、精细修改

使用 LSP 带来的阅读优势

🚀 1. 全项目理解,不限上下文大小

  • LSP 提供项目全量符号表,模型不需要“预加载所有代码”,只在需要时按需调用工具访问。

  • 模型不会因 token 限制漏掉关键信息 —— 每次都是精确定位目标代码。

🔁 2.模型可交互式检索代码,模拟人类查阅过程*

  • 类似 IDE 中人类开发者查找定义/引用/文档,Serena 让 LLM 拥有同样的“阅读路径”。

  • 具备“先查阅、再决策、再修改”的闭环能力。

🧩 3.实现语义层操作,不再依赖 prompt 拼凑代码块

  • 普通工具靠上下文粘贴代码,让模型“猜”调用结构或插入位置。

  • Serena 通过 LSP 工具明确:“我要在 src/router.js 中 add route”,极大降低 hallucination 风险。

🔒 4.安全、稳定的修改能力

  • 替换/插入操作基于结构化 span,模型不再 “删除错行”、“重复定义” 或 “覆盖注释”。
  • 改动更可控,也更容易测试 + 回滚

使用教程

拉取代码

git clone git@github.com:oraios/serena.git

安装uv

uv是现代python包管理工具

pip install uv  # 如果未安装 uv 工具
cp src/serena/resources/serena_config.template.yml serena_config.yml  # 自定义配置

加入mcp工具

获取路径

which uv
pwd

image.png

cursor

image.png 粘贴获取到的路径

image.png

image.png

vs code

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

使用

使用前需要先激活项目

image.png

可以在提示词中明确让ai使用serena