Hume EVI + LangGraph Integration

PassAudited by ClawScan on May 10, 2026.

Overview

This is a coherent instruction-only guide for building a Hume/Twilio voice-agent integration, but it involves API keys, webhooks, and sensitive call transcript or emotion data that should be protected.

This skill does not install or run code by itself, and its behavior is coherent with a Hume EVI plus LangGraph integration. Before using its patterns in a real system, protect Hume/Twilio credentials, validate incoming webhooks, avoid logging raw transcripts or redirect URLs in production, and set clear retention and access controls for stored call transcripts and emotion analysis.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Using the skill may lead an agent or developer to create live Hume configurations and webhook registrations.

Why it was flagged

The guide directs implementations to call Hume's API to create EVI configurations and register webhooks. This is central to the stated purpose, but it is still a live third-party account mutation.

Skill content
resp = httpx.post("https://api.hume.ai/v0/evi/configs", json=request_body, headers=headers)
Recommendation

Use development accounts or test configs first, require user approval for live-provider changes, and document cleanup or rollback for generated Hume configs.

What this means

A Hume API key could be unintentionally exposed if generated TwiML, redirect URLs, or provider logs are shared broadly.

Why it was flagged

The TwiML example includes a Hume API key in a redirect URL. This appears purpose-aligned for the Hume/Twilio integration, but URLs can be exposed in logs or debugging output.

Skill content
<Redirect>https://api.hume.ai/v0/evi/twilio?config_id={config_id}&amp;api_key={api_key}</Redirect>
Recommendation

Use least-privilege keys where possible, keep keys in a secrets manager or environment variables, avoid logging full redirect URLs, and rotate keys if exposure is suspected.

What this means

If implemented without webhook authentication and validation, a spoofed or malformed webhook could resume the wrong workflow or trigger post-call processing unexpectedly.

Why it was flagged

The webhook resolution pattern uses an external webhook body field to select and resume a LangGraph thread. The artifacts do not show webhook signature verification, shared-secret validation, or equivalent origin checks.

Skill content
thread_id = config_to_thread.pop(body["config_id"])
Recommendation

Verify webhook authenticity, validate required fields and IDs, make the handler idempotent, and avoid relying only on config_id as proof that a webhook is legitimate.

What this means

Call transcripts, webhook payloads, and emotion analysis could persist in logs or state stores longer than users expect.

Why it was flagged

The checklist encourages raw response logging in an integration that fetches call transcripts and emotion features. Such logs or stored state may contain sensitive conversation and emotion data.

Skill content
- [ ] Log raw response bodies and verify field names/casing
Recommendation

Redact or disable raw logs in production, get appropriate caller consent, define retention limits, encrypt stored transcripts and emotion timelines, and restrict access to state stores.