github / github/copilot-cli

Custom agent frontmatter `model` field rejects array syntax — incompatibility between Copilot CLI and VS Code Copilot Chat

Đang mở
#2,133 4 bình luận 7 reaction 0 người được giao Xem trên GitHub
area:agents area:models
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ả

### Describe the bug

When a custom agent `.agent.md` file uses an **array** for the `model` frontmatter field (as supported by VS Code Copilot Chat), the GitHub Copilot CLI refuses to load the agent and throws a parse error.

**Error message from Copilot CLI:**
```
The following agents failed to load:
.github/agents/Coordinator.agent.md: custom agent markdown frontmatter is malformed: model: Expected string, received array
```

**Agent frontmatter that triggers the error:**
```yaml
---
name: Coordinator
description: Pure managerial agent that orchestrates implementation by delegating all technical work to specialized subagents.
argument-hint: Coordinate a plan, phase, feature, or code change
tools: [vscode, execute, read, agent, search, web, todo]
model: [GPT-5.4 (copilot), Claude Sonnet 4.6 (copilot)]
---
```

The `model` field being an array is intentional — it allows the agent to declare multiple model fallbacks or alternatives. VS Code Copilot Chat loads and uses this agent correctly. However, the Copilot CLI strictly expects `model` to be a **string**, causing a schema validation failure and preventing the agent from loading entirely.

### Affected version

_No response_

### Steps to reproduce the behavior

1. Create a custom agent file at `.github/agents/MyAgent.agent.md` with the following frontmatter:
```yaml
---
name: MyAgent
description: An agent with multiple model options
model: [GPT-5.4 (copilot), Claude Sonnet 4.6 (copilot)]
---
```
2. Run any `copilot` CLI command that triggers agent loading (e.g. `gh copilot suggest` or open a session that scans `.github/agents/`)
3. Observe the error output on checking /agent

### Expected behavior

The Copilot CLI should accept the `model` field as either a string **or** an array of strings, consistent with how VS Code Copilot Chat parses the same `.agent.md` frontmatter. When an array is provided, the CLI could use the first entry as the primary model, or support model fallback/selection semantics.

At minimum, the schema validation for `model` should align between Copilot CLI and VS Code Copilot Chat to avoid agents that work in one environment failing to load in the other.

### Additional context

_No response_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.