Language Server Protocol - CLI
Tuanjie AI 通过 LSP(Language Server Protocol)提升 Agent 对代码的理解能力。LSP Server 负责解析项目代码、维护符号索引,并向 Tuanjie AI 提供定义跳转、引用查找、Hover 信息、符号搜索、实现查找和调用层级等能力。
工作链路
Tuanjie AI Agent / 用户命令
-> Tuanjie AI 内置 LSP Client
-> LSP Extension 配置
-> 外部 LSP Server
-> 项目源码
Codely CLI 内置通用 LSP Client,但不直接内置所有语言的 LSP Server。要使用完整的 LSP 功能,用户还需要在 Tuanjie AI marketplace 下载对应语言的 Extension,以及对应语言的 LSP Server。LSP Extension 中有推荐的 LSP Server 的下载路径,用户可以手动下载。
使用前准备
- 下载并安装LSP extension
/extensions install <extension_path>
如果 Extension 已启用,Tuanjie AI 会在启动时加载其中的 LSP 配置并初始化 LSP Manager。刷新 Extension 后也会重新加载 LSP 配置。
/extensions refresh
当然用户也可在 Tuanjie AI marketplace 中下载需要的 LSP Extension
/extensions explore
Agent 如何使用 LSP
LSP 能力会以 lsp 工具注册到 Tuanjie AI 的工具系统中。Agent 在需要理解代码结构时,会自动调用它完成。在Cli环境下,用户通常上不需要手动使用 LSP 功能。LSP client为Agent提供以下能力:
definition跳转定义:确认符号真实定义位置。refs查找引用:分析改动影响面。hoverHover:读取类型、文档和签名信息。symbols文档符号:查看单个文件内的类、函数、字段等结构。ws-symbol工作区符号:跨项目搜索符号。impl实现查找:定位接口、抽象类或虚方法的实现。incoming/outgoing调用层级:分析函数的 incoming / outgoing call hierarchy。
用户也可以通过 /lsp 命令手动调试同样的能力。
/lsp 命令
/lsp definition <file> <line> <char>
/lsp refs <file> <line> <char>
/lsp hover <file> <line> <char>
/lsp symbols <file>
/lsp ws-symbol <file> [query]
/lsp impl <file> <line> <char>
/lsp prepare <file> <line> <char>
/lsp incoming <file> <line> <char>
/lsp outgoing <file> <line> <char>
/lsp status
参数说明:
<file>可以是相对路径或绝对路径。相对路径会按当前 Tuanjie AI 工作目录解析。<line>和<char>都是从1开始计数。ws-symbol的[query]可选,不传时会发送空查询。
示例:
/lsp definition src/index.ts 10 5
/lsp refs src/index.ts 10 5
/lsp hover src/index.ts 10 5
/lsp symbols src/index.ts
/lsp ws-symbol src/index.ts UserService
/lsp impl src/types.ts 8 12
/lsp prepare src/service.ts 20 3
/lsp incoming src/service.ts 20 3
/lsp outgoing src/service.ts 20 3
排障
如果 /lsp status 显示 No LSP servers configured,说明当前没有启用任何包含 lspServers 的 Extension。
如果 server 启动失败,请检查:
command是否在当 前 shell 的PATH中。args是否符合该 LSP Server 的启动方式。workspaceFolder是否存在。extensionToLanguage是否包含当前文件扩展名。- 目标文件是否在当前项目目录下,且文件大小不超过 LSP 工具限制。