Support per-agent LSP server configuration in agent frontmatter
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
### Feature request
**Is your feature request related to a problem?**
I am building a multi-agent system where each agent has a different specialization. Agents already support per-agent MCP server configs via `mcp-servers` in the YAML frontmatter, which is excellent — each agent only sees the external tools it needs.
However, LSP servers are configured globally (user-level `~/.copilot/lsp-config.json` or repo-level `.github/lsp.json`). There is no way to scope LSP servers to a specific agent.
This matters because different agents work with different languages and file types:
- A **morning-command-center** agent works primarily with Markdown and YAML (agent definitions, skill files, documentation). It needs `yaml-language-server` but has no use for `typescript-language-server`.
- A **deep-work-planner** agent investigates codebases and would benefit from TypeScript, Python, and SQL LSP servers for code navigation.
- A **communication-triage** agent classifies messages and drafts responses — it has no need for any LSP server at all.
With global-only LSP config, every agent loads every configured LSP server regardless of whether it will use them. This wastes resources and increases startup time, especially when you have 7+ agents and 9+ LSP servers configured globally.
**Describe the solution you would like**
Allow agents to declare LSP servers in their `.agent.md` frontmatter, similar to `mcp-servers`:
```yaml
---
name: deep-work-planner
lsp-servers:
typescript:
command: npx
args: ["--yes", "typescript-language-server", "--stdio"]
fileExtensions:
.ts: typescript
.tsx: typescript
python-typecheck:
command: npx
args: ["--yes", "pyright-langserver", "--stdio"]
fileExtensions:
.py: python
---
```
When an agent declares `lsp-servers`, only those LSP servers would be started for that agent session. If no `lsp-servers` block is present, fall back to the existing global/repo config.
**Describe alternatives you have considered**
- Maintaining separate repo-level `.github/lsp.json` files per project — but this does not solve per-agent isolation within the same repo.
- Not configuring LSP servers globally and relying only on agents that need them — but this breaks the default CLI experience outside of agents.
**Additional context**
This would bring LSP config parity with MCP config, which already supports per-agent scoping. The pattern is already established in the agent frontmatter format — this would extend it to LSP.
贡献指南
调研方向
首先比较 .agent.md frontmatter 中现有的 mcp-servers 处理方式与全局配置路径 ~/.copilot/lsp-config.json 和仓库级配置路径 .github/lsp.json。定义如何解析 lsp-servers 块并将其限定在一个 agent 会话的作用域内,同时在该块不存在时保留现有的全局/仓库回退机制。完成的标准是:每个 agent 的 LSP 服务器彼此隔离,且不改变默认 CLI 行为。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- yaml
- 领域
- cli, tooling
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100