github / github/copilot-cli

MCP stdio transport for sub-agents (task tool) closes after ~4 seconds while agent is still running

未關閉
#2,892 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
area:agents area:mcp
主要語言
Shell
星號
11.2k
分支
1.9k
平均合併
14 小時 16 分鐘
30 天內合併 PR
6

描述

## Bug Report

### Summary
When a sub-agent is launched via the `task` tool, the MCP stdio transport for all configured MCP servers closes approximately **4 seconds** after the agent's connections are established — while the LLM is still generating its first response turn. Any MCP tool calls made after those 4 seconds fail with `MCP server 'X': Error: Not connected`.

### Environment
- **Copilot CLI version**: 1.0.34
- **OS**: Ubuntu (WSL2)
- **MCP server**: engram (local stdio, SQLite-backed)

### Steps to Reproduce
1. Configure an MCP server in `~/.copilot/config.json` under `mcp`
2. Launch a sub-agent via the `task` tool (e.g., a custom agent)
3. Ask the sub-agent to call any MCP tool

### Observed Behavior
From Copilot CLI logs (`~/.copilot/logs/process-*.log`):

```
T+0ms MCP client for engram connected, took 432ms
T+0ms Started MCP client for engram
T+0ms Successfully started MCP server 'engram'
T+0ms Found 11 MCP tools from server 'engram'
... LLM generating response (agent still running) ...
T+4135ms MCP transport for engram closed ← BUG: transport closes here
T+4135ms MCP client for engram closed
... agent continues running for 20-70 more seconds ...
T+25000ms Agent completes
```

All MCP tool calls in the agent return: `MCP server 'engram': Error: Not connected`

### Expected Behavior
The MCP transport should remain open for the **lifetime of the sub-agent context**, not close after a fixed ~4-second timeout during the LLM generation phase.

### Additional Notes
- The main (orchestrator) agent's MCP connections remain open indefinitely ✅
- Only sub-agents launched via the `task` tool are affected ❌
- The 4-second timeout appears to be a hardcoded connection lifetime for sub-agent MCP transports
- The first MCP tool call occasionally succeeds if made within the 4-second window (race condition)
- Reproduced consistently across multiple restarts

### Log Evidence
```
2026-04-22T08:29:42.945Z [ERROR] Started MCP client for engram
2026-04-22T08:29:42.945Z [INFO] Successfully started MCP server 'engram'
2026-04-22T08:29:42.945Z [INFO] Found 11 MCP tools from server 'engram'
2026-04-22T08:29:46.647Z [ERROR] MCP transport for engram closed <- 3702ms later
2026-04-22T08:29:46.647Z [ERROR] MCP client for engram closed
2026-04-22T08:30:11.381Z [INFO] Agent completed successfully <- 24734ms later
```

貢獻指南

開啟貢獻指南

研究方向

先追蹤 task tool 的子代理 MCP 用戶端與傳輸生命週期,然後使用重現設定與程序記錄,將其與主要代理程式的連線進行比較。重現約四秒的中斷,並確認傳輸在代理程式完成後仍保持開啟,且之後的 MCP 工具呼叫能夠成功。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
shell
領域
cli
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。