4.6 KiB
4.6 KiB
title, type, tags, date
| title | type | tags | date |
|---|---|---|---|
| LSP/Index Engineer Agent Personality | source | 2026-04-29 |
Source File
Summary(用中文描述)
- 核心主题:LSP/Index Engineer Agent 是一款专注于语言服务器协议(LSP)客户端编排和语义索引构建的专业智能体,通过协调多种语言的 LSP 服务器构建统一代码语义图谱。
- 问题域:异构语言服务器(TypeScript、PHP、Go、Rust、Python 等)各自独立运作,缺乏统一的代码语义抽象层,导致代码导航、定义跳转、引用查找等功能无法跨语言协同。
- 方法/机制:
- graphd LSP Aggregator:协调多个 LSP 客户端并发工作,将 LSP 响应转换为统一图谱格式
- 图谱 Schema:节点(file/symbol)→ 边(contains/imports/calls/refs)
- 实时增量更新:通过文件监听器和 Git hooks 实现增量更新
- nav.index.jsonl:导航索引格式,存储符号定义、引用和悬停文档
- LSIF 导入/导出:支持预计算语义数据的导入导出
- WebSocket 流推送:通过 WebSocket 流式推送图谱差异更新
- 结论/价值:统一代码语义图谱实现 <100ms 响应时间、100k+ 符号规模无性能衰减,支持跨语言的代码智能导航(定义跳转/引用查找/悬停文档)。
Key Claims(用中文描述)
- graphd 统一语义图谱:协调多个 LSP 客户端并发运行,将异构语言服务器响应转换为统一图谱 schema,节点代表文件和符号,边代表 contains/imports/calls/refs 关系。
- nav.index.jsonl 导航索引:通过
nav.index.jsonl流式索引格式存储每个符号的symId、定义位置(uri/l/c)和引用列表,实现快速符号查找。 - LSP 3.17 严格合规:严格遵循 LSP 3.17 规范进行客户端通信,正确处理能力协商和生命周期管理(initialize → initialized → shutdown → exit)。
- 性能约束量化:图谱端点 <100ms(<10k 节点)、符号导航 <20ms(缓存)/ <60ms(未缓存)、WebSocket 延迟 <50ms、内存 <500MB。
- 原子图谱更新:图谱更新必须是原子性的,确保图谱状态永远不会处于不一致状态。
Key Quotes
"Build the graphd LSP Aggregator — Orchestrate multiple LSP clients (TypeScript, PHP, Go, Rust, Python) concurrently, transform LSP responses into unified graph schema." — 核心交付物定义 "Every symbol must have exactly one definition node; all edges must reference valid node IDs; import edges must resolve to actual file/module nodes." — 图谱一致性强制约束 "
/graphendpoint must return within 100ms for datasets under 10k nodes." — 性能合约
Key Concepts
- LanguageServerProtocol:LSP 3.17 — 语言服务器协议标准,定义客户端与服务器之间的通信规范,支持文本文档同步、代码完成、定义跳转、引用查找、悬停文档等特性
- SemanticCodeGraph:语义代码图谱 — 以节点(文件/符号)和边(contains/imports/calls/refs)表示代码结构的统一语义抽象
- LSPOrchestration:LSP 客户端编排 — 协调多个语言服务器并发运行,统一处理不同语言的 LSP 响应格式
- nav.index.jsonl:导航索引格式 — JSONL 流式索引文件,每行包含
symId(符号 ID)、def(定义位置)、refs(引用列表)、hover(悬停文档) - LSIF:Language Server Index Format — 预计算语义数据的标准化格式,支持导入导出
- IncrementalGraphUpdate:增量图谱更新 — 通过文件监听器和 Git hooks 实现增量更新,而非全量重建
Key Entities
- GraphDaemon:graphd — 核心图谱守护进程,HTTP 服务器提供
/graph、/nav/:symId、/stats端点,WebSocket 服务器推送实时图谱更新 - TypeScriptLanguageServer:TypeScript 语言服务器 — graphd 默认要求生产就绪的语言服务器之一
- Intelephense:PHP Intelephense — PHP 语言服务器,graphd 默认要求生产就绪的语言服务器之一
Connections
- GraphDaemon ← builds ← SemanticCodeGraph
- GraphDaemon ← orchestrates ← LSPOrchestration
- GraphDaemon ← streams via ← WebSocket
- SemanticCodeGraph ← format ← nav.index.jsonl
- SemanticCodeGraph ← import/export ← LSIF
- IncrementalGraphUpdate ← triggers ← FileWatcher
Contradictions
- 无已知冲突页面。该页面为独立的专业 Agent 规范文档,未涉及其他 Wiki 页面中相矛盾的观点。