openclaw - 💡(How to fix) Fix [Feature]: Add per-call private objective for realtime Voice Call

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Add a per-call private objective/brief for realtime Voice Call, separate from the first spoken message.

This is a narrower API request related to the broader outbound task calls tracker:

  • #59245

Root Cause

consultPolicy: always can force more delegation to the main agent, but it may add a round trip on many turns. For restaurant reservations and similar real-world calls, latency matters because the other party is waiting on the phone.

Code Example

openclaw voicecall start \
  --to "+15555550123" \
  --mode conversation \
  --message "Hola, buenas tardes" \
  --objective "Book a table for 2 tomorrow at 8pm, mention it is my birthday, ask whether they can provide a small cake or dessert with a candle, and confirm the final reservation details."

---

{
  "to": "+15555550123",
  "mode": "conversation",
  "message": "Hola, buenas tardes",
  "objective": "Book a table for 2 tomorrow at 8pm, mention it is my birthday, ask whether they can provide a small cake or dessert with a candle, and confirm the final reservation details."
}

---

OpenClaw 2026.5.18 (50a2481)
RAW_BUFFERClick to expand / collapse

Summary

Add a per-call private objective/brief for realtime Voice Call, separate from the first spoken message.

This is a narrower API request related to the broader outbound task calls tracker:

  • #59245

Use case

I want an OpenClaw agent to place a realtime outbound call on my behalf, for example:

Call a restaurant, book a table for 2 tomorrow at 8pm, mention it is my birthday, ask whether they can provide a small cake or dessert with a candle, and confirm the final reservation details.

The natural call opening should be short, for example:

Hola, buenas tardes.

After the restaurant answers, the realtime agent should naturally explain the request and pursue the objective during the conversation.

Current behavior / limitation

As far as I can tell from the current documented CLI/tool surface:

  • voicecall call/start --message and the voice_call tool message are the first spoken line/opening turn.
  • realtime.instructions is global/static configuration.
  • realtime.agentContext injects bounded standing context at realtime session setup.
  • realtime.consultPolicy controls when the realtime model calls openclaw_agent_consult.
  • responseSystemPrompt belongs to the classic embedded-agent auto-response path and is not the direct realtime provider session prompt.

I do not see a supported per-call hidden goal/private instruction field for realtime calls.

This overloads message:

  • If I pass the whole task in message, the agent may speak the task unnaturally as the opening line.
  • If I pass only a natural opener like Hola, buenas tardes, the realtime session does not receive the dynamic one-off task goal.

Why continue/speak or consultPolicy: always is not enough

Manual continue / speak orchestration can steer an active call, but it defeats the low-latency realtime voice experience for normal outbound calls.

consultPolicy: always can force more delegation to the main agent, but it may add a round trip on many turns. For restaurant reservations and similar real-world calls, latency matters because the other party is waiting on the phone.

The desired behavior is that the realtime session starts with the private objective already available, without speaking it as the opener and without needing a full agent consult before every normal turn.

Proposed API shape

CLI example:

openclaw voicecall start \
  --to "+15555550123" \
  --mode conversation \
  --message "Hola, buenas tardes" \
  --objective "Book a table for 2 tomorrow at 8pm, mention it is my birthday, ask whether they can provide a small cake or dessert with a candle, and confirm the final reservation details."

Equivalent tool / Gateway RPC shape:

{
  "to": "+15555550123",
  "mode": "conversation",
  "message": "Hola, buenas tardes",
  "objective": "Book a table for 2 tomorrow at 8pm, mention it is my birthday, ask whether they can provide a small cake or dessert with a candle, and confirm the final reservation details."
}

Names could be objective, brief, privateInstructions, or similar.

Desired behavior

  • message is only the first spoken line / natural opener.
  • objective / brief is private per-call context for the realtime session.
  • The objective is injected into realtime provider instructions and/or realtime consult context.
  • The objective is not spoken verbatim as the opening line.
  • The realtime agent uses the objective to pursue the task naturally during the call.
  • The call record / originating requester can receive transcript and post-call summary/result, either as part of this feature or as a companion behavior.

Environment

Observed while using:

OpenClaw 2026.5.18 (50a2481)

Realtime Voice Call configuration with realtime.enabled: true and OpenAI realtime provider.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Feature]: Add per-call private objective for realtime Voice Call