Agent Skills
› agentscope-ai/QwenPaw
› chat_with_agent
chat_with_agent
GitHub用于 Agent 间协作,支持查询可用代理、发起前台对话及后台任务提交与状态检查。
Trigger Scenarios
需要其他 Agent 协助或决策
用户指定调用特定 Agent
Install
npx skills add agentscope-ai/QwenPaw --skill chat_with_agent -g -y
SKILL.md
Frontmatter
{
"name": "chat_with_agent",
"metadata": {
"qwenpaw": {
"emoji": "💬"
},
"builtin_skill_version": "1.2"
},
"description": "当你需要咨询其他 agent、寻求帮助,或用户明确要求某个 agent 参与时,使用本 skill。"
}
与 Agent 对话
什么时候用
当你需要向另一个 agent 询问问题、寻求帮助、请求方案、请求复核、请求决策支持,或者进行任何形式的交流时,使用本 skill。
如果用户明确要求与某个 agent 对话,也应使用本 skill。
应该使用
- 需要另一个 agent 的专长、判断或第二意见
- 需要向某个 agent 请求方案、复核或建议
- 用户明确要求某个 agent 参与、协助或回答
- 需要继续某个已有的 agent 会话,并保留上下文
不应使用
- 你自己可以直接完成,且用户没有明确要求调用其他 agent
- 只是普通问答,不需要专门 agent
- 目标 agent 不明确,应该先追问或先查可用 agents
- 刚收到某个 agent 的消息,又立刻回调同一个 agent,可能造成循环
决策规则
- 如果用户明确要求某个 agent,优先按要求执行,但仍要先查 agent,不要猜 ID
- 如果你自己能完成,就不要调用其他 agent
- 需要保留上下文续聊时,必须传
session_id - 默认优先使用
list_agents()和chat_with_agent(...)进行前台对话,不要绕到别的方式 - 如果任务需要后台执行,使用
submit_to_agent(...)提交,再用check_agent_task(...)查询状态
使用流程
请严格按照以下流程顺序使用本 skill:
- 确保你的工具列表中包含
list_agents()和chat_with_agent(...)两个内建工具
- 这两个工具是与其他 agent 对话的基础,不要删除或禁用它们
- 如果你没有这两个工具,请告诉用户你需要它们来与其他 agent 对话,并请求用户添加
- 使用
list_agents()工具查看当前可用的 Agent,并从中选择一个 agent 提取其 id
- 请根据用户的需求和对应 Agent 的描述来选择最合适的 Agent
- 如果找不到合适的 Agent 且你不是 Default Agent,就使用 Default Agent
- 否则告诉用户没有合适的 Agent 可用,并建议他们创建一个新的 Agent 或调整现有 Agent 的描述以便更好地匹配需求
- 调用
chat_with_agent(...)发起前台求助,其中需要传递的关键参数包括
to_agent: 对话目标 Agent 的 ID,注意是 ID 不是名字text: 你要对目标 Agent 说的内容session_id: (可选)如果你需要与同一个 Agent 进行多轮对话,从第二轮开始传递相同的session_id来保持上下文连续timeout: (可选)预估任务需要的前台等待时间,避免过早超时
- 如果任务适合后台执行,请使用新的后台工具路径
submit_to_agent(...):提交后台任务,需要to_agent、text,以及可选的session_id/task_timeout- 省略
task_timeout时,默认执行预算为 3600 秒(1 小时) - 预计超过 1 小时的任务,请显式传入正数秒
- 也接受数字字符串,例如
"7200"
- 省略
check_agent_task(...):通过task_id查询任务状态,完成时返回最终结果- 超时后任务会以失败结束,错误类似
Task timed out after Ns(API 载荷中带code=timeout)
- 超时后任务会以失败结束,错误类似
最小调用示例
新对话
list_agents()
chat_with_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] 我需要你帮我判断这个问题的处理方向。",
)
续接已有对话
chat_with_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] 请基于刚才的结论继续展开第 2 点。",
session_id="<previous_session_id>",
)
后台提交与查询
submit_to_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] 请在后台完成这个较长任务。",
task_timeout=7200,
)
check_agent_task(
task_id="<task_id>",
)
注意事项
- 添加对话标识符:建议对话内容以如下内容开头
[Agent <your_agent_id> requesting]
这样可以让对方 Agent 更清楚地知道是谁在跟它说话,有助于提高沟通效率和准确性。
-
合理复用会话:如果你需要与同一个 Agent 进行多轮对话,务必传递相同的
session_id来保持上下文连续。否则每次调用都会被视为新的对话,可能导致对方 Agent 无法正确理解你的需求。session_id可以从第一轮对话的返回结果中获取,例如[SESSION: xxx]其中
xxx就是session_id的值,该值一般由系统生成,长度一般较长,具有唯一性。你需要把这个session_id存下来,在后续与同一个 Agent 的对话中继续使用它。
Version History
- d744922 Current 2026-08-20 07:41


