- 简介
- 入门指南
- 使用 Maestro BPMN 进行构建
- 使用 Maestro Case 构建
- Maestro Case 简介
- Maestro BPMN 与 Maestro Case 对比:何时使用 Case Management
- Maestro 案例生命周期:从事件触发到应用体验
- 使用 Maestro Case 构建第一个案例
- Build a Maestro Case with a coding agent (preview)
- 定义案例键(系统键与外部键)
- 建立任务 I/O 与回写契约
- 退出规则和早期阶段终止
- 主阶段和次阶段建模
- 从 Data Fabric 触发案例
- 实施阶段级角色和权限
- 设置 SLA 和自动升级规则
- 配置返工循环(重新进入)
- Configuring and testing the Case Manager Agent (preview)
- 案例管理器输入和输出合同
- Maestro Case 组件字典
- 使用 Maestro Flow 进行构建
- 集成
- 运营
- 监控
- 正在优化
- 参考信息
A voice agent that attaches to a live call and speaks with the caller.
操作
Attaches an agent to a live phone call and speaks with the caller. Audio streams directly to a real-time speech model, which allows the caller to interrupt the agent mid-speech. Configure the model, persona, prompt, tools, context grounding indexes, and escalations directly on the node.
Both call directions use the same three-step shape:
| 方向 | Node sequence |
|---|---|
| Inbound | Incoming Call → Voice agent → End Call |
| 呼出电话 | Create Outgoing Call → Voice agent → End Call |
The node is labeled Voice agent in the Agent category of the node palette.
配置参考
| 字段 | 描述 |
|---|---|
| 模型 | The real-time speech model. |
| 角色 | The voice for the selected model. |
| 系统提示 | The agent's role, its standing instructions, and how it should close the conversation. |
| 温度 | Response creativity from 0 to 1. |
| Maximum tokens | Maximum token for a conversation. |
| Call context | The call this agent attaches to. Bind it to an upstream callContext — for example, $vars.createOutgoingCall1.output.callContext. |
输出变量
You may optionally configure structured output variables in the Outputs section of the properties panel. They are useful for setting goal-oriented or routing variables to use in downstream nodes within the Flow.
Each output variable you declare becomes a field on the agent's output object, referenced as $vars.<agentName>.output.<name>. Give each one a name and a type, then instruct the agent in the variable's description field how to populate it. Output generation is driven by a combination of the agent's system prompt and the output variable descriptions.
The agent populates them when it ends its voice session.
The two most common uses are call summaries and handoffs. For a summary, declare an output such as call_summary and use its description to tell the agent to summarize the call. The agent writes it when it ends its session, and downstream nodes read it as $vars.voiceAgent1.output.call_summary.
工具
将工具连接到工具句柄,为智能体提供在推理时可以调用的功能。智能体在其循环中决定是否以及何时调用每个已连接的工具。每个工具都带有描述,告诉智能体该工具的用途,因此请在工具公开时编写清晰的描述。
While designing tools for voice agents:
- The caller waits through every tool call, so keep each tool's job small and fast.
- Tools the agent calls in the same round return together — the slowest one sets how long the caller hears silence.
- After a timeout the agent may report failure and try again, so make tools idempotent. A tool call that has not returned in 180 seconds will time out.
Tool availability
| 工具类别 | 可用性 |
|---|---|
| RPA 流程 | 可用 |
| API 工作流 | 可用 |
| Activities (活动) | 可用 |
| 其他流程 (Maestro) | 可用 |
| Process orchestration | 可用 |
| Coded functions | 可用 |
| 智能体(调用已发布的独立智能体) | 可用 |
| Integration Service 连接器 | 可用 |
| 上下文锚定索引 | 可用 |
| Built-in tools (Analyze Files, Deep RAG, Batch Transform) | 不可用 |
| 升级 | 不可用 |
| Model Context Protocol (MCP) tools | 不可用 |
| A2A(智能体到智能体) | 不可用 |
| IXP(文档提取) | 不可用 |
Built-in voice tools
Every voice agent has access to two built-in tools. These are included but not shown in the Flow canvas:
- Dual-Tone Multi-Frequency (DTMF) tool: used to press digits on phone key pad, which can be used to navigate external phone trees
- End session: used to exit the conversation without ending the call. Useful for voice agent handoffs.
工具防护机制
Tool-level guardrails are available on the tools connected to the Voice agent node. You can filter or block on a tool's input parameters. Configure the guardrail on the tool attached to the Voice agent's Tools handle. See tool guardrails.
Handoffs
Ending a voice session is not the same as ending the call. When an agent ends its session it exits the call but leaves the line open: the agent populates its output variables, and the Flow moves to the next node. Only the End call node and the caller can hang up the call.
That is what makes handoffs possible. Chain Voice agent nodes and bind them all to the same Call context. Each agent ends its own session when it is done, and only the last path reaches End call, so the caller stays on the line throughout.
A handoff has two parts:
- Route to the right agent. Give the first agent an output variable — for example
handoff— and use its description to tell the agent which value to set. Branch on that value with a Switch node so each case leads to the agent that handles it. - Carry the context over. A receiving agent knows nothing about what was already said. Either reference a call summary output from the first agent in its system prompt (
$vars.voiceAgent1.output.call_summary), or add a Get Conversation Context node on the branch and reference the transcript instead. See Call transcript.
Handing a call off to a person is not supported. There is no live call transfer.
Call transcript
To read a transcript after a call, open the debug execution trace or the Orchestrator job traces. See Observability.
To use the transcript inside the Flow:
- Add a Get Conversation Context node.
- Pass in
$vars.<incomingOrOutgoingCallNodeId>.output.callContext.conversationId. For example,<incomingOrOutgoingCallNodeId>can becreateOutgoingCall1. - Reference the transcript as
$vars.<getConversationContextNodeId>.output.conversationContext.messages. For example,getConversationContextNodeIdcan begetConversationContext1.
For example, you can pass the transcript to an autonomous agent for processing:
常见问题
The agent talks normally but never runs a tool. The Orchestrator folder has no unattended or default robot with a serverless machine assigned, so every tool call comes back as an error and the agent stays conversational. Add a robot to the folder, then call again. See Orchestrator folder requirements.
The call ends before the conversation is finished, but there are no errors. The agent ended its own session mid-conversation, and the Flow moved on to End call. That is likely a prompting issue where the voice agent thought it finished helping the caller and decided to end the session.
The agent stalls or produces static reading digit strings. With Gemini Live at Temperature 0, long digit strings can stall or sound distorted. Raise Temperature slightly. If the issue persists, try the other model.
The agent fails to attach with a tool schema error. The Gemini model accepts a narrow schema subset. Flatten the tool's input schema, or wrap the tool in an API workflow with a flat input schema and use the workflow as the tool instead.
The call connects, nobody speaks, and it drops after about 25 seconds. A call that never attaches an agent is ended after about 25 seconds of dead air. Bind Call context to the callContext from the Incoming Call trigger or the Create Outgoing Call node.
相关页面
- Incoming Call
- Create Outgoing Call
- End Call
- Deployment — connecting a number and binding it to a Flow.