mirror of
https://github.com/furyhawk/deepresearch.git
synced 2026-07-21 02:06:48 +00:00
1 line
51 KiB
JSON
1 line
51 KiB
JSON
[{"parts":[{"content":"hej","timestamp":"2026-02-16T01:07:10.406036Z","part_kind":"user-prompt"}],"timestamp":"2026-02-16T01:07:10.406740Z","instructions":"You are a Deep Agent, an AI assistant that helps users accomplish tasks using tools. You respond with text and tool calls.\n\n## Core Behavior\n\n- Be concise and direct. Don't over-explain unless asked.\n- NEVER add unnecessary preamble (\"Sure!\", \"Great question!\", \"I'll now...\").\n- Don't say \"I'll now do X\" — just do it.\n- If the request is ambiguous, ask questions before acting.\n- Prioritize accuracy over validating the user's beliefs.\n\n## Workflow\n\nWhen the user asks you to do something:\n\n1. **Understand first** — read relevant files, check existing patterns. Gather enough context to start, then iterate.\n2. **Act** — implement the solution. Work quickly but accurately.\n3. **Verify** — check your work against what was asked. Your first attempt is rarely perfect — iterate.\n\nKeep working until the task is fully complete. Don't stop partway and explain what you would do — just do it. Only yield back to the user when the task is done or you're genuinely blocked.\n\n## Tool Usage\n\n- Use specialized tools over shell equivalents when available (e.g., `read_file` over `cat`, `edit_file` over `sed`, `glob` over `find`).\n- When performing multiple independent operations, make all tool calls in a single response — don't make sequential calls when parallel is possible.\n- Read files before editing them — understand existing content before making changes.\n- Mimic existing code style, naming conventions, and patterns.\n\n## File Reading\n\nWhen reading multiple files or exploring large files, use pagination:\n- Start with `read_file(path, limit=100)` to scan structure.\n- Read targeted sections with offset/limit.\n- Only read full files when necessary for editing.\n\n## Subagent Delegation\n\n- Delegate specialized or independent subtasks to subagents to work in parallel.\n- Be specific in task descriptions — subagents don't have your full context.\n- Synthesize subagent results before presenting to the user.\n\n## Error Handling\n\n- If something fails repeatedly, stop and analyze *why* — don't keep retrying the same approach.\n- If blocked, explain what's wrong and ask for guidance.\n- Consider alternative approaches before giving up.\n\n## Progress Updates\n\nFor longer tasks, provide brief progress updates — a concise sentence recapping what you've done and what's next.\n\n\nYou are DeepResearch, an autonomous research agent. Your mission is to produce\ncomprehensive, well-cited research reports on any topic.\n\n## When to Use the Planner\n\n**Use the planner subagent** (`task(description=\"...\", subagent_type=\"planner\")`) ONLY for:\n- Complex, multi-step research requiring investigation of multiple sub-topics\n- Ambiguous queries where you need to clarify scope, depth, or focus with the user\n- Comparative research across 3+ options (e.g., \"Compare React vs Vue vs Svelte\")\n- Literature reviews or deep-dive reports\n\n**Do NOT use the planner for:**\n- Simple factual questions (\"How does photosynthesis work?\")\n- Diagram/visualization requests (\"Draw me a flowchart of X\")\n- Single-topic explanations you already know well\n- Quick tasks where the answer is straightforward\n\nWhen in doubt: if you can answer confidently without web search, just answer directly.\nIf you need to search multiple sources and synthesize a report, use the planner.\n\n## Research Process (for complex research tasks)\n\n### 1. PLAN\n- Delegate to the planner: `task(description=\"<question>\", subagent_type=\"planner\")`\n- The planner will ask clarifying questions and produce a structured research plan\n- Follow the plan step by step\n\n### 2. SETUP (after receiving plan)\n- Create a TODO list based on the plan's sub-questions (use `write_todos`)\n- Load relevant skills: `load_skill(\"research-methodology\")`, `load_skill(\"report-writing\")`\n\n### 3. SEARCH (per sub-question from plan)\n- Search the web for recent information (use Tavily search tools)\n- For each promising result, read the full page content (use Jina reader tools)\n- Focus on authoritative sources: official docs, academic papers, reputable news\n\n### 4. COLLECT\n- Save key findings to `/workspace/notes/` as markdown files\n- One file per sub-question (e.g., `/workspace/notes/01-background.md`)\n- Include source URL and access date for every fact\n- Mark confidence: [HIGH], [MEDIUM], [LOW]\n- Note any contradictions between sources\n\n### 5. SYNTHESIZE\n- Read all collected notes from `/workspace/notes/`\n- Write a structured report to `/workspace/report.md`\n- Use inline citations [1], [2], [3] throughout\n- Include a complete References section at the end\n\n### 6. REVIEW\n- Re-read the report for completeness\n- Verify all claims have citations\n- Check for contradictions or gaps\n- Update TODOs as completed\n\n## Report Format\n\n```markdown\n# [Descriptive Title]\n\n## Executive Summary\n[2-3 paragraph overview of key findings]\n\n## 1. [Section Title]\n[Content with inline citations [1][2]]\n\n## 2. [Section Title]\n[Content with inline citations [3][4]]\n\n...\n\n## Conclusions\n[Key takeaways and implications]\n\n## References\n[1] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n[2] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n...\n```\n\n## Source Evaluation Guidelines\n\n- **Prefer primary sources** over secondary summaries\n- **Check publication date** — prefer recent for tech/science topics\n- **Cross-reference claims** across multiple sources\n- **Reliability hierarchy**: Academic papers > Official docs > Reputable news > Blog posts > Forums\n- **Always note** when sources disagree\n\n## Tool Usage Guidelines\n\n- Use **planner subagent** for complex multi-source research (not for simple questions)\n- Use **web search** to find relevant pages and get overviews\n- Use **URL reader** to get full content from promising search results\n- Use **write_file** to save notes and the final report\n- Use **read_file** to review your own notes during synthesis\n- Use **write_todos/read_todos** to track your research progress\n- Use **skills** (load_skill) for research methodology and report writing guides\n\n## Visualization with Excalidraw\n\nWhen a visual explanation would be helpful, use Excalidraw MCP tools to create diagrams.\nYou can create diagrams directly — no planner needed for visualization tasks.\nLoad the `diagram-design` skill for detailed guidelines.\n\n**When to create diagrams:**\n- Comparing 3+ options → comparison diagram\n- Process with 4+ steps → flowchart\n- System with multiple components → architecture diagram\n- Chronological events → timeline\n\n**Workflow:**\n1. Plan the diagram (type, elements, layout)\n2. Create elements with `create_element` or `batch_create_elements`\n3. Arrange with `align_elements` and `distribute_elements`\n4. Inspect with `describe_scene` — verify it looks right\n5. Adjust with `update_element` if needed\n\n**Quick alternative:** Use `create_from_mermaid` for simple flowcharts from Mermaid syntax.\n\n**CRITICAL — Canvas is live-embedded for the user:**\n- NEVER call `export_to_excalidraw_url` or `export_scene` or `export_to_image`\n- NEVER include excalidraw.com links or \"Open Diagram\" links in your response\n- NEVER say \"here is the diagram link\" or \"you can view it at...\"\n- The user already sees the diagram live in an embedded canvas — just describe what you drew\n\n## Parallel Research with Subagents\n\nFor complex research with **multiple independent sub-topics**, use async subagents to research them **in parallel** instead of sequentially:\n\n### Basic parallel workflow\n1. Create specialized agents if needed: `create_agent(name=\"topic-researcher\", description=\"Researches a specific topic\", instructions=\"You are a focused researcher. Search the web, read sources, and return a detailed summary with citations.\")`\n2. Dispatch async tasks for each sub-topic:\n - `task(description=\"Research topic A in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic B in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic C in depth\", subagent_type=\"general-purpose\", mode=\"async\")`\n3. Monitor progress: `check_task(task_id)` or `list_active_tasks()`\n4. Collect all results, then synthesize into the final report yourself\n\n### Agent Teams (for large coordinated research)\nFor **3+ parallel workstreams** that need shared state and coordination:\n1. `spawn_team(team_name=\"research-team\", members=[...])` — define team members with roles\n2. `assign_task(member_name=\"...\", task_description=\"...\")` — assign work to each member\n3. `check_teammates()` — monitor progress across the team\n4. `dissolve_team()` — clean up when done\n\n### When to parallelize\n- **YES**: Comparative research (each option researched by a separate agent), multi-source investigation, large literature review (divide by sub-topic)\n- **NO**: Sequential tasks where B depends on A's results, simple single-topic research, when you need to synthesize before continuing\n\n## Important Rules\n\n1. **Use judgment on planning** — use planner for complex research, skip it for simple tasks\n2. **Always cite sources** — never make claims without a reference (in research reports)\n3. **Save notes incrementally** — don't keep everything in context\n4. **Write the report to a file** — the final deliverable is `/workspace/report.md`\n5. **Be thorough** — search multiple times with different queries if needed\n6. **Be honest about uncertainty** — note when evidence is limited or conflicting\n7. **Visualize when helpful** — create Excalidraw diagrams for complex comparisons, flows, or architectures\n\n\n## Application-Specific Capabilities\n\n1. **Web Search**: Search the web via MCP tools (Tavily, Brave Search, Jina URL reader, Firecrawl)\n1b. **Browser Automation**: For JS-heavy pages that don't render well with URL readers, use Playwright MCP tools (navigate, screenshot, click, fill) to interact with web pages directly.\n2. **File Operations**: Read, write, edit, and search files in the workspace\n3. **Code Execution**: Execute Python code in an isolated Docker sandbox (pre-installed: pandas, numpy, matplotlib, scikit-learn, seaborn, plotly)\n4. **Code Review**: Delegate to the 'code-reviewer' subagent for code quality review\n5. **Quick Reference**: Load the 'quick-reference' skill for command shortcuts\n6. **Dynamic Agents**: Create new specialized agents at runtime with `create_agent(name, description, instructions)`, then delegate tasks to them. Use `list_agents()` to see created agents, `remove_agent(name)` to delete them.\n7. **Plan Mode**: For **complex, multi-step research** (comparative studies, literature reviews, ambiguous queries needing clarification), delegate to the 'planner' subagent which will ask clarifying questions and create a structured research plan. **Do NOT use the planner** for simple questions, diagram requests, or topics you already know well — just answer directly or create the visualization.\n8. **Diagrams (Excalidraw)**: Create visual diagrams — comparisons, flowcharts, architecture diagrams, timelines — using Excalidraw MCP tools. Load the 'diagram-design' skill for best practices. Use `describe_scene` to inspect diagrams. NEVER call `export_to_excalidraw_url` or share diagram links — the user sees a live embedded canvas. Just describe what you drew in plain text.\n9. **Parallel Subagents**: For complex research with multiple independent sub-topics, dispatch async tasks with `task(description=\"...\", subagent_type=\"...\", mode=\"async\")`. Monitor with `check_task(task_id)` and `list_active_tasks()`. Create specialized agents dynamically for parallel work.\n10. **Agent Teams**: For large coordinated research (3+ parallel workstreams), use `spawn_team(team_name, members)` to create a team, `assign_task(member, desc)` to distribute work, `check_teammates()` to monitor, and `dissolve_team()` when done.\n\n## Shell Commands & Code Execution\n\nYou have an `execute` tool for running shell commands. **Always use it** when the user asks\nto run a command. The tool may require user approval (human-in-the-loop) — that's expected,\njust call it and wait for approval. Never refuse to run a command or say you can't — use `execute`.\n\n## Error Handling - BE AUTONOMOUS\n\n**CRITICAL**: When something fails, FIX IT YOURSELF. Don't ask for permission to fix obvious issues.\n\nExamples of things you should fix automatically WITHOUT asking:\n- Missing Python modules -> `pip install <module>` and retry\n- File not found -> check the path, create the file if needed\n- Syntax errors in code -> fix the code and retry\n- Permission errors -> try alternative approaches\n- Command not found -> install the tool or use alternatives\n\n**NEVER** say things like:\n- \"Would you like me to install...?\"\n- \"Should I fix this error?\"\n- \"Do you want me to retry?\"\n\n**ALWAYS** just fix the problem and continue. Only ask the user if:\n- You've tried multiple approaches and all failed\n- The error requires a decision about business logic or design\n- You need information only the user can provide\n\n## File Locations\n\n- Uploaded files are in: /uploads/\n- Your workspace is: /workspace/\n- Save generated files (charts, reports, notes) to /workspace/\n\n\n## Task Management\n\nYou have access to todo tools to track your tasks:\n- `read_todos` - View current tasks with their IDs and statuses\n- `write_todos` - Replace the entire todo list\n- `add_todo` - Add a single new task\n- `update_todo_status` - Change a task's status by ID\n- `remove_todo` - Delete a task by ID\n\nWhen working on tasks:\n1. Break down complex tasks into smaller steps\n2. Mark exactly one task as in_progress at a time\n3. Mark tasks as completed immediately after finishing\n\n\n\n## Console Tools\n\nYou have access to console tools for file operations and command execution:\n\n### File Operations\n- `ls`: List files in a directory\n- `read_file`: Read file content with line numbers\n- `write_file`: Create or overwrite a file\n- `edit_file`: Replace strings in a file\n- `glob`: Find files matching a pattern\n- `grep`: Search for patterns in files\n\n### Shell Execution\n- `execute`: Run shell commands (if enabled)\n\n### Best Practices\n- Always read a file before editing it\n- Use edit_file for small changes, write_file for complete rewrites\n- Use glob to find files before operating on them\n- Be careful with destructive shell commands\n\n\n## Available Subagents\n\nYou can delegate tasks to the following specialized subagents:\n\n### code-reviewer\nReviews Python code for quality, security, and best practices. Delegate code review tasks to this subagent.\n\n### planner\nPlans implementation of complex tasks. Analyzes code, asks clarifying questions, and creates detailed step-by-step implementation plans. Use for tasks that need architectural decisions, multi-file changes, or when the user says 'use plan mode'. Do NOT use for simple tasks.\n\n### general-purpose\nA general-purpose agent for a wide variety of tasks.\nUse this when no specialized subagent matches the task requirements.\nCapable of research, analysis, writing, and problem-solving.\n\n## Subagent Execution Modes\n\nYou can delegate tasks to subagents in two modes:\n\n### Sync Mode (Default)\n- Use for simple, quick tasks\n- Use when you need the result immediately\n- Use when the task requires back-and-forth communication\n- The task runs and you wait for the result\n\n### Async Mode (Background)\n- Use for complex, long-running tasks\n- Use when you can continue with other work while waiting\n- Use for tasks that can run independently\n- Returns a task handle immediately - check status later","kind":"request","run_id":"47d2ef77-c662-4e1e-995c-b77a39a74af6","metadata":null},{"parts":[{"content":"Hej! Hur kan jag hjälpa dig idag?","id":null,"provider_name":null,"provider_details":null,"part_kind":"text"}],"usage":{"input_tokens":9222,"cache_write_tokens":0,"cache_read_tokens":9088,"output_tokens":10,"input_audio_tokens":0,"cache_audio_read_tokens":0,"output_audio_tokens":0,"details":{"accepted_prediction_tokens":0,"audio_tokens":0,"reasoning_tokens":0,"rejected_prediction_tokens":0}},"model_name":"gpt-4.1-2025-04-14","timestamp":"2026-02-16T01:07:11.250187Z","kind":"response","provider_name":"openai","provider_url":"https://api.openai.com/v1/","provider_details":{"timestamp":"2026-02-16T01:07:11Z","finish_reason":"stop"},"provider_response_id":"chatcmpl-D9hMtK7azaA0cVX61pD7bEAuyCMGA","finish_reason":"stop","run_id":"47d2ef77-c662-4e1e-995c-b77a39a74af6","metadata":null},{"parts":[{"content":"Literature review: impact of remote work on productivity","timestamp":"2026-02-16T01:07:18.463769Z","part_kind":"user-prompt"}],"timestamp":"2026-02-16T01:07:18.464969Z","instructions":"You are a Deep Agent, an AI assistant that helps users accomplish tasks using tools. You respond with text and tool calls.\n\n## Core Behavior\n\n- Be concise and direct. Don't over-explain unless asked.\n- NEVER add unnecessary preamble (\"Sure!\", \"Great question!\", \"I'll now...\").\n- Don't say \"I'll now do X\" — just do it.\n- If the request is ambiguous, ask questions before acting.\n- Prioritize accuracy over validating the user's beliefs.\n\n## Workflow\n\nWhen the user asks you to do something:\n\n1. **Understand first** — read relevant files, check existing patterns. Gather enough context to start, then iterate.\n2. **Act** — implement the solution. Work quickly but accurately.\n3. **Verify** — check your work against what was asked. Your first attempt is rarely perfect — iterate.\n\nKeep working until the task is fully complete. Don't stop partway and explain what you would do — just do it. Only yield back to the user when the task is done or you're genuinely blocked.\n\n## Tool Usage\n\n- Use specialized tools over shell equivalents when available (e.g., `read_file` over `cat`, `edit_file` over `sed`, `glob` over `find`).\n- When performing multiple independent operations, make all tool calls in a single response — don't make sequential calls when parallel is possible.\n- Read files before editing them — understand existing content before making changes.\n- Mimic existing code style, naming conventions, and patterns.\n\n## File Reading\n\nWhen reading multiple files or exploring large files, use pagination:\n- Start with `read_file(path, limit=100)` to scan structure.\n- Read targeted sections with offset/limit.\n- Only read full files when necessary for editing.\n\n## Subagent Delegation\n\n- Delegate specialized or independent subtasks to subagents to work in parallel.\n- Be specific in task descriptions — subagents don't have your full context.\n- Synthesize subagent results before presenting to the user.\n\n## Error Handling\n\n- If something fails repeatedly, stop and analyze *why* — don't keep retrying the same approach.\n- If blocked, explain what's wrong and ask for guidance.\n- Consider alternative approaches before giving up.\n\n## Progress Updates\n\nFor longer tasks, provide brief progress updates — a concise sentence recapping what you've done and what's next.\n\n\nYou are DeepResearch, an autonomous research agent. Your mission is to produce\ncomprehensive, well-cited research reports on any topic.\n\n## When to Use the Planner\n\n**Use the planner subagent** (`task(description=\"...\", subagent_type=\"planner\")`) ONLY for:\n- Complex, multi-step research requiring investigation of multiple sub-topics\n- Ambiguous queries where you need to clarify scope, depth, or focus with the user\n- Comparative research across 3+ options (e.g., \"Compare React vs Vue vs Svelte\")\n- Literature reviews or deep-dive reports\n\n**Do NOT use the planner for:**\n- Simple factual questions (\"How does photosynthesis work?\")\n- Diagram/visualization requests (\"Draw me a flowchart of X\")\n- Single-topic explanations you already know well\n- Quick tasks where the answer is straightforward\n\nWhen in doubt: if you can answer confidently without web search, just answer directly.\nIf you need to search multiple sources and synthesize a report, use the planner.\n\n## Research Process (for complex research tasks)\n\n### 1. PLAN\n- Delegate to the planner: `task(description=\"<question>\", subagent_type=\"planner\")`\n- The planner will ask clarifying questions and produce a structured research plan\n- Follow the plan step by step\n\n### 2. SETUP (after receiving plan)\n- Create a TODO list based on the plan's sub-questions (use `write_todos`)\n- Load relevant skills: `load_skill(\"research-methodology\")`, `load_skill(\"report-writing\")`\n\n### 3. SEARCH (per sub-question from plan)\n- Search the web for recent information (use Tavily search tools)\n- For each promising result, read the full page content (use Jina reader tools)\n- Focus on authoritative sources: official docs, academic papers, reputable news\n\n### 4. COLLECT\n- Save key findings to `/workspace/notes/` as markdown files\n- One file per sub-question (e.g., `/workspace/notes/01-background.md`)\n- Include source URL and access date for every fact\n- Mark confidence: [HIGH], [MEDIUM], [LOW]\n- Note any contradictions between sources\n\n### 5. SYNTHESIZE\n- Read all collected notes from `/workspace/notes/`\n- Write a structured report to `/workspace/report.md`\n- Use inline citations [1], [2], [3] throughout\n- Include a complete References section at the end\n\n### 6. REVIEW\n- Re-read the report for completeness\n- Verify all claims have citations\n- Check for contradictions or gaps\n- Update TODOs as completed\n\n## Report Format\n\n```markdown\n# [Descriptive Title]\n\n## Executive Summary\n[2-3 paragraph overview of key findings]\n\n## 1. [Section Title]\n[Content with inline citations [1][2]]\n\n## 2. [Section Title]\n[Content with inline citations [3][4]]\n\n...\n\n## Conclusions\n[Key takeaways and implications]\n\n## References\n[1] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n[2] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n...\n```\n\n## Source Evaluation Guidelines\n\n- **Prefer primary sources** over secondary summaries\n- **Check publication date** — prefer recent for tech/science topics\n- **Cross-reference claims** across multiple sources\n- **Reliability hierarchy**: Academic papers > Official docs > Reputable news > Blog posts > Forums\n- **Always note** when sources disagree\n\n## Tool Usage Guidelines\n\n- Use **planner subagent** for complex multi-source research (not for simple questions)\n- Use **web search** to find relevant pages and get overviews\n- Use **URL reader** to get full content from promising search results\n- Use **write_file** to save notes and the final report\n- Use **read_file** to review your own notes during synthesis\n- Use **write_todos/read_todos** to track your research progress\n- Use **skills** (load_skill) for research methodology and report writing guides\n\n## Visualization with Excalidraw\n\nWhen a visual explanation would be helpful, use Excalidraw MCP tools to create diagrams.\nYou can create diagrams directly — no planner needed for visualization tasks.\nLoad the `diagram-design` skill for detailed guidelines.\n\n**When to create diagrams:**\n- Comparing 3+ options → comparison diagram\n- Process with 4+ steps → flowchart\n- System with multiple components → architecture diagram\n- Chronological events → timeline\n\n**Workflow:**\n1. Plan the diagram (type, elements, layout)\n2. Create elements with `create_element` or `batch_create_elements`\n3. Arrange with `align_elements` and `distribute_elements`\n4. Inspect with `describe_scene` — verify it looks right\n5. Adjust with `update_element` if needed\n\n**Quick alternative:** Use `create_from_mermaid` for simple flowcharts from Mermaid syntax.\n\n**CRITICAL — Canvas is live-embedded for the user:**\n- NEVER call `export_to_excalidraw_url` or `export_scene` or `export_to_image`\n- NEVER include excalidraw.com links or \"Open Diagram\" links in your response\n- NEVER say \"here is the diagram link\" or \"you can view it at...\"\n- The user already sees the diagram live in an embedded canvas — just describe what you drew\n\n## Parallel Research with Subagents\n\nFor complex research with **multiple independent sub-topics**, use async subagents to research them **in parallel** instead of sequentially:\n\n### Basic parallel workflow\n1. Create specialized agents if needed: `create_agent(name=\"topic-researcher\", description=\"Researches a specific topic\", instructions=\"You are a focused researcher. Search the web, read sources, and return a detailed summary with citations.\")`\n2. Dispatch async tasks for each sub-topic:\n - `task(description=\"Research topic A in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic B in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic C in depth\", subagent_type=\"general-purpose\", mode=\"async\")`\n3. Monitor progress: `check_task(task_id)` or `list_active_tasks()`\n4. Collect all results, then synthesize into the final report yourself\n\n### Agent Teams (for large coordinated research)\nFor **3+ parallel workstreams** that need shared state and coordination:\n1. `spawn_team(team_name=\"research-team\", members=[...])` — define team members with roles\n2. `assign_task(member_name=\"...\", task_description=\"...\")` — assign work to each member\n3. `check_teammates()` — monitor progress across the team\n4. `dissolve_team()` — clean up when done\n\n### When to parallelize\n- **YES**: Comparative research (each option researched by a separate agent), multi-source investigation, large literature review (divide by sub-topic)\n- **NO**: Sequential tasks where B depends on A's results, simple single-topic research, when you need to synthesize before continuing\n\n## Important Rules\n\n1. **Use judgment on planning** — use planner for complex research, skip it for simple tasks\n2. **Always cite sources** — never make claims without a reference (in research reports)\n3. **Save notes incrementally** — don't keep everything in context\n4. **Write the report to a file** — the final deliverable is `/workspace/report.md`\n5. **Be thorough** — search multiple times with different queries if needed\n6. **Be honest about uncertainty** — note when evidence is limited or conflicting\n7. **Visualize when helpful** — create Excalidraw diagrams for complex comparisons, flows, or architectures\n\n\n## Application-Specific Capabilities\n\n1. **Web Search**: Search the web via MCP tools (Tavily, Brave Search, Jina URL reader, Firecrawl)\n1b. **Browser Automation**: For JS-heavy pages that don't render well with URL readers, use Playwright MCP tools (navigate, screenshot, click, fill) to interact with web pages directly.\n2. **File Operations**: Read, write, edit, and search files in the workspace\n3. **Code Execution**: Execute Python code in an isolated Docker sandbox (pre-installed: pandas, numpy, matplotlib, scikit-learn, seaborn, plotly)\n4. **Code Review**: Delegate to the 'code-reviewer' subagent for code quality review\n5. **Quick Reference**: Load the 'quick-reference' skill for command shortcuts\n6. **Dynamic Agents**: Create new specialized agents at runtime with `create_agent(name, description, instructions)`, then delegate tasks to them. Use `list_agents()` to see created agents, `remove_agent(name)` to delete them.\n7. **Plan Mode**: For **complex, multi-step research** (comparative studies, literature reviews, ambiguous queries needing clarification), delegate to the 'planner' subagent which will ask clarifying questions and create a structured research plan. **Do NOT use the planner** for simple questions, diagram requests, or topics you already know well — just answer directly or create the visualization.\n8. **Diagrams (Excalidraw)**: Create visual diagrams — comparisons, flowcharts, architecture diagrams, timelines — using Excalidraw MCP tools. Load the 'diagram-design' skill for best practices. Use `describe_scene` to inspect diagrams. NEVER call `export_to_excalidraw_url` or share diagram links — the user sees a live embedded canvas. Just describe what you drew in plain text.\n9. **Parallel Subagents**: For complex research with multiple independent sub-topics, dispatch async tasks with `task(description=\"...\", subagent_type=\"...\", mode=\"async\")`. Monitor with `check_task(task_id)` and `list_active_tasks()`. Create specialized agents dynamically for parallel work.\n10. **Agent Teams**: For large coordinated research (3+ parallel workstreams), use `spawn_team(team_name, members)` to create a team, `assign_task(member, desc)` to distribute work, `check_teammates()` to monitor, and `dissolve_team()` when done.\n\n## Shell Commands & Code Execution\n\nYou have an `execute` tool for running shell commands. **Always use it** when the user asks\nto run a command. The tool may require user approval (human-in-the-loop) — that's expected,\njust call it and wait for approval. Never refuse to run a command or say you can't — use `execute`.\n\n## Error Handling - BE AUTONOMOUS\n\n**CRITICAL**: When something fails, FIX IT YOURSELF. Don't ask for permission to fix obvious issues.\n\nExamples of things you should fix automatically WITHOUT asking:\n- Missing Python modules -> `pip install <module>` and retry\n- File not found -> check the path, create the file if needed\n- Syntax errors in code -> fix the code and retry\n- Permission errors -> try alternative approaches\n- Command not found -> install the tool or use alternatives\n\n**NEVER** say things like:\n- \"Would you like me to install...?\"\n- \"Should I fix this error?\"\n- \"Do you want me to retry?\"\n\n**ALWAYS** just fix the problem and continue. Only ask the user if:\n- You've tried multiple approaches and all failed\n- The error requires a decision about business logic or design\n- You need information only the user can provide\n\n## File Locations\n\n- Uploaded files are in: /uploads/\n- Your workspace is: /workspace/\n- Save generated files (charts, reports, notes) to /workspace/\n\n\n## Task Management\n\nYou have access to todo tools to track your tasks:\n- `read_todos` - View current tasks with their IDs and statuses\n- `write_todos` - Replace the entire todo list\n- `add_todo` - Add a single new task\n- `update_todo_status` - Change a task's status by ID\n- `remove_todo` - Delete a task by ID\n\nWhen working on tasks:\n1. Break down complex tasks into smaller steps\n2. Mark exactly one task as in_progress at a time\n3. Mark tasks as completed immediately after finishing\n\n\n\n## Console Tools\n\nYou have access to console tools for file operations and command execution:\n\n### File Operations\n- `ls`: List files in a directory\n- `read_file`: Read file content with line numbers\n- `write_file`: Create or overwrite a file\n- `edit_file`: Replace strings in a file\n- `glob`: Find files matching a pattern\n- `grep`: Search for patterns in files\n\n### Shell Execution\n- `execute`: Run shell commands (if enabled)\n\n### Best Practices\n- Always read a file before editing it\n- Use edit_file for small changes, write_file for complete rewrites\n- Use glob to find files before operating on them\n- Be careful with destructive shell commands\n\n\n## Available Subagents\n\nYou can delegate tasks to the following specialized subagents:\n\n### code-reviewer\nReviews Python code for quality, security, and best practices. Delegate code review tasks to this subagent.\n\n### planner\nPlans implementation of complex tasks. Analyzes code, asks clarifying questions, and creates detailed step-by-step implementation plans. Use for tasks that need architectural decisions, multi-file changes, or when the user says 'use plan mode'. Do NOT use for simple tasks.\n\n### general-purpose\nA general-purpose agent for a wide variety of tasks.\nUse this when no specialized subagent matches the task requirements.\nCapable of research, analysis, writing, and problem-solving.\n\n## Subagent Execution Modes\n\nYou can delegate tasks to subagents in two modes:\n\n### Sync Mode (Default)\n- Use for simple, quick tasks\n- Use when you need the result immediately\n- Use when the task requires back-and-forth communication\n- The task runs and you wait for the result\n\n### Async Mode (Background)\n- Use for complex, long-running tasks\n- Use when you can continue with other work while waiting\n- Use for tasks that can run independently\n- Returns a task handle immediately - check status later","kind":"request","run_id":"5de78d15-59a0-40d9-b3ed-a9d360ad2e94","metadata":null},{"parts":[{"tool_name":"task","args":"{\"description\":\"Produce a literature review on the impact of remote work on productivity. Cover recent (2020–2024) academic papers, meta-analyses, and reports. Include both positive and negative effects, factors that influence productivity (e.g., industry, role, tools), and note any conflicting evidence.\",\"subagent_type\":\"planner\"}","tool_call_id":"call_NN1cK05LPopXRrt7miVLgHNx","id":null,"provider_name":null,"provider_details":null,"part_kind":"tool-call"}],"usage":{"input_tokens":9249,"cache_write_tokens":0,"cache_read_tokens":9088,"output_tokens":77,"input_audio_tokens":0,"cache_audio_read_tokens":0,"output_audio_tokens":0,"details":{"accepted_prediction_tokens":0,"audio_tokens":0,"reasoning_tokens":0,"rejected_prediction_tokens":0}},"model_name":"gpt-4.1-2025-04-14","timestamp":"2026-02-16T01:07:19.558696Z","kind":"response","provider_name":"openai","provider_url":"https://api.openai.com/v1/","provider_details":{"timestamp":"2026-02-16T01:07:18Z","finish_reason":"tool_calls"},"provider_response_id":"chatcmpl-D9hN0zztZ99gqyJgtQJP2acEB9DLw","finish_reason":"tool_call","run_id":"5de78d15-59a0-40d9-b3ed-a9d360ad2e94","metadata":null},{"parts":[{"tool_name":"task","content":"Thank you for the clear instructions and scope. Before I proceed to create the implementation plan for your literature review on the impact of remote work on productivity (2020–2024), I have one important clarification to ensure the plan matches your expectations:\n\nWould you like this literature review to be written as:\n\n- An annotated bibliography format, summarizing each key paper/report individually with brief commentary?\n- A structured narrative review, thematically organizing findings by topic (e.g., overall impact, positive/negative effects, influencing factors, conflicting evidence)?\n- A hybrid approach: narrative sections with in-text citations and a separate bibliography?\n- Another preferred structure or format?\n\nPlease select one so I can tailor the plan accordingly.","tool_call_id":"call_NN1cK05LPopXRrt7miVLgHNx","metadata":null,"timestamp":"2026-02-16T01:07:24.887945Z","part_kind":"tool-return"}],"timestamp":"2026-02-16T01:07:24.891014Z","instructions":"You are a Deep Agent, an AI assistant that helps users accomplish tasks using tools. You respond with text and tool calls.\n\n## Core Behavior\n\n- Be concise and direct. Don't over-explain unless asked.\n- NEVER add unnecessary preamble (\"Sure!\", \"Great question!\", \"I'll now...\").\n- Don't say \"I'll now do X\" — just do it.\n- If the request is ambiguous, ask questions before acting.\n- Prioritize accuracy over validating the user's beliefs.\n\n## Workflow\n\nWhen the user asks you to do something:\n\n1. **Understand first** — read relevant files, check existing patterns. Gather enough context to start, then iterate.\n2. **Act** — implement the solution. Work quickly but accurately.\n3. **Verify** — check your work against what was asked. Your first attempt is rarely perfect — iterate.\n\nKeep working until the task is fully complete. Don't stop partway and explain what you would do — just do it. Only yield back to the user when the task is done or you're genuinely blocked.\n\n## Tool Usage\n\n- Use specialized tools over shell equivalents when available (e.g., `read_file` over `cat`, `edit_file` over `sed`, `glob` over `find`).\n- When performing multiple independent operations, make all tool calls in a single response — don't make sequential calls when parallel is possible.\n- Read files before editing them — understand existing content before making changes.\n- Mimic existing code style, naming conventions, and patterns.\n\n## File Reading\n\nWhen reading multiple files or exploring large files, use pagination:\n- Start with `read_file(path, limit=100)` to scan structure.\n- Read targeted sections with offset/limit.\n- Only read full files when necessary for editing.\n\n## Subagent Delegation\n\n- Delegate specialized or independent subtasks to subagents to work in parallel.\n- Be specific in task descriptions — subagents don't have your full context.\n- Synthesize subagent results before presenting to the user.\n\n## Error Handling\n\n- If something fails repeatedly, stop and analyze *why* — don't keep retrying the same approach.\n- If blocked, explain what's wrong and ask for guidance.\n- Consider alternative approaches before giving up.\n\n## Progress Updates\n\nFor longer tasks, provide brief progress updates — a concise sentence recapping what you've done and what's next.\n\n\nYou are DeepResearch, an autonomous research agent. Your mission is to produce\ncomprehensive, well-cited research reports on any topic.\n\n## When to Use the Planner\n\n**Use the planner subagent** (`task(description=\"...\", subagent_type=\"planner\")`) ONLY for:\n- Complex, multi-step research requiring investigation of multiple sub-topics\n- Ambiguous queries where you need to clarify scope, depth, or focus with the user\n- Comparative research across 3+ options (e.g., \"Compare React vs Vue vs Svelte\")\n- Literature reviews or deep-dive reports\n\n**Do NOT use the planner for:**\n- Simple factual questions (\"How does photosynthesis work?\")\n- Diagram/visualization requests (\"Draw me a flowchart of X\")\n- Single-topic explanations you already know well\n- Quick tasks where the answer is straightforward\n\nWhen in doubt: if you can answer confidently without web search, just answer directly.\nIf you need to search multiple sources and synthesize a report, use the planner.\n\n## Research Process (for complex research tasks)\n\n### 1. PLAN\n- Delegate to the planner: `task(description=\"<question>\", subagent_type=\"planner\")`\n- The planner will ask clarifying questions and produce a structured research plan\n- Follow the plan step by step\n\n### 2. SETUP (after receiving plan)\n- Create a TODO list based on the plan's sub-questions (use `write_todos`)\n- Load relevant skills: `load_skill(\"research-methodology\")`, `load_skill(\"report-writing\")`\n\n### 3. SEARCH (per sub-question from plan)\n- Search the web for recent information (use Tavily search tools)\n- For each promising result, read the full page content (use Jina reader tools)\n- Focus on authoritative sources: official docs, academic papers, reputable news\n\n### 4. COLLECT\n- Save key findings to `/workspace/notes/` as markdown files\n- One file per sub-question (e.g., `/workspace/notes/01-background.md`)\n- Include source URL and access date for every fact\n- Mark confidence: [HIGH], [MEDIUM], [LOW]\n- Note any contradictions between sources\n\n### 5. SYNTHESIZE\n- Read all collected notes from `/workspace/notes/`\n- Write a structured report to `/workspace/report.md`\n- Use inline citations [1], [2], [3] throughout\n- Include a complete References section at the end\n\n### 6. REVIEW\n- Re-read the report for completeness\n- Verify all claims have citations\n- Check for contradictions or gaps\n- Update TODOs as completed\n\n## Report Format\n\n```markdown\n# [Descriptive Title]\n\n## Executive Summary\n[2-3 paragraph overview of key findings]\n\n## 1. [Section Title]\n[Content with inline citations [1][2]]\n\n## 2. [Section Title]\n[Content with inline citations [3][4]]\n\n...\n\n## Conclusions\n[Key takeaways and implications]\n\n## References\n[1] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n[2] Author/Site, \"Title\", URL, Accessed: YYYY-MM-DD\n...\n```\n\n## Source Evaluation Guidelines\n\n- **Prefer primary sources** over secondary summaries\n- **Check publication date** — prefer recent for tech/science topics\n- **Cross-reference claims** across multiple sources\n- **Reliability hierarchy**: Academic papers > Official docs > Reputable news > Blog posts > Forums\n- **Always note** when sources disagree\n\n## Tool Usage Guidelines\n\n- Use **planner subagent** for complex multi-source research (not for simple questions)\n- Use **web search** to find relevant pages and get overviews\n- Use **URL reader** to get full content from promising search results\n- Use **write_file** to save notes and the final report\n- Use **read_file** to review your own notes during synthesis\n- Use **write_todos/read_todos** to track your research progress\n- Use **skills** (load_skill) for research methodology and report writing guides\n\n## Visualization with Excalidraw\n\nWhen a visual explanation would be helpful, use Excalidraw MCP tools to create diagrams.\nYou can create diagrams directly — no planner needed for visualization tasks.\nLoad the `diagram-design` skill for detailed guidelines.\n\n**When to create diagrams:**\n- Comparing 3+ options → comparison diagram\n- Process with 4+ steps → flowchart\n- System with multiple components → architecture diagram\n- Chronological events → timeline\n\n**Workflow:**\n1. Plan the diagram (type, elements, layout)\n2. Create elements with `create_element` or `batch_create_elements`\n3. Arrange with `align_elements` and `distribute_elements`\n4. Inspect with `describe_scene` — verify it looks right\n5. Adjust with `update_element` if needed\n\n**Quick alternative:** Use `create_from_mermaid` for simple flowcharts from Mermaid syntax.\n\n**CRITICAL — Canvas is live-embedded for the user:**\n- NEVER call `export_to_excalidraw_url` or `export_scene` or `export_to_image`\n- NEVER include excalidraw.com links or \"Open Diagram\" links in your response\n- NEVER say \"here is the diagram link\" or \"you can view it at...\"\n- The user already sees the diagram live in an embedded canvas — just describe what you drew\n\n## Parallel Research with Subagents\n\nFor complex research with **multiple independent sub-topics**, use async subagents to research them **in parallel** instead of sequentially:\n\n### Basic parallel workflow\n1. Create specialized agents if needed: `create_agent(name=\"topic-researcher\", description=\"Researches a specific topic\", instructions=\"You are a focused researcher. Search the web, read sources, and return a detailed summary with citations.\")`\n2. Dispatch async tasks for each sub-topic:\n - `task(description=\"Research topic A in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic B in depth\", subagent_type=\"topic-researcher\", mode=\"async\")`\n - `task(description=\"Research topic C in depth\", subagent_type=\"general-purpose\", mode=\"async\")`\n3. Monitor progress: `check_task(task_id)` or `list_active_tasks()`\n4. Collect all results, then synthesize into the final report yourself\n\n### Agent Teams (for large coordinated research)\nFor **3+ parallel workstreams** that need shared state and coordination:\n1. `spawn_team(team_name=\"research-team\", members=[...])` — define team members with roles\n2. `assign_task(member_name=\"...\", task_description=\"...\")` — assign work to each member\n3. `check_teammates()` — monitor progress across the team\n4. `dissolve_team()` — clean up when done\n\n### When to parallelize\n- **YES**: Comparative research (each option researched by a separate agent), multi-source investigation, large literature review (divide by sub-topic)\n- **NO**: Sequential tasks where B depends on A's results, simple single-topic research, when you need to synthesize before continuing\n\n## Important Rules\n\n1. **Use judgment on planning** — use planner for complex research, skip it for simple tasks\n2. **Always cite sources** — never make claims without a reference (in research reports)\n3. **Save notes incrementally** — don't keep everything in context\n4. **Write the report to a file** — the final deliverable is `/workspace/report.md`\n5. **Be thorough** — search multiple times with different queries if needed\n6. **Be honest about uncertainty** — note when evidence is limited or conflicting\n7. **Visualize when helpful** — create Excalidraw diagrams for complex comparisons, flows, or architectures\n\n\n## Application-Specific Capabilities\n\n1. **Web Search**: Search the web via MCP tools (Tavily, Brave Search, Jina URL reader, Firecrawl)\n1b. **Browser Automation**: For JS-heavy pages that don't render well with URL readers, use Playwright MCP tools (navigate, screenshot, click, fill) to interact with web pages directly.\n2. **File Operations**: Read, write, edit, and search files in the workspace\n3. **Code Execution**: Execute Python code in an isolated Docker sandbox (pre-installed: pandas, numpy, matplotlib, scikit-learn, seaborn, plotly)\n4. **Code Review**: Delegate to the 'code-reviewer' subagent for code quality review\n5. **Quick Reference**: Load the 'quick-reference' skill for command shortcuts\n6. **Dynamic Agents**: Create new specialized agents at runtime with `create_agent(name, description, instructions)`, then delegate tasks to them. Use `list_agents()` to see created agents, `remove_agent(name)` to delete them.\n7. **Plan Mode**: For **complex, multi-step research** (comparative studies, literature reviews, ambiguous queries needing clarification), delegate to the 'planner' subagent which will ask clarifying questions and create a structured research plan. **Do NOT use the planner** for simple questions, diagram requests, or topics you already know well — just answer directly or create the visualization.\n8. **Diagrams (Excalidraw)**: Create visual diagrams — comparisons, flowcharts, architecture diagrams, timelines — using Excalidraw MCP tools. Load the 'diagram-design' skill for best practices. Use `describe_scene` to inspect diagrams. NEVER call `export_to_excalidraw_url` or share diagram links — the user sees a live embedded canvas. Just describe what you drew in plain text.\n9. **Parallel Subagents**: For complex research with multiple independent sub-topics, dispatch async tasks with `task(description=\"...\", subagent_type=\"...\", mode=\"async\")`. Monitor with `check_task(task_id)` and `list_active_tasks()`. Create specialized agents dynamically for parallel work.\n10. **Agent Teams**: For large coordinated research (3+ parallel workstreams), use `spawn_team(team_name, members)` to create a team, `assign_task(member, desc)` to distribute work, `check_teammates()` to monitor, and `dissolve_team()` when done.\n\n## Shell Commands & Code Execution\n\nYou have an `execute` tool for running shell commands. **Always use it** when the user asks\nto run a command. The tool may require user approval (human-in-the-loop) — that's expected,\njust call it and wait for approval. Never refuse to run a command or say you can't — use `execute`.\n\n## Error Handling - BE AUTONOMOUS\n\n**CRITICAL**: When something fails, FIX IT YOURSELF. Don't ask for permission to fix obvious issues.\n\nExamples of things you should fix automatically WITHOUT asking:\n- Missing Python modules -> `pip install <module>` and retry\n- File not found -> check the path, create the file if needed\n- Syntax errors in code -> fix the code and retry\n- Permission errors -> try alternative approaches\n- Command not found -> install the tool or use alternatives\n\n**NEVER** say things like:\n- \"Would you like me to install...?\"\n- \"Should I fix this error?\"\n- \"Do you want me to retry?\"\n\n**ALWAYS** just fix the problem and continue. Only ask the user if:\n- You've tried multiple approaches and all failed\n- The error requires a decision about business logic or design\n- You need information only the user can provide\n\n## File Locations\n\n- Uploaded files are in: /uploads/\n- Your workspace is: /workspace/\n- Save generated files (charts, reports, notes) to /workspace/\n\n\n## Task Management\n\nYou have access to todo tools to track your tasks:\n- `read_todos` - View current tasks with their IDs and statuses\n- `write_todos` - Replace the entire todo list\n- `add_todo` - Add a single new task\n- `update_todo_status` - Change a task's status by ID\n- `remove_todo` - Delete a task by ID\n\nWhen working on tasks:\n1. Break down complex tasks into smaller steps\n2. Mark exactly one task as in_progress at a time\n3. Mark tasks as completed immediately after finishing\n\n\n\n## Console Tools\n\nYou have access to console tools for file operations and command execution:\n\n### File Operations\n- `ls`: List files in a directory\n- `read_file`: Read file content with line numbers\n- `write_file`: Create or overwrite a file\n- `edit_file`: Replace strings in a file\n- `glob`: Find files matching a pattern\n- `grep`: Search for patterns in files\n\n### Shell Execution\n- `execute`: Run shell commands (if enabled)\n\n### Best Practices\n- Always read a file before editing it\n- Use edit_file for small changes, write_file for complete rewrites\n- Use glob to find files before operating on them\n- Be careful with destructive shell commands\n\n\n## Available Subagents\n\nYou can delegate tasks to the following specialized subagents:\n\n### code-reviewer\nReviews Python code for quality, security, and best practices. Delegate code review tasks to this subagent.\n\n### planner\nPlans implementation of complex tasks. Analyzes code, asks clarifying questions, and creates detailed step-by-step implementation plans. Use for tasks that need architectural decisions, multi-file changes, or when the user says 'use plan mode'. Do NOT use for simple tasks.\n\n### general-purpose\nA general-purpose agent for a wide variety of tasks.\nUse this when no specialized subagent matches the task requirements.\nCapable of research, analysis, writing, and problem-solving.\n\n## Subagent Execution Modes\n\nYou can delegate tasks to subagents in two modes:\n\n### Sync Mode (Default)\n- Use for simple, quick tasks\n- Use when you need the result immediately\n- Use when the task requires back-and-forth communication\n- The task runs and you wait for the result\n\n### Async Mode (Background)\n- Use for complex, long-running tasks\n- Use when you can continue with other work while waiting\n- Use for tasks that can run independently\n- Returns a task handle immediately - check status later","kind":"request","run_id":"5de78d15-59a0-40d9-b3ed-a9d360ad2e94","metadata":null},{"parts":[{"content":"Would you like the literature review organized as:\n- Annotated bibliography (each key paper summarized)\n- Structured narrative review (themes/topics with citations)\n- Hybrid (narrative sections + bibliography)\n- Another format?\n\nPlease specify your preference.","id":null,"provider_name":null,"provider_details":null,"part_kind":"text"}],"usage":{"input_tokens":9474,"cache_write_tokens":0,"cache_read_tokens":9216,"output_tokens":49,"input_audio_tokens":0,"cache_audio_read_tokens":0,"output_audio_tokens":0,"details":{"accepted_prediction_tokens":0,"audio_tokens":0,"reasoning_tokens":0,"rejected_prediction_tokens":0}},"model_name":"gpt-4.1-2025-04-14","timestamp":"2026-02-16T01:07:25.701267Z","kind":"response","provider_name":"openai","provider_url":"https://api.openai.com/v1/","provider_details":{"timestamp":"2026-02-16T01:07:25Z","finish_reason":"stop"},"provider_response_id":"chatcmpl-D9hN7gwgXgw7EQOLXxxvmnGqKaG79","finish_reason":"stop","run_id":"5de78d15-59a0-40d9-b3ed-a9d360ad2e94","metadata":null},{"parts":[{"content":"just a short raport","timestamp":"2026-02-16T01:11:22.687595Z","part_kind":"user-prompt"}],"timestamp":null,"instructions":null,"kind":"request","run_id":null,"metadata":null}] |