Files
nexus/wiki/sources/lsp-index-engineer.md

61 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "LSP/Index Engineer Agent Personality"
type: source
tags: []
date: 2026-04-25
---
## Source File
- [[raw/Agent/agency-agents/specialized/lsp-index-engineer.md]]
## Summary用中文描述
- 核心主题LSP/Index Engineer 是 The Agency Specialized 部门的代码智能系统架构师 Agent通过编排 Language Server ProtocolLSP客户端并构建统一语义图谱实现跨多语言的代码智能查询能力。
- 问题域如何将异构语言服务器TypeScript、PHP、Go、Rust、Python的语义数据统一为一致的代码图谱并在亚秒级延迟内提供导航/定义/引用查询。
- 方法/机制graphd LSP 聚合器 + 多语言 LSP 客户端编排 + nav.index.jsonl 语义索引 + WebSocket 实时增量更新 + SQLite/JSON 持久化缓存层。
- 结论/价值:将不同语言服务器的输出标准化为统一图谱(节点:文件/符号contains/imports/calls/refs实现 100k+ 符号规模下 60fps 的沉浸式代码可视化,定义/引用查询响应 <150msHover 文档 <60ms。
## Key Claims用中文描述
- graphd 通过 LSP 聚合器并发编排 TypeScript/PHP/Go/Rust/Python 多语言 LSP 客户端,将响应转换为统一图谱模式
- 语义索引基础设施 nav.index.jsonl 存储符号定义、引用和 Hover 文档,支持 LSIF 导入/导出
- 原子性图谱更新确保从不处于不一致状态WebSocket 实时推送图谱差异
- 默认要求 TypeScript 和 PHP 支持必须首先达到生产就绪状态
- 严格遵循 LSP 3.17 规范,正确处理各语言服务器的能力协商
- 每个符号必须有且仅有一个定义节点,所有边必须引用有效节点 ID
- `/graph` 端点在 <10k 节点数据集下 100ms 内响应,`/nav/:symId` 查找缓存 <20ms / 未缓存 <60ms
- 系统处理 100k+ 符号时性能不降级,内存保持在 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 (nodes: files/symbols, edges: contains/imports/calls/refs)" — 核心交付物定义
> "Strictly follow LSP 3.17 specification for all client communications, Handle capability negotiation properly for each language server" — 协议合规要求
> "Every symbol must have exactly one definition node, All edges must reference valid node IDs" — 图谱一致性约束
> "Sub-500ms response times for definition/reference/hover requests" — 性能北极星指标
## Key Concepts
- [[LSP-317-Specification]]Language Server Protocol 3.17 规范——LSP 的最新版本,定义了客户端与语言服务器之间的标准化通信协议
- [[Semantic-Index-Infrastructure]]:语义索引基础设施——将 LSP 响应转换为持久化结构nav.index.jsonl + SQLite/JSON 缓存),支持快速启动和增量查询
- [[Graph-Node-Schema]]图谱节点模式——统一表示文件节点file:、模块节点module/、符号节点sym:),支持 6 种节点类型和 6 种边类型
- [[Incremental-Graph-Update]]:增量图谱更新——通过文件监视器和 Git hooks 触发增量更新WebSocket 推送图谱差异,原子性保证从不处于不一致状态
- [[LSP-Client-Orchestration]]LSP 客户端编排——多语言 LSP 客户端并发初始化、能力协商、请求批量处理和缓存管理的统一架构
- [[Performance-Contracts]]:性能契约——量化系统性能约束:/graph <100ms、/nav <60ms、WebSocket <50ms、内存 <500MB
## Key Entities
- [[The-Agency]]The Agency 多智能体系统组织147 个 Agent 跨 12 个部门LSP/Index Engineer 属于 Specialized 部门
- [[TypeScript-Language-Server]]TypeScript 语言服务器——支持 TypeScript 和 JavaScript 的 LSP 实现
- [[Intelephense]]PHP Intelephense——PHP 语言的 LSP 服务器实现
- [[gopls]]Go 语言服务器——Go 官方 LSP 实现
- [[rust-analyzer]]Rust 语言服务器——Rust 官方 LSP 实现
- [[pyright]]Python 语言服务器——Microsoft 的 Python 类型检查和 LSP 实现
- [[LSIF]]Language Server Index Format——预计算语义数据的标准化交换格式
## Connections
- [[specialized-workflow-architect]] ← builds upon ← [[LSP-Index-Engineer]]Workflow Architect 在 LSP/Index Engineer 构建的语义图谱基础上设计工作流注册表和交接合同
- [[LSP-Index-Engineer]] ← uses ← [[LSP-317-Specification]]LSP/Index Engineer 严格遵循 LSP 3.17 规范进行客户端开发
- [[LSP-Index-Engineer]] ← provides_input ← [[semantic-code-visualization]]LSP/Index Engineer 构建的统一图谱为沉浸式代码可视化提供数据基础
## Contradictions
- 与 [[specialized-workflow-architect]] 存在张力:
- 冲突点LSP/Index Engineer 要求"每个系统边界定义显式交接合同"(确定性要求),而 Workflow Architect 承认 LLM 概率性使得穷举建模存在上限
- 当前观点LSP/Index Engineer图谱节点必须精确——"每个符号必须有且仅有一个定义节点""Reference edges must point to definition nodes"
- 对方观点Workflow Architect穷举工作流存在概率性上限某些边界条件只能通过概率性处理
- 协调方向LSP/Index Engineer 的确定性约束适用于代码符号层面静态分析Workflow Architect 的概率性适用于行为工作流层面,两者作用于不同抽象层次,可共存