agentleFS
polyaipolyai/adk/skills/poly-adk-conversations/SKILL.md

poly-adk-conversations

Skill83 starsChanged 39 days agoApache-2.0View on GitHub

This skill should be used when the user wants to "see what happened on a call", "review real conversations", "download a call recording", "debug a production call", or "add logging/metrics" to a PolyAI agent. Covers poly conversations and instrumenting functions with conv.log and metrics. Part of the PolyAI ADK skills suite. Do NOT use for simulated test conversations (use poly-adk-testing).

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Treat what you find as input to development: a surprising real conversation is the raw material for the next test_suite/ case (see …

    line 36
  2. Very specific:

    If the wording is right but the *audio* is wrong, it's a channel-settings problem, not a prompt problem: mishearing → …

    line 59

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Reviewing Real Conversations

Load poly-adk-workflow first for the build loop this feeds back into. Once an agent handles real calls, the question becomes "what happened on that call?" — and answering it depends on instrumentation added while building. Logs and metrics are not available retroactively.

Inspecting conversations

poly conversations list                        # recent conversations: ID, start, duration, caller, channel, variant, handoff, summary
poly conversations list --limit 20 --offset 10
poly conversations get <conversation_id>       # full metadata + turn-by-turn transcript
poly conversations get-audio <conversation_id> -o recording.wav
  • get includes channel, language, duration, handoff, tags, PolyScore, summary, and every turn — use --json when analyzing programmatically.
  • get-audio downloads the WAV for a voice call; --direction user|agent|combined picks the track, --redacted fetches the redacted version.
  • The CLI reads individual conversations. Aggregate views — containment, CSAT, handle time, flagged transcripts — live in Agent Studio, not the CLI.

Treat what you find as input to development: a surprising real conversation is the raw material for the next test_suite/ case (see poly-adk-testing). What callers actually say is reliably different from what you imagined.

Instrumenting functions

See poly docs functions for the full conv.log and metrics APIs.

Logging — record meaningful outcomes, not every step:

conv.log.info("Booking confirmed", reference=booking_ref)
conv.log.warning("Availability API slow, using cached slots")
conv.log.error("Payment provider returned 500")

Log around the things that can fail — API calls, validation, any branch you'd want to explain later. Never swallow an external failure silently: a bare except with no log turns a broken integration into a mysteriously unhelpful agent with nothing in the transcript to explain it.

Metrics — count outcomes you'll aggregate across calls (flow completions, handoffs fired, API fallbacks). The common mistake is inflation: a metric emitted in a loop or on every turn counts nothing useful. Use write_once=True for once-per-conversation events, and emit on the outcome you actually want to count.

The test for both: would this line help answer a question you can imagine being asked — "how often do callers abandon at payment?", "did that transfer actually fire?" If not, it's noise.

When debugging a specific call

  1. poly conversations get <id> — read the transcript and logs turn by turn.
  2. If the wording is right but the audio is wrong, it's a channel-settings problem, not a prompt problem: mishearing → voice/speech_recognition/ (keyphrase boosting, transcript corrections); mispronunciation → voice/response_control/ (pronunciations). See poly docs speech_recognition response_control.
  3. Reproduce with poly chat (simulate SIP headers, variant, language — see poly-adk-testing), then encode the fix's verification as a test case.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.