logo
开发者文档
搜索
任务(Task)

任务(Task)

简介

任务(Task) 是 Agent 的主动消息能力:由 Agent 主动向用户发起对话,而不是等待用户先开口。

与常规对话不同,常规对话是"用户提问 → Agent 回答",而任务是"平台按照你设定的条件,替用户向 Agent 发出一条消息 → Agent 生成回复 → 回复推送给用户"。你在任务中填写的"触发消息",本质上是代替用户发给 Agent 的一句话,Agent 会像收到真实用户消息一样生成回复,最终用户看到的是 Agent 的回复,而不是触发消息本身。

典型使用场景:

场景 触发方式 示例
定期播报 主动 - 定时触发 每天早上 9:00 向所有 Telegram 用户推送今日资讯
沉默用户唤醒 被动 - 用户触发 用户超过 3 天未对话时,主动发送关怀消息
业务系统联动 主动 - 事件触发 订单发货后,业务系统调用 Webhook,通知用户物流信息
单次通知 主动 - 定时触发(单次) 在指定时间向近一个月活跃的用户发送活动通知

前置条件

  • 任务只会发送给已经与 Agent 产生过对话的用户。平台会为每个用户找到其在目标通道上"最后一次活跃"的会话,并在该会话中注入消息。没有会话记录的用户不会收到任务消息(执行明细中记为 NO_CONVERSATION)。
  • 若目标通道为第三方集成(如 WhatsApp、Telegram、LINE 等),请确保对应的集成已在「Integrations」中正确配置并处于启用状态;集成被关闭或凭证失效会导致发送失败(CHANNEL_CONFIG_INVALID / CHANNEL_AUTH_FAILED)。
  • 任务执行会调用 Agent 的 LLM 生成回复,会正常消耗积分(Credits)。

入口

进入 开发空间 → 智能体 → 选择某个 Agent → 左侧菜单「Tasks」

任务列表支持:按任务名称搜索、按状态(Status)、触发类型(Trigger)、目标用户(Target)筛选。列表字段说明:

字段 说明
Name 任务名称
Status 任务状态,见任务状态
Trigger 触发类型:定时 / 事件 / 用户触发
Target 目标用户:全部用户 / 自定义用户
Message 触发消息(模板内容)
Created 创建时间与创建人
Action 操作:View(查看)/ Stop(停止)/ Delete(删除)

创建任务

点击右上角 New task,在右侧抽屉中完成配置。

1. 基础信息

配置项 说明
Task name 任务名称,必填,最长 100 个字符
Target users 目标用户,二选一:Custom users(自定义用户,默认)或 All users(全部用户)
Target channels 目标通道,选择 Custom users 时必填,可多选。只会向在这些通道上有会话的用户发送
Target conversation scope 目标会话范围(开始时间 – 结束时间)。只有会话创建时间落在此区间内的用户会成为发送对象,用于把发送范围限制在"近期活跃"的用户

注意:选择 All users 时会弹出二次确认,因为这意味着向该 Agent 所有通道上的全部用户广播。请务必确认目标会话范围设置合理,避免误发。

支持的目标通道

类别 通道
自有渠道 Web、Share、Embed(iframe)、Widget、App、API
工作空间 Workspace、Workspace Apps
IM 通道 Telegram、WhatsApp(Meta)、WhatsApp(Engagelab)、LINE、Slack、Facebook Messenger、Instagram、WeChat 客服(微信客服)、Teams
客服平台 Intercom、LiveChat、Livedesk、OmniChat、Zoho SalesIQ

提示:部分通道因平台协议限制暂不支持服务端主动推送(如 Discord、DingTalk、SoBot),在通道下拉中会置灰并提示原因。自有渠道(Web / Widget 等)的回复会直接写入会话,用户下次打开对话窗口即可看到;IM 通道与客服平台则会通过对应平台的 API 主动推送给用户。

2. 触发方式(Trigger)

触发方式决定"什么时候发",共三种:

主动 - 定时触发(Active - Scheduled)

由平台按设定的时间表主动发起,适合定期播报、单次通知。

周期模式 说明
Daily 每天在指定时刻(HH:mm)触发
Weekly 每周指定星期几的指定时刻触发
Monthly 每月指定日期的指定时刻触发;若当月没有该日期(如 31 日),则取当月最后一天
Interval 按固定间隔触发,单位支持分钟 / 小时 / 天,最小 1 分钟
Once 仅执行一次。执行时间必须晚于当前时间至少 1 分钟,且不超过 1 年

