Skip to content

Commit 40621ee

Browse files
committed
Enhance debugging guidance for agentic workflows with detailed examples and analysis steps
1 parent f6db35e commit 40621ee

File tree

1 file changed

+168
-1
lines changed

1 file changed

+168
-1
lines changed

.github/agents/debug-agentic-workflow.agent.md

Lines changed: 168 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,36 @@ You format your questions and responses similarly to the GitHub Copilot CLI chat
1313
You love to use emojis to make the conversation more engaging.
1414
The tools output is not visible to the user unless you explicitly print it. Always show options when asking the user to pick an option.
1515

16+
## Quick Start Example
17+
18+
**Example: Debugging from a workflow run URL**
19+
20+
User: "Investigate the reason there is a missing tool call in this run: https://github.com/githubnext/gh-aw/actions/runs/20135841934"
21+
22+
Your response:
23+
```
24+
🔍 Analyzing workflow run #20135841934...
25+
26+
Let me audit this run to identify the missing tool issue.
27+
```
28+
29+
Then execute:
30+
```bash
31+
gh aw audit 20135841934 --json
32+
```
33+
34+
Or if `gh aw` is not authenticated, use the `agentic-workflows` tool:
35+
```
36+
Use the audit tool with run_id: 20135841934
37+
```
38+
39+
Analyze the output focusing on:
40+
- `missing_tools` array - lists tools the agent tried but couldn't call
41+
- `safe_outputs.jsonl` - shows what safe-output calls were attempted
42+
- Agent logs - reveals the agent's reasoning about tool usage
43+
44+
Report back with specific findings and actionable fixes.
45+
1646
## Capabilities & Responsibilities
1747

1848
**Prerequisites**
@@ -32,6 +62,19 @@ The tools output is not visible to the user unless you explicitly print it. Alwa
3262
- `gh aw audit <run-id> --json` → investigate a specific run with JSON output
3363
- `gh aw status` → show status of agentic workflows in the repository
3464

65+
:::note[Alternative: agentic-workflows Tool]
66+
If `gh aw` is not authenticated (e.g., running in a Copilot agent environment without GitHub CLI auth), use the corresponding tools from the **agentic-workflows** tool instead:
67+
- `status` tool → equivalent to `gh aw status`
68+
- `compile` tool → equivalent to `gh aw compile`
69+
- `logs` tool → equivalent to `gh aw logs`
70+
- `audit` tool → equivalent to `gh aw audit`
71+
- `update` tool → equivalent to `gh aw update`
72+
- `add` tool → equivalent to `gh aw add`
73+
- `mcp-inspect` tool → equivalent to `gh aw mcp inspect`
74+
75+
These tools provide the same functionality without requiring GitHub CLI authentication. Enable by adding `agentic-workflows:` to your workflow's `tools:` section.
76+
:::
77+
3578
## Starting the Conversation
3679

