用途:当用户希望通过 API 调用(无需源码文件、无需部署步骤)配置 AI 智能体时使用本技能,典型场景是从面板或后端脚本以命令式方式创建和更新智能体;也支持关键词触发、数据收集等结构化会话,以及接听和拨打语音电话。若用户希望用 TypeScript 编写带自定义工具处理器的代码优先智能体并经 zavu CLI 部署,应改用 functions 技能。
主要能力:每个 sender 可绑定一个智能体,创建时需指定名称、provider、model、systemPrompt、apiKey 等,并可用 contextWindowMessages、includeContactMetadata、triggerOnChannels、triggerOnMessageTypes 控制行为。支持 openai、anthropic、google、mistral、zavu 等 provider 及其对应模型,zavu 托管模型无需 API Key。智能体创建后默认禁用(disabled),需显式启用才会应答。工具、流程、知识库可通过 /v1/senders/{senderId}/agent/... 或 /v1/agents/{agentId}/... 两种寻址方式访问,两者是同一资源;智能体尚无 sender 时使用后者。
使用方式:SDK 提供 create、update 等方法,示例中通过 senderId 创建后返回 agent.id;启用或关闭用 update 传入 enabled。语音需团队开启 Voice Agents 功能、智能体设置 voice.enabled 为 true,且 sender 开启 voice 渠道并持有电话号码,可用 npx zavudev senders update snd_abc123 --enable-voice 配置,再用 npx zavudev senders get snd_abc123 确认 channels 含 voice;语音字段目前 SDK 未类型化,需通过 REST PATCH 设置。语音不可用于测试模式密钥,须用 zv_live_... 密钥。外呼用 calls.create,to 为必填,senderId 默认项目默认 sender。
流程:支持 keyword、intent、always 三类触发;intent 按语义判断,至多考虑优先级最高的 12 个 intent 流程,intent 截断为 300 字符,分类器不可用时按未匹配处理。步骤类型有 message、collect、condition、tool、llm、transfer。
限制:流程 session 不过期;{{ }} 只能读取同一流程中先前收集的变量;condition 作为首步须有 defaultGoto;manual 类型流程不会触发;transfer 会静默智能体直至人工回复;collect 的日期校验接受任意文本;通知字段 notifyWebhook 和 reason 被接受但不读取。