时间按任务所选时区计算。定时任务创建后状态为 WAITING,到达首次执行时间后进入 RUNNINGOnce 任务执行完成后自动转为 COMPLETED

主动 - 事件触发(Active - Event)

由你的业务系统通过 Webhook 调用平台来触发,适合与订单、支付、工单等业务事件联动。

创建任务时选择鉴权方式并填写凭证,平台会自动生成一个唯一的 Webhook URL(创建后可在任务详情中查看):

配置项 说明
Auth method 鉴权方式:Basic AuthHMAC signature
Username / Password Basic Auth 模式下必填,调用时以 Authorization: Basic base64(username:password) 携带
Secret HMAC 模式下的签名密钥,调用方需对请求 body 计算 HMAC-SHA256,并通过 X-Signature: sha256=<hex> 请求头携带

Webhook 调用示例

Webhook URL 形如 {平台域名}/bot/proactive-task/webhook/{webhookPath},请以任务详情中显示的完整地址为准。

POST {Webhook URL} Content-Type: application/json Authorization: Basic base64(username:password) { "idempotency_key": "order-20260903-0001", "target": { "channel": "TELEGRAM", "user_id": "customer_123" }, "variables": { "order_no": "SO-20260903-0001", "eta": "9月5日" } }
                      
                      POST {Webhook URL}
Content-Type: application/json
Authorization: Basic base64(username:password)

{
  "idempotency_key": "order-20260903-0001",
  "target": {
    "channel": "TELEGRAM",
    "user_id": "customer_123"
  },
  "variables": {
    "order_no": "SO-20260903-0001",
    "eta": "9月5日"
  }
}

                    
此代码块在浮窗中显示
字段 必填 说明
idempotency_key 幂等键,最长 128 字符。24 小时内相同键的重复请求会被拒绝,避免业务系统重试导致重复发送
target.channel 目标通道,取值与通道枚举一致,如 WEBTELEGRAMWHATSAPP_METALINE
target.user_id 二选一 业务用户 ID(已登录用户)
target.aid 二选一 匿名用户 ID(未登录访客)
variables 自定义变量,可在触发消息中通过 {{event.variables.字段名}} 引用

注意:Webhook 请求成功仅代表"已接收并进入发送队列",实际发送结果请在执行历史中查看。鉴权失败、任务已停止、目标通道不在任务的目标通道范围内等情况都会返回权限错误。单个 Webhook 地址限流 120 次 / 分钟。

被动 - 用户触发(Passive - User Triggered)

由平台每分钟扫描一次所有目标用户,符合规则的用户即触发发送,适合沉默用户唤醒、高价值用户关怀等场景。

规则配置

点击 Add rule 添加规则,多条规则之间可选择 AND(全部满足)或 OR(任一满足)。

规则字段 类型 可用算子 示例
User's last chat time(用户最后对话时间) 时间 已过去 N 分钟/小时/天、最近 N 分钟/小时/天以内 最后对话时间已过去 3 天
Total chats(对话总次数) 数字 等于 / 不等于 / 大于 / 大于等于 / 小于 / 小于等于 / 为空 / 非空 对话总次数 ≥ 10
User attributes(用户属性) 字符串 / 数字 / 布尔 / 列表 / 时间 按类型对应:等于 / 不等于 / 包含 / 为真 / 包含于…… 会员等级 包含于 [VIP, 白金]
Custom attributes(自定义属性) 字符串 / 数字 / 布尔 / 列表 / 时间 同上 活动开关 为真

说明用户属性取自「变量管理 → 用户属性」,按用户逐个取值(用户未设置时取属性默认值),适合按用户画像筛选;自定义属性取自「变量管理 → 自定义变量」,是 Agent 级的统一值,对所有用户相同,适合作为"总开关"类条件。所有规则字段都基于该用户在目标通道上最后活跃的那条会话取值。

消息频控(Message Frequency)

被动触发任务必须设置频控:在设定的窗口内(N 小时 / N 天),同一个用户最多只会被该任务触发一次,避免持续符合规则的用户被反复打扰。

