简介
OpenAI的实时API智能代理是一个简单的多代理语音应用示例,展示了如何利用实时API构建更复杂的智能代理模式。主要特点包括:
- 代理转移:根据定义的代理图,顺序转移代理(灵感来自OpenAI Swarm)。
- 背景升级:在高风险决策中使用更智能的模型,如o1-mini。
- 状态机提示:使用状态机逐步收集用户信息,如姓名和电话号码,并逐字符确认以进行用户认证。
快速开始
-
环境准备:
- 安装依赖:
npm i
- 添加OpenAI API密钥到环境变量中:
OPENAI_API_KEY
- 启动服务器:
npm run dev
- 访问应用:http://localhost:3000
- 安装依赖:
-
代理配置:
typescriptimport { AgentConfig } from "@/app/types"; import { injectTransferTools } from "./utils"; // 定义代理 const haiku: AgentConfig = { name: "haiku", publicDescription: "生成俳句的代理。", instructions: "请用户输入主题,然后回复一个关于该主题的俳句。", tools: [], }; const greeter: AgentConfig = { name: "greeter", publicDescription: "问候用户的代理。", instructions: "请问候用户,并询问是否需要俳句。如果是,则转移到'haiku'代理。", tools: [], downstreamAgents: [haiku], }; // 添加转移工具 const agents = injectTransferTools([greeter, haiku]); export default agents;
下一步
- 查看配置 :在
src/app/agentConfigs
中查看更多配置示例。frontDeskAuthentication
:引导用户通过逐步确认的方式进行认证。customerServiceRetail
:引导用户通过复杂的退货流程,包括订单查询和政策检查。
自定义代理
- 创建新代理:复制现有配置,创建自己的多代理语音应用。
- 添加新代理配置 :将新代理配置添加到
src/app/agentConfigs/index.ts
中,以便在UI中选择。 - 定义工具和逻辑 :查看
customerServiceRetail/returns.ts
了解如何定义背景LLM调用。 - 定义个性和语气 :查看
frontDeskAuthentication/authentication.ts
了解如何使用状态机收集用户信息。
UI操作
- 选择代理场景:使用下拉菜单选择代理场景和代理。
- 查看对话记录:左侧显示对话记录,包括工具调用和代理切换。
- 查看事件日志:右侧显示客户端和服务器事件。
示例代码
typescript
// 示例:定义一个简单的问候代理
const simpleGreeter: AgentConfig = {
name: "simpleGreeter",
publicDescription: "简单问候代理",
instructions: "问候用户并询问是否需要帮助",
tools: [],
};
// 示例:定义一个需要转移的代理
const needHelp: AgentConfig = {
name: "needHelp",
publicDescription: "需要帮助的代理",
instructions: "提供帮助并转移到其他代理",
tools: [],
downstreamAgents: [simpleGreeter],
};
数值指标
- 响应时间:API响应时间应控制在100ms以内,以确保用户体验的流畅。
- 错误率:目标是保持错误率低于1%,以确保系统的可靠性。
- 吞吐量:系统应能够处理每秒至少50个请求,以满足高峰期需求。