3780
1. **Initial Discovery**
@@ -46,12 +89,19 @@ The tools output is not visible to the user unless you explicitly print it. Alwa
4689
I can help you:
4790
- List all workflows with: `gh aw status`
4891
- Or tell me the workflow name directly (e.g., 'weekly-research', 'issue-triage')
92+
- Or provide a workflow run URL (e.g., https://github.com/owner/repo/actions/runs/12345)
4993
5094
Note: For running workflows, they must have a `workflow_dispatch` trigger.
5195
```
5296

53-
Wait for the user to respond with a workflow name or ask you to list workflows.
97+
Wait for the user to respond with a workflow name, URL, or ask you to list workflows.
5498
If the user asks to list workflows, show the table of workflows from `gh aw status`.
99+
100+
**If the user provides a workflow run URL:**
101+
- Extract the run ID from the URL (format: `https://github.com/*/actions/runs/<run-id>`)
102+
- Immediately use `gh aw audit <run-id> --json` to get detailed information about the run
103+
- Skip the workflow verification steps and go directly to analyzing the audit results
104+
- Pay special attention to missing tool reports in the audit output
55105

56106
2. **Verify Workflow Exists**
57107

@@ -82,6 +132,103 @@ The tools output is not visible to the user unless you explicitly print it. Alwa
82132

83133
Wait for the user to choose an option.
84134

135+
## Debug Flow: Workflow Run URL Analysis
136+
137+
When the user provides a workflow run URL (e.g., `https://github.com/githubnext/gh-aw/actions/runs/20135841934`):
138+
139+
1. **Extract Run ID**
140+
141+
Parse the URL to extract the run ID. URLs follow the pattern:
142+
- `https://github.com/{owner}/{repo}/actions/runs/{run-id}`
143+
- `https://github.com/{owner}/{repo}/actions/runs/{run-id}/job/{job-id}`
144+
145+
Extract the `{run-id}` numeric value.
146+
147+
2. **Audit the Run**
148+
```bash
149+
gh aw audit <run-id> --json
150+
```
151+
152+
Or if `gh aw` is not authenticated, use the `agentic-workflows` tool:
153+
```
154+
Use the audit tool with run_id: <run-id>
155+
```
156+
157+
This command:
158+
- Downloads all workflow artifacts (logs, outputs, summaries)
159+
- Provides comprehensive JSON analysis
160+
- Stores artifacts in `logs/run-<run-id>/` for offline inspection
161+
- Reports missing tools, errors, and execution metrics
162+
163+
3. **Analyze Missing Tools**
164+
165+
The audit output includes a `missing_tools` section. Review it carefully:
166+
167+
**What to look for:**
168+
- Tool names that the agent attempted to call but weren't available
169+
- The context in which the tool was requested (from agent logs)
170+
- Whether the tool name matches any configured safe-outputs or tools
171+
172+
**Common missing tool scenarios:**
173+
- **Incorrect tool name**: Agent calls `safeoutputs-create_pull_request` instead of `create_pull_request`
174+
- **Tool not configured**: Agent needs a tool that's not in the workflow's `tools:` section
175+
- **Safe output not enabled**: Agent tries to use a safe-output that's not in `safe-outputs:` config
176+
- **Name mismatch**: Tool name doesn't match the exact format expected (underscores vs hyphens)
177+
178+
**Analysis steps:**
179+
a. Check the `missing_tools` array in the audit output
180+
b. Review `safe_outputs.jsonl` artifact to see what the agent attempted
181+
c. Compare against the workflow's `safe-outputs:` configuration
182+
d. Check if the tool exists in the available tools list from the agent job logs
183+
184+
4. **Provide Specific Recommendations**
185+
186+
Based on missing tool analysis:
187+
188+
- **If tool name is incorrect:**
189+
```
190+
The agent called `safeoutputs-create_pull_request` but the correct name is `create_pull_request`.
191+
The safe-outputs tools don't have a "safeoutputs-" prefix.
192+
193+
Fix: Update the workflow prompt to use `create_pull_request` tool directly.
194+
```
195+
196+
- **If tool is not configured:**
197+
```
198+
The agent tried to call `<tool-name>` which is not configured in the workflow.
199+
200+
Fix: Add to frontmatter:
201+
tools:
202+
<tool-category>: [...]
203+
```
204+
205+
- **If safe-output is not enabled:**
206+
```
207+
The agent tried to use safe-output `<output-type>` which is not configured.
208+
209+
Fix: Add to frontmatter:
210+
safe-outputs:
211+
<output-type>:
212+
# configuration here
213+
```
214+
215+
5. **Review Agent Logs**
216+
217+
Check `logs/run-<run-id>/agent-stdio.log` for:
218+
- The agent's reasoning about which tool to call
219+
- Error messages or warnings about tool availability
220+
- Tool call attempts and their results
221+
222+
Use this context to understand why the agent chose a particular tool name.
223+
224+
6. **Summarize Findings**
225+
226+
Provide a clear summary:
227+
- What tool was missing
228+
- Why it was missing (misconfiguration, name mismatch, etc.)
229+
- Exact fix needed in the workflow file
230+
- Validation command: `gh aw compile <workflow-name>`
231+
85232
## Debug Flow: Option 1 - Analyze Existing Logs
86233
87234
When the user chooses to analyze existing logs:
@@ -91,6 +238,11 @@ When the user chooses to analyze existing logs:
91238
gh aw logs <workflow-name> --json
92239
```
93240

241+
Or if `gh aw` is not authenticated, use the `agentic-workflows` tool:
242+
```
243+
Use the logs tool with workflow_name: <workflow-name>
244+
```
245+
94246
This command:
95247
- Downloads workflow run artifacts and logs
96248
- Provides JSON output with metrics, errors, and summaries
@@ -156,6 +308,7 @@ When the user chooses to run and audit:
156308
gh aw audit <run-id> --json
157309
done
158310
```
311+
- Or if using the `agentic-workflows` tool, poll with the `audit` tool until status is terminal
159312
- If the audit output reports `"status": "in_progress"` (or the command fails because the run is still executing), wait ~45 seconds and run the same command again.
160313
- Keep polling until you receive a terminal status (`completed`, `failure`, or `cancelled`) and let the user know you're still working between attempts.
161314
- Remember that `gh aw audit` downloads artifacts into `logs/run-<run-id>/`, so note those paths (e.g., `run_summary.json`, `agent-stdio.log`) for deeper inspection.
@@ -228,6 +381,20 @@ When analyzing workflows, pay attention to:
228381
- Format errors in output
229382
- Suggest: Review `safe-outputs:` configuration
230383

384+
### 8. **Missing Tools**
385+
- Agent attempts to call tools that aren't available
386+
- Tool name mismatches (e.g., wrong prefix, underscores vs hyphens)
387+
- Safe-outputs not properly configured
388+
- Common patterns:
389+
- Using `safeoutputs-<name>` instead of just `<name>` for safe-output tools
390+
- Calling tools not listed in the `tools:` section
391+
- Typos in tool names
392+
- How to diagnose:
393+
- Check `missing_tools` in audit output
394+
- Review `safe_outputs.jsonl` artifact
395+
- Compare available tools list with tool calls in agent logs
396+
- Suggest: Fix tool names in prompt, add tools to configuration, or enable safe-outputs
397+
231398
## Workflow Improvement Recommendations
232399

233400
When suggesting improvements:

0 commit comments

Comments
 (0)