{"slug":"poly-adk-conversations","title":"poly-adk-conversations","summary":"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","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-19T20:29:00.737613Z","repo":{"url":"https://github.com/polyai/adk","stars":83,"forks":20,"license":"Apache-2.0","updatedAt":"2026-10-19T14:31:01Z"},"bodyHtml":"<hr>\n<h2>name: poly-adk-conversations\ndescription: &gt;\nThis skill should be used when the user wants to \"see what happened on a call\",\n\"review real conversations\", \"download a call recording\", \"debug a production call\",\nor \"add logging/metrics\" to a PolyAI agent. Covers poly conversations and instrumenting\nfunctions with conv.log and metrics. Part of the PolyAI ADK skills suite. Do NOT use\nfor simulated test conversations (use poly-adk-testing).\nmetadata:\nauthor: PolyAI\nlicense: Apache-2.0\nversion: 0.71.3\nrequires:\nbins:\n- poly\ninstall: \"uv tool install polyai-adk\"</h2>\n<h1>Reviewing Real Conversations</h1>\n<p>Load <code>poly-adk-workflow</code> 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 <em>while building</em>. Logs and metrics are not available retroactively.</p>\n<h2>Inspecting conversations</h2>\n<pre><code>poly conversations list                        # recent conversations: ID, start, duration, caller, channel, variant, handoff, summary\npoly conversations list --limit 20 --offset 10\npoly conversations get &lt;conversation_id&gt;       # full metadata + turn-by-turn transcript\npoly conversations get-audio &lt;conversation_id&gt; -o recording.wav\n</code></pre>\n<ul>\n<li><code>get</code> includes channel, language, duration, handoff, tags, PolyScore, summary, and every turn — use <code>--json</code> when analyzing programmatically.</li>\n<li><code>get-audio</code> downloads the WAV for a voice call; <code>--direction user|agent|combined</code> picks the track, <code>--redacted</code> fetches the redacted version.</li>\n<li>The CLI reads individual conversations. Aggregate views — containment, CSAT, handle time, flagged transcripts — live in Agent Studio, not the CLI.</li>\n</ul>\n<p>Treat what you find as input to development: a surprising real conversation is the raw material for the next <code>test_suite/</code> case (see <code>poly-adk-testing</code>). What callers actually say is reliably different from what you imagined.</p>\n<h2>Instrumenting functions</h2>\n<p>See <code>poly docs functions</code> for the full <code>conv.log</code> and metrics APIs.</p>\n<p><strong>Logging</strong> — record meaningful outcomes, not every step:</p>\n<pre><code>conv.log.info(\"Booking confirmed\", reference=booking_ref)\nconv.log.warning(\"Availability API slow, using cached slots\")\nconv.log.error(\"Payment provider returned 500\")\n</code></pre>\n<p>Log around the things that can fail — API calls, validation, any branch you'd want to explain later. <strong>Never swallow an external failure silently</strong>: a bare <code>except</code> with no log turns a broken integration into a mysteriously unhelpful agent with nothing in the transcript to explain it.</p>\n<p><strong>Metrics</strong> — 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 <code>write_once=True</code> for once-per-conversation events, and emit on the outcome you actually want to count.</p>\n<p>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.</p>\n<h2>When debugging a specific call</h2>\n<ol>\n<li><code>poly conversations get &lt;id&gt;</code> — read the transcript and logs turn by turn.</li>\n<li>If the wording is right but the <em>audio</em> is wrong, it's a channel-settings problem, not a prompt problem: mishearing → <code>voice/speech_recognition/</code> (keyphrase boosting, transcript corrections); mispronunciation → <code>voice/response_control/</code> (pronunciations). See <code>poly docs speech_recognition response_control</code>.</li>\n<li>Reproduce with <code>poly chat</code> (simulate SIP headers, variant, language — see <code>poly-adk-testing</code>), then encode the fix's verification as a test case.</li>\n</ol>\n","files":[{"path":"SKILL.md","sizeBytes":3684,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-19T20:29:15.806498Z","sha256":"7DA2276819D8FA843ABAAD0BF5686EA29D23A3ED15314B4743492A09325E5FB8","sizeBytes":1915},"review":null,"source":{"repositoryUrl":"https://github.com/polyai/adk","path":"skills/poly-adk-conversations","license":"Apache-2.0","commit":"f615d0fa167805d1e5ecc04560cd6fdf73924aad","subtreeSha":"C59F263C0BDCCE481FB9F1997AF4A4089AE7F11E044FB0D93D48D97D13D00564","lastSyncedAt":"2026-10-19T20:29:00.12477Z"},"reviewedAt":"2026-10-19T20:29:18.816505Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/polyai/adk/tree/main/skills/poly-adk-conversations"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install polyai-adk@llmmart"},{"target":"git","command":"git clone https://github.com/polyai/adk.git"}]}