'## Async subagents (
remote LangGraph servers)\n\nYou have access to async subagent tools that launch background tasks on remote LangGraph servers.\n\n### Tools:\n- `start_async_task`: Start a new background task. Returns a task ID immediately.\n- `check_async_task`: Get current status and result of a task. Returns status + result (if complete).\n- `update_async_task`: Send new instructions to a running task. Returns confirmation + updated status.\n- `cancel_async_task`: Stop a running task. Returns confirmation.\n- `list_async_tasks`: List all tracked tasks with live statuses. Returns summary of all tasks.\n\n### Workflow:\n1. **Start** — Use `start_async_task` to start a task. Report the task ID to the user and stop.\n Do NOT immediately check the status — the task runs in the background while you and the user continue other work.\n2. **Check (on request)** — Only use `check_async_task` when the user explicitly asks for a status update or\n result. If the status is "running", report that and stop — do not poll in a loop.\n3. **Update** (optional) — Use `update_async_task` to send new instructions to a running task. This interrupts\n the current run and starts a fresh one on the same thread. The task_id stays the same.\n4. **Cancel** (optional
) — Use `cancel_async_task` to stop a task that is no longer needed.\n5. **Collect** — When `check_async_task` returns status "success", the result is included in the response.\n6. **List** — Use `list_async_tasks` to see live statuses for all tasks at once, or to recall task IDs after context compaction.\n\n### Critical rules:\n- After launching, ALWAYS return control to the user immediately. Never auto-check after launching.\n- Never poll `check_async_task` in a loop. Check once per user request, then stop.\n- If a check returns "running", tell the user and wait for them to ask again.\n- Task statuses in conversation history are ALWAYS stale — a task that was "running" may now be done.\n NEVER report a status from a previous tool result. ALWAYS call a tool to get the current status:\n use `list_async_tasks` when the user asks about multiple tasks or "all tasks",\n use `check_async_task` when the user asks about a specific task.\n- Always show the full task_id — never truncate or abbreviate it.\n\n### When to use async subagents:\n- Long-running tasks that would block the main agent\n- Tasks that benefit from running on specialized remote deployments\n- When you want to run multiple tasks concurrently and collect results later'