提示:用户最后对话时间(User's last chat time)是"过去"的时间,请使用"已过去 N 单位"类算子;"距今 N 单位之后"类算子只适用于未来时间字段(如订阅到期时间),用在最后对话时间上永远不会命中。

3. 触发消息(Message)

填写要"代替用户"发送给 Agent 的消息内容。Agent 会根据这条消息以及自身的提示词、知识库等生成回复,再推送给用户。

支持使用 {{变量}} 引用以下变量:

变量 说明
{{user.userId}} / {{user.aId}} 用户 ID / 匿名用户 ID
{{conversation.id}} / {{conversation.subject}} 会话 ID / 会话主题
{{conversation.recentChatTime}} / {{conversation.messageCount}} 会话最后对话时间 / 消息数
{{now}} 当前时间戳(毫秒)
{{event.variables.xxx}} 事件触发时,Webhook 请求中 variables 里的字段
{{sys_agent_id}}{{sys_conversation_id}}{{sys_user_id}} 与对话中一致的系统变量

示例

  • 定时播报:请用简短友好的语气,为我总结今天的行业要闻。
  • 沉默唤醒:我已经几天没有来了,请主动问候我,并告诉我最近有什么新功能。
  • 事件通知:我的订单 {{event.variables.order_no}} 已发货,预计 {{event.variables.eta}} 送达,请告诉我物流信息并提醒我注意查收。

提示:触发消息是写给 Agent 看的"用户视角"提问,而不是直接展示给用户的文案。如果希望 Agent 尽量原样转述,可以在消息中明确要求,例如"请原样告诉用户:……"。

确认无误后点击 Create

注意:每个 Agent 同时处于 WAITING / RUNNING 状态的任务最多 10 个,超出后需先停止或等待已有任务完成。

任务状态

状态 说明
WAITING 等待中。定时任务创建后、尚未到首次执行时间
RUNNING 运行中。定时任务已开始按计划执行;事件 / 用户触发任务创建后即为此状态,等待 Webhook 或规则命中
COMPLETED 已完成。仅"单次(Once)"定时任务执行完毕后进入
TERMINATED 已停止。手动点击 Stop 后进入,不可恢复
ERROR 异常。任务连续 10 次执行全部失败(例如第三方集成失效)时自动熔断停止,可在任务详情中查看原因

查看任务与执行历史

点击列表中的 View 进入任务详情,包含两个 Tab:

  • Configuration:任务配置的只读视图。事件触发任务可在此查看 Webhook URL 与鉴权信息。
  • Execution History:每次执行的记录,含执行时间、目标数、成功 / 失败数与成功率。

点击某次执行可查看执行明细:各通道的成功 / 失败统计,以及逐条发送记录。失败原因说明:

失败原因 说明 处理建议
NO_CONVERSATION 用户在目标通道上没有会话,或会话创建时间不在目标会话范围内 检查目标会话范围与通道设置
CHANNEL_CONFIG_INVALID 通道集成被关闭、删除或配置失效 到 Integrations 检查对应集成
CHANNEL_AUTH_FAILED 通道鉴权失败(如 Telegram Token 失效) 更新集成凭证
RATE_LIMITED 触达发送速率上限,重试后仍未获得配额 缩小目标范围或分批发送
AGENT_FAILED Agent 生成回复失败 检查 Agent 配置、模型与积分余额
TIMEOUT 通道下发超时(单条 60 秒) 稍后重试,检查第三方平台状态
NOT_IMPLEMENTED 该通道暂不支持主动推送 更换目标通道

停止与删除

  • Stop:处于 WAITING / RUNNING / ERROR 状态的任务可随时停止,停止后转为 TERMINATED,不可恢复。
  • Delete:仅 COMPLETED / TERMINATED 状态的任务可删除,删除时会同步清理执行历史与明细。

常见问题

Q:为什么任务执行成功,但用户看到的内容不是我填写的触发消息?
触发消息是"代替用户发给 Agent 的提问",用户看到的是 Agent 针对这句话生成的回复。如需精确控制文案,请在触发消息中明确要求 Agent 原样输出。

Q:新用户会收到任务消息吗?
不会。任务只会向已有会话记录的用户发送,且会话创建时间需落在"目标会话范围"内。

Q:定时任务为什么没有在整点准时发送?
调度器每分钟扫描一次,且大批量发送会按项目级速率限制分批推送,因此实际到达时间可能略有延后。

Q:Webhook 返回权限错误(Permission deny)?
请依次检查:Webhook URL 是否正确、鉴权凭证是否匹配、任务是否已被停止、请求中的 target.channel 是否属于任务配置的目标通道。