@botpress/adk-cli 1.19.0-beta.3 → 1.19.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/ui-dist/assets/{index-CSTz-oTK.js → index-B3b7PPgV.js} +4 -4
- package/{dist/index-DNqXHLNi-27nvpkee.js → assets/ui-dist/assets/index-BESZeTO5.js} +2 -2
- package/{dist/index-DAztRXeA-vr85xnxs.css → assets/ui-dist/assets/index-DIFGtVmI.css} +1 -1
- package/{dist/index-DfjXY3Oo-szsanhnt.js → assets/ui-dist/assets/index-a3ZL0_Jr.js} +2 -2
- package/assets/ui-dist/index.html +2 -2
- package/dist/{README-wjb7z7f0.md → README-824wa4jj.md} +1 -1
- package/dist/SKILL-75ym6tcj.md +257 -0
- package/dist/SKILL-chnwzmt1.md +548 -0
- package/dist/SKILL-d4bs53y3.md +244 -0
- package/dist/SKILL-h4b2f1n9.md +114 -0
- package/dist/SKILL-hbw5nt95.md +111 -0
- package/dist/actions-h7hxxvxr.md +823 -0
- package/dist/adk-build-emhwd0tg.md +39 -0
- package/dist/adk-debug-yrrdtpmb.md +23 -0
- package/dist/adk-dev-console-7z9rtjpy.md +17 -0
- package/dist/adk-document-ras6zzzh.md +68 -0
- package/dist/adk-eval-vx76dwq0.md +17 -0
- package/dist/adk-explain-fcsaw852.md +22 -0
- package/dist/adk-init-9kmxmbbe.md +30 -0
- package/dist/adk-ship-dybzn884.md +29 -0
- package/dist/adk-test-xq67savs.md +27 -0
- package/dist/adk-validate-1p4skv4m.md +31 -0
- package/dist/advanced-patterns-z86m9h1a.md +669 -0
- package/dist/agent-config-1aqvkrgf.md +450 -0
- package/dist/agent-steps-zj4c1n9t.md +115 -0
- package/dist/agent0-assets/skills/adk/SKILL.md +5 -5
- package/dist/agent0-assets/skills/adk/references/cli.md +265 -24
- package/dist/agent0-assets/skills/adk-debugger/SKILL.md +5 -5
- package/dist/agent0-assets/skills/adk-debugger/references/common-failures.md +1 -1
- package/dist/agent0-assets/skills/adk-debugger/references/debug-workflow.md +3 -3
- package/dist/agent0-assets/skills/adk-debugger/references/traces-and-logs.md +15 -7
- package/dist/assets-q7jt8r2q.md +237 -0
- package/dist/autonomous-execution-fymc12e5.md +747 -0
- package/dist/cli-c31e06yr.md +1334 -0
- package/dist/cli.js +963 -548
- package/dist/commands.json +24 -3
- package/dist/common-failures-ht29w2db.md +231 -0
- package/dist/component-registry-bbpw0see.md +43 -0
- package/dist/context-api-760cvh0h.md +461 -0
- package/dist/conversation-analysis-8ka4nrm4.md +420 -0
- package/dist/conversation-lifecycle-4seqqjc1.md +311 -0
- package/dist/conversations-gwfvxaee.md +1111 -0
- package/dist/custom-components-y5wdgpey.md +167 -0
- package/dist/debug-workflow-vz84q80v.md +239 -0
- package/dist/desk-k54ktvsd.md +852 -0
- package/dist/doc-standards-ck6ax2jd.md +124 -0
- package/dist/eval-format-7n9brja4.md +354 -0
- package/dist/evals-y1zcr1mc.md +11 -0
- package/dist/explain-config-1yaq3zzd.md +424 -0
- package/dist/files-dzt0wxn3.md +918 -0
- package/dist/{index-gqxgqnyz.html → index-3t354nbw.html} +2 -2
- package/dist/{index-CSTz-oTK-mdfh47r8.js → index-B3b7PPgV-zetkb01w.js} +4 -4
- package/{assets/ui-dist/assets/index-DNqXHLNi.js → dist/index-BESZeTO5-2rpmcefa.js} +2 -2
- package/{assets/ui-dist/assets/index-DAztRXeA.css → dist/index-DIFGtVmI-d4dhjg97.css} +1 -1
- package/{assets/ui-dist/assets/index-DfjXY3Oo.js → dist/index-a3ZL0_Jr-q145h35p.js} +2 -2
- package/dist/integration-actions-xang7tma.md +659 -0
- package/dist/integrations-k5ss07f4.md +266 -0
- package/dist/interfaces-6t0bpxs4.md +97 -0
- package/dist/knowledge-bases-20rg8p5c.md +456 -0
- package/dist/llm-debugging-76ng8rzm.md +209 -0
- package/dist/mcp-server-n1asyzhv.md +112 -0
- package/dist/messages-gkkg0b54.md +769 -0
- package/dist/model-configuration-f273kgd0.md +201 -0
- package/dist/multi-agent-dashboard-1mdfjdts.md +70 -0
- package/dist/pages-xn18xn73.md +273 -0
- package/dist/patterns-mistakes-5vb99dhf.md +469 -0
- package/dist/plugins-ttnx8f49.md +280 -0
- package/dist/tables-x45t36dd.md +1136 -0
- package/dist/tags-46td3qrg.md +516 -0
- package/dist/test-patterns-hj47w4nc.md +355 -0
- package/dist/testing-workflow-2vkp932f.md +225 -0
- package/dist/tools-wk7bq24z.md +581 -0
- package/dist/trace-summarization-hdyx1c2e.md +313 -0
- package/dist/traces-and-logs-f2kjfh19.md +203 -0
- package/dist/triggers-4j2cc86x.md +719 -0
- package/dist/ui-server-entry.js +977 -162
- package/dist/workflow-steps-mrdrf1c5.md +851 -0
- package/dist/workflows-gadx3s69.md +1408 -0
- package/dist/zai-agent-reference-e6644aad.md +454 -0
- package/dist/zai-complete-guide-mnna5d6f.md +1408 -0
- package/package.json +4 -4
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adk-evals
|
|
3
|
+
description: Complete reference for writing, running, and iterating on evals (automated conversation tests) for ADK agents. Covers eval file format, all assertion types, CLI usage, and per-primitive testing patterns.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ADK Evals Skill
|
|
8
|
+
|
|
9
|
+
## What are Evals?
|
|
10
|
+
|
|
11
|
+
Evals are automated conversation tests for ADK agents. Each eval defines a scenario — a sequence of user messages or events — and asserts on what the bot should do: what it says, which tools it calls, how state changes, which workflows run, and more.
|
|
12
|
+
|
|
13
|
+
Evals run against a live dev bot (`adk dev`), so they test the full stack — not mocks.
|
|
14
|
+
|
|
15
|
+
## When to Use This Skill
|
|
16
|
+
|
|
17
|
+
Use this skill when the developer asks about:
|
|
18
|
+
|
|
19
|
+
- **Writing evals** — file format, assertions, turn types, setup
|
|
20
|
+
- **Running evals** — CLI commands, filtering, output interpretation
|
|
21
|
+
- **Testing specific primitives** — how to test actions, tools, workflows, conversations, state
|
|
22
|
+
- **The testing loop** — write → run → inspect traces → iterate
|
|
23
|
+
- **CI integration** — exit codes, `--format json` flag, tagging strategies
|
|
24
|
+
- **Eval configuration** — idleTimeout, judgePassThreshold, judgeModel
|
|
25
|
+
|
|
26
|
+
Or when you are developing an ADK bot and need to write the equivalent of unit/end-to-end tests.
|
|
27
|
+
|
|
28
|
+
**Trigger questions:**
|
|
29
|
+
- "How do I write an eval?"
|
|
30
|
+
- "How do I test my workflow?"
|
|
31
|
+
- "How do I assert that a tool was called with specific params?"
|
|
32
|
+
- "My eval is failing, how do I debug it?"
|
|
33
|
+
- "How do I test that the bot stays silent?"
|
|
34
|
+
- "How do I run evals in CI?"
|
|
35
|
+
- "How do I seed state before an eval?"
|
|
36
|
+
- "How do I trigger a workflow in an eval?"
|
|
37
|
+
|
|
38
|
+
## Available Documentation
|
|
39
|
+
|
|
40
|
+
| File | Contents |
|
|
41
|
+
|------|----------|
|
|
42
|
+
| `references/eval-format.md` | Complete file format — all fields, turn types, assertion categories, match operators, setup, outcome, options |
|
|
43
|
+
| `references/testing-workflow.md` | Running evals, interpreting output, using traces, the write → test → iterate loop, CI integration |
|
|
44
|
+
| `references/test-patterns.md` | Per-primitive patterns for actions, tools, workflows, conversations, and state |
|
|
45
|
+
|
|
46
|
+
## How to Answer
|
|
47
|
+
|
|
48
|
+
1. **Writing an eval** → Read `eval-format.md` for structure and assertions
|
|
49
|
+
2. **Running evals** → Read `testing-workflow.md` for CLI commands and output
|
|
50
|
+
3. **Testing a specific primitive** → Read `test-patterns.md` for the relevant section
|
|
51
|
+
4. **Debugging a failure** → Combine `testing-workflow.md` (inspect traces) + `eval-format.md` (check assertion syntax)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Quick Reference
|
|
56
|
+
|
|
57
|
+
### Eval file structure
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import { Eval } from '@botpress/evals'
|
|
61
|
+
|
|
62
|
+
export default new Eval({
|
|
63
|
+
name: 'greeting',
|
|
64
|
+
type: 'regression',
|
|
65
|
+
tags: ['basic'],
|
|
66
|
+
|
|
67
|
+
setup: {
|
|
68
|
+
state: { bot: { welcomeSent: false } },
|
|
69
|
+
workflow: { trigger: 'onboarding', input: { userId: 'test-1' } },
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
conversation: [
|
|
73
|
+
{
|
|
74
|
+
user: 'Hi!',
|
|
75
|
+
assert: {
|
|
76
|
+
response: [
|
|
77
|
+
{ not_contains: 'error' },
|
|
78
|
+
{ llm_judge: 'Response is friendly and offers to help' },
|
|
79
|
+
],
|
|
80
|
+
tools: [{ not_called: 'createTicket' }],
|
|
81
|
+
state: [{ path: 'conversation.greeted', equals: true }],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
|
|
86
|
+
outcome: {
|
|
87
|
+
state: [{ path: 'conversation.greeted', equals: true }],
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
options: {
|
|
91
|
+
idleTimeout: 60000,
|
|
92
|
+
judgePassThreshold: 4,
|
|
93
|
+
},
|
|
94
|
+
})
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Turn types
|
|
98
|
+
|
|
99
|
+
| Turn | When to use |
|
|
100
|
+
|------|------------|
|
|
101
|
+
| `user: 'message'` | Standard user message |
|
|
102
|
+
| `event: { type, payload }` | Non-message trigger (webhook, integration event) |
|
|
103
|
+
| `expectSilence: true` | Assert bot does NOT respond |
|
|
104
|
+
|
|
105
|
+
### Assertion categories
|
|
106
|
+
|
|
107
|
+
| Category | What it checks |
|
|
108
|
+
|----------|---------------|
|
|
109
|
+
| `response` | Bot reply text (contains, not_contains, matches, llm_judge) |
|
|
110
|
+
| `tools` | Tool calls (called, not_called, call_order, params) |
|
|
111
|
+
| `state` | Bot/user/conversation state (equals, changed) |
|
|
112
|
+
| `workflow` | Workflow execution (entered, completed) |
|
|
113
|
+
| `timing` | Response time in ms (lte, gte) |
|
|
114
|
+
|
|
115
|
+
### CLI commands
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
adk evals # run all evals
|
|
119
|
+
adk evals <name> # run one eval
|
|
120
|
+
adk evals --tag <tag> # filter by tag
|
|
121
|
+
adk evals --type regression # filter by type
|
|
122
|
+
adk evals --verbose # show all assertions
|
|
123
|
+
adk evals --format json # JSON output for CI
|
|
124
|
+
|
|
125
|
+
adk evals runs # list recent runs
|
|
126
|
+
adk evals runs --latest # most recent run
|
|
127
|
+
adk evals runs --latest -v # with full details
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Critical Patterns
|
|
133
|
+
|
|
134
|
+
✅ **Every turn needs `user` or `event`**
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// CORRECT
|
|
138
|
+
{ user: 'hello', expectSilence: true }
|
|
139
|
+
{ event: { type: 'payment.failed' }, expectSilence: true }
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
❌ **`expectSilence` alone is not a valid turn**
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
// WRONG — missing user or event
|
|
146
|
+
{ expectSilence: true }
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
✅ **Assert tool params to verify correct extraction**
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
// CORRECT — verifies the LLM extracted the right values
|
|
155
|
+
{ called: 'createTicket', params: { priority: { equals: 'high' } } }
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
❌ **Only asserting the tool was called**
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// INCOMPLETE — doesn't verify params were correct
|
|
162
|
+
{ called: 'createTicket' }
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
✅ **Use `outcome` for post-conversation state and workflow assertions**
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// CORRECT — final state checked once after all turns
|
|
171
|
+
outcome: {
|
|
172
|
+
state: [{ path: 'conversation.resolved', equals: true }],
|
|
173
|
+
workflow: [{ name: 'ticketFlow', completed: true }],
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
✅ **Seed state to test conditional behavior without running setup turns**
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// CORRECT — start in a known state
|
|
183
|
+
setup: {
|
|
184
|
+
state: {
|
|
185
|
+
user: { plan: 'pro' },
|
|
186
|
+
conversation: { phase: 'support' },
|
|
187
|
+
},
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
❌ **Using conversation turns to set up state (slow and fragile)**
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// WRONG — depends on the bot correctly processing setup turns
|
|
195
|
+
conversation: [
|
|
196
|
+
{ user: 'I am on the pro plan' }, // hoping bot sets user.plan
|
|
197
|
+
{ user: 'I need help with billing' }, // actual test turn
|
|
198
|
+
]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Example Questions
|
|
204
|
+
|
|
205
|
+
**Writing evals:**
|
|
206
|
+
- "Write an eval that tests my createTicket tool is called with the right priority"
|
|
207
|
+
- "How do I assert that the bot stays silent after an internal event?"
|
|
208
|
+
- "How do I test a multi-turn conversation where context is retained?"
|
|
209
|
+
|
|
210
|
+
**Running evals:**
|
|
211
|
+
- "How do I run only regression evals?"
|
|
212
|
+
- "How do I see which assertions failed and why?"
|
|
213
|
+
- "How do I integrate evals into GitHub Actions?"
|
|
214
|
+
|
|
215
|
+
**Debugging:**
|
|
216
|
+
- "My eval says the tool wasn't called but I think it was — how do I check?"
|
|
217
|
+
- "How do I inspect what the bot actually did during an eval?"
|
|
218
|
+
|
|
219
|
+
**Per-primitive:**
|
|
220
|
+
- "How do I test a workflow that uses step.sleep()?"
|
|
221
|
+
- "How do I test that state changed from the seeded value?"
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Response Format
|
|
226
|
+
|
|
227
|
+
**Match depth to the question.**
|
|
228
|
+
|
|
229
|
+
### Simple questions ("what assertions are available?", "how do I run evals?")
|
|
230
|
+
|
|
231
|
+
Answer directly — show the relevant table or CLI command. Don't generate a full eval file for an informational question.
|
|
232
|
+
|
|
233
|
+
### Writing an eval
|
|
234
|
+
|
|
235
|
+
1. Show the complete `new Eval({})` call with realistic field values
|
|
236
|
+
2. Include imports (`import { Eval } from '@botpress/evals'`)
|
|
237
|
+
3. Briefly explain non-obvious assertions — skip if the assertion is self-explanatory
|
|
238
|
+
4. Suggest the CLI command to run it: `adk evals <name>`
|
|
239
|
+
|
|
240
|
+
### Debugging a failing eval
|
|
241
|
+
|
|
242
|
+
1. Ask for or show the failing assertion (`expected` / `actual` diff)
|
|
243
|
+
2. Suggest opening traces in the Dev Console to see what the bot did
|
|
244
|
+
3. Identify whether the issue is in the eval assertion or the bot's behavior
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adk-docs
|
|
3
|
+
description: guidelines for creating, reviewing, updating, and searching ADK documentation - use when users ask about writing, maintaining, or auditing ADK bot docs
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ADK Documentation Management
|
|
8
|
+
|
|
9
|
+
Use this skill when helping users create, review, update, or maintain documentation for their ADK projects. Users write guides and docs for their own bots and features — code examples should come from their project and the official ADK repo.
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
Activate this skill when users:
|
|
14
|
+
|
|
15
|
+
- Want to create documentation for their bot ("Document my order workflow", "Write a guide for my custom actions")
|
|
16
|
+
- Need to review existing project docs for accuracy ("Check if my docs are still correct")
|
|
17
|
+
- Want to update docs after changing their bot ("I refactored the checkout flow, update the docs")
|
|
18
|
+
- Need to check if docs are in sync with their code ("Are my docs current?")
|
|
19
|
+
- Want to search their project documentation ("Find docs about my payment handler")
|
|
20
|
+
- Ask about documentation standards or templates
|
|
21
|
+
- Mention `/adk-document`
|
|
22
|
+
|
|
23
|
+
## Available Documentation
|
|
24
|
+
|
|
25
|
+
| File | Description |
|
|
26
|
+
|------|-------------|
|
|
27
|
+
| [references/doc-standards.md](./references/doc-standards.md) | Document types, templates, quality checklists, and health metrics |
|
|
28
|
+
|
|
29
|
+
## Available Commands
|
|
30
|
+
|
|
31
|
+
| Command (and suggested subcommand) | Description |
|
|
32
|
+
|---------|-------------|
|
|
33
|
+
| `/adk-document create [topic]` | Create documentation for a feature in the user's bot |
|
|
34
|
+
| `/adk-document review [doc-path]` | Review project docs for accuracy and completeness |
|
|
35
|
+
| `/adk-document update [doc-path] [what-changed]` | Update project docs after code changes |
|
|
36
|
+
| `/adk-document sync [optional-doc-path]` | Check if project docs are in sync with the bot's code |
|
|
37
|
+
| `/adk-document search [search-term]` | Search project documentation for specific topics |
|
|
38
|
+
|
|
39
|
+
## Shared Principles
|
|
40
|
+
|
|
41
|
+
### 1. AI-Optimized Structure
|
|
42
|
+
|
|
43
|
+
- Clear section headers (`##`, `###`, `####`) so ripgrep can find sections
|
|
44
|
+
- Table of contents at top with anchor links
|
|
45
|
+
- Right-sized for document type (see doc-standards reference)
|
|
46
|
+
- Keyword-rich section names — no vague "Advanced Topics" or "Other"
|
|
47
|
+
|
|
48
|
+
### 2. Code-First Approach
|
|
49
|
+
|
|
50
|
+
- Every concept needs a working code example from actual project code
|
|
51
|
+
- Include file paths with line numbers for verification
|
|
52
|
+
- Primary sources for examples (in priority order):
|
|
53
|
+
1. The user's own ADK project (look for `agent.config.ts` in the workspace) — BEST
|
|
54
|
+
2. The official ADK repo examples (clone or find locally)
|
|
55
|
+
3. ADK runtime usage (`@botpress/runtime` packages)
|
|
56
|
+
- Never invent or speculate examples — all code must be verifiable
|
|
57
|
+
|
|
58
|
+
### 3. Critical Distinctions
|
|
59
|
+
|
|
60
|
+
- ADK primitives (from `@botpress/runtime`) vs Botpress SDK primitives
|
|
61
|
+
- `this.send()` in conversations vs `client.createMessage()` in workflows
|
|
62
|
+
- Messages (persistent, stored) vs Events (ephemeral, not stored)
|
|
63
|
+
- Agnostic APIs vs channel-specific features
|
|
64
|
+
|
|
65
|
+
### 4. No Speculation
|
|
66
|
+
|
|
67
|
+
- Do NOT add Common Mistakes or Best Practices sections unless the user explicitly provides them
|
|
68
|
+
- Use `❌ WRONG` / `✅ CORRECT` only when documenting actual reported errors
|
|
69
|
+
- Workflows and examples must be verified from actual code, not imagined
|
|
70
|
+
|
|
71
|
+
### 5. Writing Style
|
|
72
|
+
|
|
73
|
+
- **Direct and actionable** — "Use `this.send()`" not "You might want to consider..."
|
|
74
|
+
- **Technically accurate** — test examples against actual ADK code
|
|
75
|
+
- **Assumes intelligence** — provide context and guidance, not hand-holding
|
|
76
|
+
- **No marketing fluff** — straight to the technical substance
|
|
77
|
+
|
|
78
|
+
## How to Answer
|
|
79
|
+
|
|
80
|
+
When a user asks about documentation without invoking a specific command:
|
|
81
|
+
|
|
82
|
+
1. **Load the `adk` skill (& more, if needed)** for ADK context and knowledge
|
|
83
|
+
2. **Identify what they need** — creating, reviewing, updating, syncing, or searching
|
|
84
|
+
3. **Point them to the right command** or help directly using the principles above
|
|
85
|
+
4. **Reference doc-standards** for template and quality guidance
|
|
86
|
+
|
|
87
|
+
## Documentation Location
|
|
88
|
+
|
|
89
|
+
Documentation is written in the user's own project. Ask the user where they want docs saved if not obvious (common locations: `./docs/`, `./guides/`, or project root).
|
|
90
|
+
|
|
91
|
+
## Discovering Code Sources
|
|
92
|
+
|
|
93
|
+
Discover the user's project and the official ADK repo for examples:
|
|
94
|
+
|
|
95
|
+
```javascript
|
|
96
|
+
// Find ADK projects in the workspace
|
|
97
|
+
Glob({ pattern: "**/agent.config.ts" })
|
|
98
|
+
|
|
99
|
+
// Find ADK runtime usage in the user's project
|
|
100
|
+
Grep({ pattern: "from ['\"]@botpress/runtime", output_mode: "files_with_matches" })
|
|
101
|
+
|
|
102
|
+
// Look for existing project documentation
|
|
103
|
+
Glob({ pattern: "./{docs,guides}/**/*.md" })
|
|
104
|
+
|
|
105
|
+
// Find official ADK examples if available locally
|
|
106
|
+
Glob({ pattern: "**/adk/examples/**/*.ts" })
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Cross-References
|
|
110
|
+
|
|
111
|
+
- **`adk` skill** — Core ADK knowledge (actions, workflows, conversations, etc.)
|
|
112
|
+
- **`adk-evals` skill** — Testing and eval documentation
|
|
113
|
+
- **`adk-frontend` skill** — Frontend integration documentation
|
|
114
|
+
- **`adk` skill `integrations.md` reference** — Integration lifecycle documentation
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adk-dev-console
|
|
3
|
+
description: Explains the ADK Dev Console — what each tab shows, how to read Agent Steps, traces, multi-agent dashboard, agent switching, console modes, and other UI features visible at localhost:3001 during adk dev
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ADK Dev Console
|
|
8
|
+
|
|
9
|
+
The Dev Console is a local app served at port `3001` (by default, but can be customized) during `adk dev`. It gives developers real-time visibility into their agent's behavior — conversations, execution traces, data, integrations, and configuration.
|
|
10
|
+
|
|
11
|
+
The Dev Console is a **singleton shared dashboard**: one UI server per user, with multiple `adk dev` agents registering and deregistering dynamically. Developers can switch between running agents in the sidebar, toggle between dev and prod targets, and connect to deployed Cloud bots — all from the same browser tab.
|
|
12
|
+
|
|
13
|
+
## When to Use This Skill
|
|
14
|
+
|
|
15
|
+
Activate when users ask about:
|
|
16
|
+
|
|
17
|
+
- **UI concepts** — "What are Agent Steps?", "What does the Observe tab show?", "What is a turn?", "What is the component registry?", "What is the Agent Map?"
|
|
18
|
+
- **Dev Console navigation** — "What tabs are available?", "Where do I find traces?", "How do I test RAG?"
|
|
19
|
+
- **Reading execution data** — "What do the steps mean?", "Why is my step red?", "What's the cost shown?"
|
|
20
|
+
- **Component registry** — "Where do I find custom components?", "How do I install a component?", "What components are available?"
|
|
21
|
+
- **Multi-agent dashboard** — "How do I switch between agents?", "How do I run multiple agents?", "What does the agent selector show?", "How do I see which agents are running?"
|
|
22
|
+
- **Console modes and targets** — "What's the difference between dev and prod?", "How do I connect to a Cloud bot?", "What is Cloud Dev Console?"
|
|
23
|
+
- **Agent management CLI** — "How do I list running agents?", "How do I stop an agent?", "What does `adk ps` show?", "How do I open the dashboard?"
|
|
24
|
+
- **Specific pages** — "How do I use the evals page?", "Where do I configure integrations?", "How do I search knowledge?"
|
|
25
|
+
- **Comparing UI vs CLI** — "Should I use the Dev Console or CLI for debugging?"
|
|
26
|
+
- Mentions of `localhost:3001`, "dev console", "Dev Console", "component registry", "agent selector", "agent picker", "agent map", "Cloud Dev Console", or specific tab names (Chat, Build, Components, Data, Test, Observe, Config)
|
|
27
|
+
|
|
28
|
+
## Available Documentation
|
|
29
|
+
|
|
30
|
+
| File | Contents |
|
|
31
|
+
|------|----------|
|
|
32
|
+
| `references/agent-steps.md` | Agent Steps visualization — turns, iterations, tools, messages, state mutations, cost tracking, status indicators |
|
|
33
|
+
| `references/pages.md` | Every page/tab in the Dev Console — what it shows, key features, layout |
|
|
34
|
+
| `references/component-registry.md` | Component Registry — installed vs registry tabs, component lifecycle, runtime registry internals, UI features |
|
|
35
|
+
| `references/multi-agent-dashboard.md` | Multi-agent architecture, agent selector, console modes (local/cloud), dev/prod targets, CLI commands (`adk ps`, `adk kill`, `adk dashboard`, `adk status`) |
|
|
36
|
+
|
|
37
|
+
## How to Answer
|
|
38
|
+
|
|
39
|
+
Match depth to the question:
|
|
40
|
+
|
|
41
|
+
- **"What is X?"** (e.g., "What are Agent Steps?") → One sentence definition + what the user sees. Don't dump the full data model.
|
|
42
|
+
- **"Where do I find X?"** → Name the tab group and page, give the URL path.
|
|
43
|
+
- **"How do I read X?"** → Explain the visual hierarchy and what each element means.
|
|
44
|
+
- **"What does this mean?"** (pointing at something in the UI) → Identify the component, explain its meaning.
|
|
45
|
+
|
|
46
|
+
## Quick Reference
|
|
47
|
+
|
|
48
|
+
### Tab Groups
|
|
49
|
+
|
|
50
|
+
| Group | Pages | Purpose |
|
|
51
|
+
|-------|-------|---------|
|
|
52
|
+
| **Chat** | Chat | Test the agent via webchat + see Agent Steps |
|
|
53
|
+
| **Build** | Agent Map | Interactive agent architecture graph (experimental, feature-flagged behind `enable_agent_forge`) |
|
|
54
|
+
| **Components** | Webchat Components, Actions, Workflows, Triggers | Browse component registry, test bot primitives |
|
|
55
|
+
| **Test** | RAG Search, Evals | Test knowledge search and run automated evals |
|
|
56
|
+
| **Data** | Knowledge, Tables, Files | Manage knowledge bases, tables, and files |
|
|
57
|
+
| **Observe** | Conversations, Traces, Logs | View conversation history, execution traces, runtime logs |
|
|
58
|
+
| **Config** | Settings, Integrations | Agent config, secrets, LLM settings, integration management |
|
|
59
|
+
|
|
60
|
+
### Multi-Agent Sidebar
|
|
61
|
+
|
|
62
|
+
The sidebar header shows the currently selected agent with a status indicator and mode pill (dev/prod/cloud). Clicking it opens the **Agent Selector** dropdown:
|
|
63
|
+
|
|
64
|
+
- **Active agents** — all running local agents with status dot, name, project path, and a close button
|
|
65
|
+
- **Cloud Dev Console** — switch to a deployed Botpress Cloud bot (workspace + bot picker)
|
|
66
|
+
- **Recent projects** — previously opened projects not currently running
|
|
67
|
+
- **Footer actions** — Create new project, Open existing, Switch environment (dev↔prod), About
|
|
68
|
+
|
|
69
|
+
### Agent Steps (Chat Page)
|
|
70
|
+
|
|
71
|
+
The right panel of the Chat page shows **Agent Steps** — a real-time visualization of what the agent did to process each message.
|
|
72
|
+
|
|
73
|
+
**Hierarchy:** Turn → Iterations → Tools / Messages / State Mutations
|
|
74
|
+
|
|
75
|
+
- **Turn** = one conversation exchange (user message → agent processing → response)
|
|
76
|
+
- **Iteration** = one loop of the autonomous agent (think → decide → act)
|
|
77
|
+
- **Tool** = a tool call within an iteration (violet card)
|
|
78
|
+
- **Message** = a bot message sent (blue card)
|
|
79
|
+
- **State Mutation** = a state change (teal card, shows before/after)
|
|
80
|
+
|
|
81
|
+
**Status indicators:** ✓ green = ok, ✗ red = error, ⟳ blue spinning = running
|
|
82
|
+
|
|
83
|
+
**AI metrics per iteration:** model name, input/output tokens, cost (USD)
|
|
84
|
+
|
|
85
|
+
### Key URLs
|
|
86
|
+
|
|
87
|
+
| Path | Page |
|
|
88
|
+
|------|------|
|
|
89
|
+
| `/chat` | Chat + Agent Steps |
|
|
90
|
+
| `/agent-map` | Agent Map — interactive architecture graph (experimental) |
|
|
91
|
+
| `/components` | Component registry + installed components |
|
|
92
|
+
| `/actions` | Actions browser |
|
|
93
|
+
| `/workflows` | Workflows + run history |
|
|
94
|
+
| `/search` | RAG search testing |
|
|
95
|
+
| `/evals` | Eval definitions + runs |
|
|
96
|
+
| `/knowledge` | Knowledge base management |
|
|
97
|
+
| `/tables` | Table data management |
|
|
98
|
+
| `/traces` | Full trace viewer |
|
|
99
|
+
| `/conversations` | Conversation history |
|
|
100
|
+
| `/logs` | Runtime logs |
|
|
101
|
+
| `/settings` | Agent configuration |
|
|
102
|
+
| `/integrations` | Integration management |
|
|
103
|
+
|
|
104
|
+
### Multi-Agent CLI Commands
|
|
105
|
+
|
|
106
|
+
| Command | Purpose |
|
|
107
|
+
|---------|---------|
|
|
108
|
+
| `adk ps` | List running agents and processes with PIDs, ports, uptime (supports `--watch`) |
|
|
109
|
+
| `adk dashboard` | Open the DevConsole in standalone mode (no agent required) |
|
|
110
|
+
| `adk kill` | Stop agents or the entire DevConsole (`--all`, `--current`, `--pid`, or by name) |
|
|
111
|
+
| `adk status` | Show project health and status info |
|