Chat with Agent
When to Use
Use this skill when you need to ask another agent a question, seek help, request a plan, request a review, request decision support, or engage in any form of communication.
If the user explicitly asks to talk to a specific agent, you should also use this skill.
Should Use
- You need another agent's expertise, judgment, or second opinion
- You need to request a plan, review, or recommendation from an agent
- The user explicitly asks a specific agent to participate, assist, or answer
- You need to continue an existing agent session while preserving context
Should Not Use
- You can complete the task yourself and the user has not explicitly asked to involve another agent
- It is a simple Q&A that does not require a specialized agent
- The target agent is unclear — you should ask for clarification or list available agents first
- You just received a message from an agent and are about to immediately call back the same agent, which may cause a loop
Decision Rules
- If the user explicitly requests a specific agent, follow that request — but still look up the agent first; do not guess the ID
- If you can complete the task yourself, do not call another agent
- When continuing a conversation, you must pass
session_id
- By default, prefer using
list_agents() and chat_with_agent(...) for foreground conversations — do not resort to other methods
- If the task should run in the background, use
submit_to_agent(...) to submit it, then check_agent_task(...) to check the status
Usage Flow
Follow this flow strictly when using this skill:
- Ensure your tool list includes both
list_agents() and chat_with_agent(...) built-in tools
- These two tools are the foundation for communicating with other agents — do not remove or disable them
- If you do not have these tools, inform the user that you need them to talk to other agents, and ask the user to add them
- Use
list_agents() to view the currently available agents, and select one by extracting its ID
- Choose the most appropriate agent based on the user's needs and each agent's description
- If no suitable agent is found and you are not the Default Agent, use the Default Agent
- Otherwise, inform the user that no suitable agent is available, and suggest they create a new agent or adjust existing agent descriptions for better matching
- Call
chat_with_agent(...) to initiate a foreground conversation. Key parameters include:
to_agent: the target agent's ID (note: this is the ID, not the name)
text: what you want to say to the target agent
session_id: (optional) if you need multiple rounds of conversation with the same agent, pass the same session_id starting from the second round to maintain context continuity
timeout: (optional) estimated time needed for the foreground wait, to avoid premature timeouts
- If the task is better suited for background execution, use the background tool path:
submit_to_agent(...): submit a background task — requires to_agent, text, and optionally session_id / task_timeout
- Default execution budget is 3600 seconds (1 hour) when
task_timeout is omitted
- For work that may exceed 1 hour, pass an explicit positive
task_timeout in seconds
- Numeric strings such as
"7200" are accepted
check_agent_task(...): check task status by task_id; returns the final result when complete
- On timeout the task finishes as failed with an error like
Task timed out after Ns (and code=timeout in the API payload)
Minimal Call Examples
New Conversation
list_agents()
chat_with_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] I need your help determining the approach for this issue.",
)
Continuing an Existing Conversation
chat_with_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] Please continue expanding on point 2 based on the previous conclusion.",
session_id="<previous_session_id>",
)
Background Submission and Status Check
submit_to_agent(
to_agent="<target_agent_id>",
text="[Agent <your_agent_id> requesting] Please complete this longer task in the background.",
task_timeout=7200,
)
check_agent_task(
task_id="<task_id>",
)
Important Notes
- Add a conversation identifier: it is recommended to start your message with:
[Agent <your_agent_id> requesting]
This helps the other agent clearly identify who is speaking, improving communication efficiency and accuracy.
Reuse sessions wisely: if you need multiple rounds of conversation with the same agent, be sure to pass the same session_id to maintain context continuity. Otherwise, each call is treated as a new conversation, and the other agent may not correctly understand your needs. You can obtain the session_id from the first round's response, for example:
[SESSION: xxx]
where xxx is the session_id value. This value is typically system-generated and has a long, unique format. Save this session_id and continue using it in subsequent conversations with the same agent.
1---
2name: chat-with-agent
3description: Use this skill when you need to consult another agent, ask for help, or involve a specific agent the user asked for.
4metadata:
5 builtin_skill_version: "1.2"
6 qwenpaw:
7 emoji: "💬"
8---
9
10# Chat with Agent
11
12## When to Use
13
14Use this skill when you need to **ask another agent a question, seek help, request a plan, request a review, request decision support, or engage in any form of communication**.
15If the **user explicitly asks to talk to a specific agent**, you should also use this skill.
16
17### Should Use
18
19- You need another agent's expertise, judgment, or second opinion
20- You need to request a plan, review, or recommendation from an agent
21- The user explicitly asks a specific agent to participate, assist, or answer
22- You need to continue an existing agent session while preserving context
23
24### Should Not Use
25
26- You can complete the task yourself and the user has not explicitly asked to involve another agent
27- It is a simple Q&A that does not require a specialized agent
28- The target agent is unclear — you should ask for clarification or list available agents first
29- You just received a message from an agent and are about to immediately call back the same agent, which may cause a loop
30
31## Decision Rules
32
331. **If the user explicitly requests a specific agent, follow that request — but still look up the agent first; do not guess the ID**
342. **If you can complete the task yourself, do not call another agent**
353. **When continuing a conversation, you must pass `session_id`**
364. **By default, prefer using `list_agents()` and `chat_with_agent(...)` for foreground conversations — do not resort to other methods**
375. **If the task should run in the background, use `submit_to_agent(...)` to submit it, then `check_agent_task(...)` to check the status**
38
39## Usage Flow
40
41Follow this flow strictly when using this skill:
42
431) Ensure your tool list includes both `list_agents()` and `chat_with_agent(...)` built-in tools
44
45 - These two tools are the foundation for communicating with other agents — do not remove or disable them
46 - If you do not have these tools, inform the user that you need them to talk to other agents, and ask the user to add them
47
482) Use `list_agents()` to view the currently available agents, and select one by extracting its ID
49
50 - Choose the most appropriate agent based on the user's needs and each agent's description
51 - If no suitable agent is found and you are not the Default Agent, use the Default Agent
52 - Otherwise, inform the user that no suitable agent is available, and suggest they create a new agent or adjust existing agent descriptions for better matching
53
543) Call `chat_with_agent(...)` to initiate a foreground conversation. Key parameters include:
55 - `to_agent`: the target agent's ID (note: this is the ID, not the name)
56 - `text`: what you want to say to the target agent
57 - `session_id`: (optional) if you need multiple rounds of conversation with the same agent, pass the same `session_id` starting from the second round to maintain context continuity
58 - `timeout`: (optional) estimated time needed for the foreground wait, to avoid premature timeouts
59
604) If the task is better suited for background execution, use the background tool path:
61 - `submit_to_agent(...)`: submit a background task — requires `to_agent`, `text`, and optionally `session_id` / `task_timeout`
62 - Default execution budget is **3600 seconds (1 hour)** when `task_timeout` is omitted
63 - For work that may exceed 1 hour, pass an explicit positive `task_timeout` in seconds
64 - Numeric strings such as `"7200"` are accepted
65 - `check_agent_task(...)`: check task status by `task_id`; returns the final result when complete
66 - On timeout the task finishes as failed with an error like `Task timed out after Ns` (and `code=timeout` in the API payload)
67
68## Minimal Call Examples
69
70### New Conversation
71
72```text
73list_agents()
74
75chat_with_agent(
76 to_agent="<target_agent_id>",
77 text="[Agent <your_agent_id> requesting] I need your help determining the approach for this issue.",
78)
79```
80
81### Continuing an Existing Conversation
82
83```text
84chat_with_agent(
85 to_agent="<target_agent_id>",
86 text="[Agent <your_agent_id> requesting] Please continue expanding on point 2 based on the previous conclusion.",
87 session_id="<previous_session_id>",
88)
89```
90
91### Background Submission and Status Check
92
93```text
94submit_to_agent(
95 to_agent="<target_agent_id>",
96 text="[Agent <your_agent_id> requesting] Please complete this longer task in the background.",
97 task_timeout=7200,
98)
99
100check_agent_task(
101 task_id="<task_id>",
102)
103```
104
105
106## Important Notes
107
108- **Add a conversation identifier**: it is recommended to start your message with:
109
110```text
111[Agent <your_agent_id> requesting]
112```
113This helps the other agent clearly identify who is speaking, improving communication efficiency and accuracy.
114
115
116- **Reuse sessions wisely**: if you need multiple rounds of conversation with the same agent, be sure to pass the same `session_id` to maintain context continuity. Otherwise, each call is treated as a new conversation, and the other agent may not correctly understand your needs. You can obtain the `session_id` from the first round's response, for example:
117
118 ```text
119 [SESSION: xxx]
120 ```
121
122 where `xxx` is the `session_id` value. This value is typically system-generated and has a long, unique format. Save this `session_id` and continue using it in subsequent conversations with the same agent.