polyai/adk/poly-adk-testing
Claude Code and agent skill by polyai/adk
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when the user wants to "test the agent", "chat with the agent", "call the agent", "run the test suite", "write a test case", "check why a test failed", or "run a function" built with the PolyAI ADK. Covers poly validate, scripted poly chat, the test_suite/ simulated conversation tests, and executing functions in isolation. Part of the PolyAI ADK skills suite. Do NOT use for inspecting real production calls (use poly-adk-conversations) or the general build workflow (use…
Install
npx vskill@latest install polyai/adk/poly-adk-testingSKILL.md
Testing a PolyAI Agent
Load poly-adk-workflow first for the overall build loop these commands fit into.
Four layers of verification, catching different problems:
| Command | Catches | Runs against | |
|---|---|---|---|
poly validate | Invalid resources, missing values, broken references | Local files | |
poly chat | Conversational behavior, judged by reading | Last pushed state | |
poly test run | Regressions, repeatably | Last pushed state | |
poly conversations | What happened on real calls (see poly-adk-conversations) | Live traffic |
`poly chat` and `poly test run` run against the last pushed state, not local files. Push first, or pass --push to push-and-run in one step. Both target the current branch by default; -e sandbox|pre-release|live targets a deployed environment instead.
1. Validate while editing
poly validate checks local files without contacting the platform — malformed resources, missing required values, and {{prefix:name}} references that don't resolve. Run it as you edit, not just before pushing; poly push runs the same validation and rejects anything validate rejects.
2. Chat with the agent
As an agent, always use the non-interactive modes:
Useful flags for reproducing specific situations:
--channel voice|webchat— which channel's settings apply (defaultvoice)--sip-header X-Customer-ID=12345— simulate SIP headers, exposed to project functions viaconv.sip_headers(repeatable; test-only, no real SIP call)--variant <name>— chat as a specific variant--lang/--input-lang/--output-lang— multilingual agents
With --json, output is a conversations array with per-turn detail mirroring the --functions/--flows/--state flags you enabled.
Chat is for judging whether a conversation feels right. Anything worth checking twice belongs in the test suite instead.
Voice calls (poly call) — a user-only route
poly call places a live WebRTC voice call to the agent through the user's microphone and speaker (draft/branch build only). It's the route for judging voice-specific behavior — speech, timing, barge-in — that a transcript can't show.
It is interactive and human-driven: you (the AI agent) can't use it — there's no way to speak into a call or script it non-interactively. When a user wants to check voice/audio behavior, point them at poly call (poly call --help) rather than running it yourself.
3. Simulated conversation tests
Test cases live in test_suite/ and assert what the agent should say and which functions it should call. They are the only repeatable layer — the thing that stops a fixed bug coming back. Run poly docs tests for the file format and available assertions before writing cases.
Statuses: pending, in_progress, passed, failed (assertion failed), errored, timed_out. After a run, failures are summarized with assertion reasons and conversation IDs.
Write cases for the paths that are tedious to reach by hand — an unavailable API, a caller changing their mind, variant-specific behavior. For the API case, api_mocks forces a named API integration operation to return a fixed response so the test is deterministic (see poly docs tests).
4. Execute a function in isolation
To debug one function without a conversation:
Limitations: builds a fresh conv from the branch config — no live caller, conv.state starts empty and is not persisted, and conv.say/conv.goto_flow/conv.call_handoff have no channel to act on. Covers global functions only, not flow transition functions or function steps. There is no way to attach to a real call.
Both subcommands accept --region --project_id --branch_id (all three together) to run headlessly without a local checkout.
Where each layer fits
Validation and chat belong in the edit loop; the test suite belongs before merging; and after promoting to an environment, re-run chat and tests against it with -e. A surprising real conversation found via poly-adk-conversations is the raw material for the next test case.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/poly-adk-testing/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/polyai/adk/poly-adk-testing)