3CX AI Agent 智能体工具
介绍
智能体工具使 AI Agent 能够与PBX和呼叫者进行交互,执行诸如通话转接和信息检索等功能。在本文档中,我们列出了每种 Agent 类型可用的工具及其功能。
使用与格式基础
3CX AI Agent 的提示词使用Mustache Mustache 语法。 理解这些规则可确保智能体工具准确集成到3CX AI Agent提示词中。
- 变量使用 Mustache 语法调用,将标识符括在花括号中。
- {{...}} 或 {{{...}}} ->(无 #、^ 或 /)将变量的原始内容直接回显到该位置(不进行HTML转义)。
- 我们可以将提示词部分包含在block 中;只有当变量通过测试时,内容才会在最终提示词文本中呈现。
- 我们可以选择进行正向测试:
- {{#...}} -> 仅当变量有内容或为TRUE时,block才打开
- {{/...}} -> block 关闭
- 或进行反向测试:
- {{^...}} -> 仅当变量为空或为FALSE时,block才打开
- {{/...}} -> block关闭
- 智能体工具可以通过名称“调用”,但 AI Agent 会在判断需要时调用它们。
以下是两个示例,两者都使用了你在3CX AI Agent的呼叫路由选项卡中配置的按主题转接(Route By Topic)目的地。
在我们的示例中,我们将使用:
- 变量 addressbook_topics —— 此变量包含你配置的所有“按主题转接”条目;该变量在Agent(重新)启动时填充所有主题,作为系统变量使用。
- 工具 get_addressbook —— 一个按需获取已配置主题条目的智能体工具。
- 工具 resolve_handoff_destination —— 一个将自然语言请求解析为目的地(分机)的智能体工具。
示例1
智能体工具可以在核心提示词中提及,并附带对AI Agent的使用指导,让其自由决定何时调用它们。
If the caller asks for a department or makes a question about a problem first use get_addressbook to check if there are topics related to the question, and use resolve_handoff_destination right away, do not answer informatively first.
在上述示例中,提示词中的这段补充内容会让AI模型知道有哪些工具可用,然后由它决定是否应调用它们。无论是否设置了任何主题,上述文本都会始终存在于最终解析后的提示词中。
示例2
你还可以使用Mustache语法为提示词构建添加一些基本逻辑,在不需要时跳过某些元素;这可以使最终提示词更紧凑或更清晰。
{{#addressbook_topics}}
If the caller asks for a department or makes a question about a problem check if there are topics related to the question in the following list:
{{addressbook_topics}}
and use resolve_handoff_destination right away, do not answer informatively first.
{{/addressbook_topics}}
{{^addressbook_topics}}
Use resolve_handoff_destination right away, do not answer informatively first.
{{/addressbook_topics}}
在此示例中:
- 首先我们检查 addressbook_topics 是否已设置/存在,如果是:
- 我们将这些主题列表回显到提示词中,供AI Agent参考
- 使用 resolve_handoff_destination 工具,根据主题列表(及其对各部门和用户/系统分机的了解)为呼叫找到最佳目的地。
- 然后如果 addressbook_topics 未设置:
- 我们不会用额外的文本和空列表“污染”提示词,而是要求它
- 使用 resolve_handoff_destination 工具,根据其对各部门和用户/系统分机的了解,为呼叫找到最佳目的地。
在配置了单个主题的PBX中:“对于任何电气问题:106”,上述提示词定义将呈现以下最终提示词文本,供AI Agent 遵循:
If the caller asks for a department or makes a question about a problem check if there are topics related to the question in the following list:
- For any elecrical issues
and use resolve_handoff_destination right away, do not answer informatively first.
需要注意的是,AI Agent 已经了解这些工具及其功能。在使用默认提示词的标准通话中,智能体无需明确指令即可利用它们。但是,如果你希望影响智能体的行为或强制执行严格的执行顺序,你可以像上面那样在提示词中直接指示它调用工具。
聊天中的智能体工具
AI Agent 的提示词对于每个智能体是通用的,无论通信渠道是语音还是文本/聊天。下面的工具描述侧重于语音渠道,在大多数情况下,在聊天中也会以相同方式工作。
某些涉及语音呼叫路由的工具,如转接到语音信箱,在基于文本的通信中当然无法发挥作用,而其他工具的执行方式可能略有不同,但都在下面给出的规范范围内。
按类型划分的智能体工具
工具名称 | 功能 | 按角色划分的工具可用性 | ||
接待员 | 私人助理 | 客户服务(U10) | ||
classify_request_before_handoff | 允许个人助理工作流区分中断、通知和阻止场景。当呼叫者不是助理的老板时,存储呼叫分类,以便智能体决定如何继续。 | 否 | 是 | 否 |
drop_call | 允许助理结束对话。 | 是 | 是 | 是 |
find_contact_by_extension | 检索有关特定分机的信息。 | 是 | 是 | 是 |
get_addressbook | 加载“按主题转接”列表,允许AI Agent在对话中使用其元素并选择目的地。 | 是 | 是 | 是 |
get_current_datetime | 返回UTC和本地系统时间的当前日期和时间。 | 是 | 是 | 是 |
perform_chat | 通过聊天消息通知适当目的地,开始结束通话的过程。 | 是 | 是 | 是 |
perform_email | 通过电子邮件通知适当目的地,开始结束通话的过程。 | 是 | 是 | 是 |
perform_transfer | 通过将呼叫转接到适当目的地,开始结束通话的过程。 | 是 | 是 | 是 |
perform_voicemail | 通过将呼叫转接到适当目的地的语音信箱,开始结束通话的过程。 | 是 | 是 | 是 |
resolve_handoff_destination | 通过对所有允许的转接端点进行自由文本目的地搜索,解析呼叫者的转接请求。 | 是 | 否 | 是 |
set_detected_language | 允许助理记住检测到的呼叫者语言,并在后续交互中使用它。 | 是 | 是 | 是 |
spam_detected | 记录当前通话已被识别为垃圾电话。 | 是 | 是 | 是 |
take_handoff_decision | 记录预期的转接类型和分机号码。 | 是 | 是 | 是 |
take_hostility_action | 记录呼叫者行为具有敌意或辱骂性。 | 是 | 是 | 是 |
take_not_collaborative_action | 记录呼叫者不愿意与助理合作。 | 是 | 是 | 是 |
vector_store_search | 允许助理从已配置的知识库和索引文档中检索信息。 | 是 | 是 | 是 |
智能体工具的输入与输出
工具名称 | 输入 | 输出 | 要求 |
classify_request_before_handoff | 可用的分类:
| 确认分类已保存。 | |
drop_call | 无 | 呼叫终止子系统返回的结果。 | |
find_contact_by_extension | 分机号码,例如100。 | 以解析状态开头的目录表。 | |
Resolution: exact_contact ext|name|department|available|can_receive_email 100|John Smith|Sales|true|true | |||
get_addressbook | 无 | 包含所有已配置主题的列表。 | |
| |||
get_current_datetime | 无 | 包含以下内容的字符串:
| |
perform_chat | 无(通过辅助流程使用现有通话上下文信息,未通过暴露的工具提供)。 | 确认聊天决策已记录。 | 助理遵循通知规则,其他角色默认为可用。 |
perform_email | 无(通过辅助流程使用现有通话上下文信息,未通过暴露的工具提供)。 | 确认邮件决策已记录。 | 目的地必须有资格接收电子邮件。助理遵循通知规则,其他角色默认为可用。 |
perform_transfer | 无(通过辅助流程使用现有通话上下文信息,未通过暴露的工具提供)。 | 确认转接决策已记录。 | 助理遵循通知规则,其他角色默认为可用。 |
perform_voicemail | 无(通过辅助流程使用现有通话上下文信息,未通过暴露的工具提供)。 | 确认语音信箱决策已记录。 | 助理遵循通知规则,其他角色默认为可用。 |
resolve_handoff_destination | destination —— 呼叫者提供的自由文本目的地。 | 可能返回:exact_contact、multiple_contacts、no_contact。 | 要求: allowed_search=True |
Resolution: exact_contact ext|name|department|available|can_receive_email 801|Sales Team|Sales|true|false | |||
set_detected_language | language —— 检测到的语言名称。 | 确认语言已存储。 | 要求: switch_language=True |
spam_detected | reason —— 通话被分类为垃圾电话的原因说明。 | 确认垃圾电话信号已记录。 | |
take_handoff_decision | kind —— transfer(转接)、voicemail(语音信箱)、chat(聊天)、email(电子邮件)。destination —— 分机号码。 | 确认转接决策已记录。 | |
take_hostility_action | reason —— 检测到的敌意行为的说明。 | 确认敌意信号已记录。 | |
take_not_collaborative_action | reason —— 检测到的行为的说明。 | 确认协作信号已记录。 | |
vector_store_search | vs_id —— 向量存储标识符。 query —— 搜索查询。top_k —— 返回的最大结果数。 | 从指定向量存储中检索到的相关结果。 | 需要配置一个或多个向量存储。 |
另请参阅
最后更新时间
本文件最后更新日期为2026年8月5日。
https://www.3cx.cn/docs/agentic-ai-tools/
