LaunchKit · 2026
Back to Skills

agent-takeover

How to perform a live agent takeover of the Clawfinger voice gateway — dial, inject greetings, handle turns.

0
393 downloads
by @tracsystems

Setup & Installation

openclaw skills install @tracsystems/agent-takeover

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install agent-takeover

Version History

v0.1.4Feb 25, 2026 - Version note by skill developer:

No user-facing changes in this version. - Version updated to 0.1.4 with no modifications to documentation or code. - All features and documentation remain the same as the prior release.

What This Skill Does

Lets an external agent take control of a live phone call handled by the Clawfinger voice gateway, respond to caller turns directly, and hand back to the local LLM when done. The agent connects over WebSocket, receives caller transcripts as turn.request events, and replies with text that the gateway converts to speech. REST endpoints cover auxiliary actions like dial, inject, and hangup, but takeover itself requires the WebSocket connection.

Replacing the local LLM mid-call in real time lets the agent deliver deterministic or specialized responses without changing any gateway configuration.

When to use it

  • Injecting a scripted greeting before the local LLM handles the caller
  • Running a 3-turn canned-response test on a live outbound call
  • Handing a call to a specialized agent for a focused task, then releasing it back
  • Observing ASR transcripts and LLM replies on active calls without interfering
  • Force-hanging up or ending sessions programmatically from an external script

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: take over the next outbound call, say a custom greeting, handle 3 turns, then release

AGENT
  1. 1Connect to the agent WebSocket and send a dial command with the target number
  2. 2Watch bus events for a session_id on turn.started after the callee picks up
  3. 3Send inject with the greeting text, then send takeover for the discovered session_id
  4. 4Receive turn.request events and echo back request_id with each reply text for 3 turns
  5. 5Send release to hand the session back to the local LLM and confirm via release.ack
OUTPUT

Caller hears the custom greeting and 3 agent-controlled responses, then the local LLM resumes on the next turn without interruption