发送即时消息助手。帮助 Agent 搜索联系人并发送 IM 消息。当用户要求发消息、通知某人、提醒某人、联系某人,或隐含意图是向某人传递信息时使用。
CRITICAL — 如果联系人尚未明确,第二步 MUST 读取 skills/contact_resolver/SKILL.md,先得到稳定的 contact_id。
CRITICAL — 在联系人未明确前,不要调用 send_im_message。
CRITICAL — 调用 send_im_message 前,MUST 读取 skills/im_sender/references/send-im-message.md,不要猜测参数或成功条件。
当用户的目标是“把一段信息传递给某个人”时,使用此 skill。
send_im_messagecontact_resolversend_im_message 的调用约束和错误处理细节在 skills/im_sender/references/send-im-message.mdandroid_gesture_tool 模拟点击发送按钮以下表达通常应触发本 skill:
以下情况通常不应使用本 skill:
进入本 skill 后,先判断当前属于哪一类输入。
例如:
contact_id这类输入可以直接进入发送步骤。
例如:
这类输入表示新的发送动作,但可能依赖上一轮上下文中的联系人或消息目标。
send_im_message适用场景:
调用格式:
{
"shortcut": "send_im_message",
"args": {
"contact_id": "003",
"message": "明天下午3点开会"
}
}
如果当前还没有稳定的 contact_id:
send_im_messageskills/contact_resolver/SKILL.md如果消息内容还不明确:
推荐表达:
请问您想发送什么消息?
当且仅当以下条件同时满足时,才能调用 send_im_message:
调用前:
skills/im_sender/references/send-im-message.mdcontact_id,不是候选序号或自然语言选择结果调用:
{
"shortcut": "send_im_message",
"args": {
"contact_id": "联系人ID",
"message": "消息内容"
}
}
如果本轮还没有成功调用 send_im_message:
如果用户说的是“再发一条”“继续发给他”“再告诉李四一次”这类续发表达:
contact_resolver如果发送成功:
推荐表达:
消息已发送给李四:明天下午3点开会。
如果发送失败:
missing_required_param含义:
处理:
business_target_not_accessible含义:
处理:
execution_failed含义:
处理:
用户:
给李四发消息说明天下午3点开会
Agent:
contact_resolver 得到单一匹配 李四(产品部, id=003)send_im_message消息已发送给李四:明天下午3点开会。
用户:
给张三发消息说明天开会
Agent:
contact_resolvercontact_resolver 调用 search_contacts找到 2 位联系人:
1. 张三(技术部)
2. 张三(市场部)
请问您要发送给哪一位?
用户:
给李四发个消息
Agent:
contact_resolver 得到单一匹配请问您想发送什么消息?
上一轮 Agent 已成功发出一条消息。
用户:
再发一条,告诉他今晚加班
Agent:
contact_resolversend_im_message 成功后,才能确认“已发送”send_im_message 的情况下声称“已发送”android_gesture_tool 模拟业务发送im_sender 当成 shortcut 去 run_shortcut 或 describe_shortcut