相关地址: 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
cursor
粘贴获取到的路径
vs code
使用
使用前需要先激活项目
可以在提示词中明确让ai使用serena