bug: 'web'/'search' tool-category aliases silently resolve to no bound tool in headless --agent dispatch
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
## Summary
When an agent's frontmatter declares tools using the category aliases `web` or
`search`, those aliases silently resolve to **no bound tool at all** when the
agent is dispatched headlessly via `copilot --agent -p ... --allow-all-tools`.
There is no error or warning — the agent simply has no web-fetch/web-search
capability, which is easy to miss since nothing fails loudly.
Other category aliases in the same position work correctly: `read` → `view`,
`edit` → `edit`, `shell` → `powershell`, `agent` → `task/read_agent/list_agents`.
Only `web` and `search` are affected.
## Environment
- GitHub Copilot CLI 1.0.68 (Windows)
- Invocation: `copilot --agent -p "" --allow-all-tools`
## Repro
Agent frontmatter:
```yaml
---
name: tool-probe
tools:
- read
- web
- search
---
```
Dispatch:
```
copilot --agent tool-probe -p "List every tool you have available to you right now, one per line, then stop." --allow-all-tools
```
**Observed bound tools:** view, skill, sql — no web/search tool at all.
Changing the frontmatter to the literal tool names instead of the category aliases:
```yaml
tools:
- read
- web_fetch
- web_search
```
**Observed bound tools:** view, web_fetch, web_search, skill, sql — correct.
## Impact
Any agent relying on the documented web/search category aliases for web
access has zero web tooling in headless dispatch, with no error surfaced
anywhere. We found this affected 5 of our own agent specs (including a
Chief-of-Staff-style orchestrator whose own web lookups were silently broken)
before switching to literal tool names as a workaround.
## Suggested fix
Category-alias resolution for web/search should map to web_fetch/web_search
in headless --agent dispatch mode the same way shell correctly maps to
powershell and read maps to view.
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách lần theo quá trình phân giải bí danh danh mục cho các công cụ frontmatter trong quá trình dispatch headless --agent, sử dụng bản tái hiện web/search đã được ghi lại. So sánh các bí danh đó với read và shell, sau đó xác minh hành vi theo nghĩa đen của web_fetch/web_search. Được xem là hoàn tất khi web và search liên kết các công cụ अपेक्षित trong dispatch headless và lỗi im lặng được bao phủ bằng một kiểm tra hồi quy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- shell
- Lĩnh vực
- cli
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 68/100