{"name":"research_agent","description":"Control plane assistant","supportedInterfaces":[{"url":"http://research-agent-eef73.agent-provider.svc.cluster.local:8080","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"version":"0.0.1","capabilities":{"streaming":true,"pushNotifications":true,"extensions":[{"uri":"https://google.github.io/adk-docs/a2a/a2a-extension/","description":"Ability to use the new agent executor implementation"}]},"defaultInputModes":["text/plain"],"defaultOutputModes":["text/plain"],"skills":[{"id":"research_agent","name":"model","description":"Control plane assistant","tags":["llm"]},{"id":"research_agent-set_todos","name":"set_todos","description":"Create and maintain a structured task list for the current session.\nTracks progress, organizes multi-step work, and surfaces status to the user.\n\n## When to use\nUse proactively when:\n- The task requires 3+ distinct steps or actions (not just 3 tool calls for a single conceptual step)\n- The work is non-trivial and benefits from planning\n- The user provides multiple tasks (numbered or comma-separated) or explicitly asks for a todo list\n- New instructions arrive - capture them as todos\n- You start a task - mark it `in_progress` (only one at a time) before working\n- You finish a task - mark it `completed` and add any follow-ups discovered during the work\n\n## When NOT to use\nSkip when:\n- The work is a single, straightforward task (or <3 trivial steps)\n- The request is purely informational or conversational\n- Tracking adds no organizational value\n\n## States\n- `pending` - not started\n- `in_progress` - actively working (exactly ONE at a time)\n- `completed` - finished successfully\n- `cancelled` - no longer needed\n\n## Rules\n- Update status in real time; don't batch completions\n- Mark `completed` only after the required work is actually done, including any required verification. Never based on intent.\n- Keep exactly one `in_progress` while work remains\n- If blocked or partial, keep it `in_progress` and add a follow-up todo describing the blocker\n- Preserve user-provided commands verbatim (flags, args, order)\n- Items should be specific and actionable; break large work into smaller steps\n\n## Examples\n\nUse it:\n- \"Create a brand strategy document\" -> multi-phase deliverable\n- \"Analyze quarterly sales data and generate executive summary\" -> data analysis with multiple steps\n- \"Build a microservice for user authentication\" -> multi-step development task\n- \"Design a database schema for inventory management\" -> complex modeling\n- \"Prepare quarterly board presentation\" -> research + writing + design\n\nSkip it:\n- \"What is the capital of France?\" -> factual question\n- \"Clarify the Q3 revenue figure\" -> single data point lookup\n- \"Summarize this paragraph\" -> one-step transformation\n- \"Thanks for the help\" -> conversational\n\nWhen in doubt, use it.\n\n## Arguments\n- `todos`: full-replace list of todo items. Each item requires `content` (non-empty\n  string) and `status` (one of `pending`/`in_progress`/`completed`/`cancelled`).\n  `priority` is optional and defaults to `medium` (one of `high`/`medium`/`low`).\n  Pass `[]` to clear the plan.","tags":["llm","tools"]}]}