[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HWXRBB8DXRDTFMHF43PBDF":3,"skill-same:01M6HWXRBB8DXRDTFMHF43PBDF":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6HWXRBB8DXRDTFMHF43PBDF","route-failed-searches-to-shell-agent",null,"Delegate web search tasks to shell_agent when direct search_web tool fails, using its retry mechanism and multi-step capabilities for resilient data gathering","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",8024,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Froute-failed-searches-to-shell-agent\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"shell","route","route failed searches to shell agent","web","tasks","capabilities","search","data","web search","tool","direct","delegate","multi","retry","for","resilient data gathering","2026-11-10 10:12:30",false,"---\nname: route-failed-searches-to-shell-agent\ndescription: Delegate web search tasks to shell_agent when direct search_web tool fails, using its retry mechanism and multi-step capabilities for resilient data gathering\n---\n\n# Route Failed Web Searches to Shell Agent\n\n## When to Use This Skill\n\nUse this workflow when:\n- Direct `search_web` tool calls consistently fail with 'unknown error' or similar failures\n- You need to gather web-based information but the standard search tool is unreliable\n- The task requires multi-step data collection that benefits from autonomous retry logic\n- You need resilient data gathering that can adapt when initial approaches fail\n\n## Core Pattern\n\nInstead of repeatedly calling `search_web` when it fails, delegate the entire search task to `shell_agent`. The shell_agent's internal capabilities provide:\n- **Automatic retry logic** with error detection and recovery\n- **Multi-step approach** - can try different methods (APIs, scraping, alternative sources)\n- **Code-based solutions** - can write Python scripts, use curl, or other tools\n- **Autonomous adaptation** - figures out the best approach without manual intervention\n\n## Step-by-Step Instructions\n\n### Step 1: Detect Search Tool Failure\n\nWhen `search_web` returns errors like:\n- \"unknown error\"\n- Empty or incomplete results\n- Consistent failures across multiple queries\n\nRecognize this as a signal to switch strategies rather than retrying the same failing tool.\n\n### Step 2: Delegate to Shell Agent\n\nCreate a task for shell_agent with clear objectives:\n\n```python\nshell_agent(\n    task=\"Gather current energy market data including oil prices, gas prices, and bond market information. Search multiple sources and compile findings into a structured summary.\",\n    timeout=300\n)\n```\n\n**Key task formulation principles:**\n- Specify the **what** (data needed) not the **how** (specific tools to use)\n- Include success criteria and output format expectations\n- Allow sufficient timeout for multi-step execution (300+ seconds)\n- Let shell_agent decide whether to use Python, curl, or other approaches\n\n### Step 3: Verify Results\n\nCheck shell_agent output for:\n- Complete data collection (not partial results)\n- Multiple sources cited (indicates thorough searching)\n- Structured, usable output format\n- Evidence of error handling (mentions of retry attempts, alternative approaches tried)\n\n### Step 4: Extract and Use Data\n\nProcess the shell_agent results for your downstream task:\n- Parse collected data into required format\n- Cross-reference with any partial results from failed search_web calls\n- Document sources for verification if needed\n\n## Code Example\n\n**Scenario**: Gathering market data for a financial report when search_web fails.\n\n```python\n# Failed approach - don't keep retrying this:\ntry:\n    results = search_web(query=\"current oil gas bond market prices 2025\")\n    # This fails with unknown error\nexcept:\n    pass  # Don't just catch and retry the same failing tool\n\n# Correct approach - delegate to shell_agent:\nfrom tools import shell_agent\n\nmarket_data = shell_agent(\n    task=\"\"\"\n    Gather comprehensive energy market data for a trading strategy report.\n    Required information:\n    1. Current crude oil prices (WTI, Brent)\n    2. Natural gas prices\n    3. Relevant bond issuer analysis and yields\n    4. Recent market trends and forecasts\n    \n    Use multiple sources, handle any errors by trying alternative approaches,\n    and provide structured output with source citations.\n    \"\"\",\n    timeout=300\n)\n\n# Now use market_data for your report\n```\n\n## Why This Works\n\n| Aspect | search_web (failing) | shell_agent (working) |\n|--------|---------------------|----------------------|\n| Retry logic | None or limited | Built-in multi-round retry |\n| Error handling | Returns error | Attempts to fix and continue |\n| Approach flexibility | Single method | Can use Python, bash, APIs, scraping |\n| Adaptation | Fails completely | Tries alternative strategies |\n| Output reliability | Inconsistent | Structured, verified results |\n\n## Best Practices\n\n1. **Don't chain failed tools**: Once search_web fails twice, switch to shell_agent immediately rather than accumulating more failures.\n\n2. **Set appropriate timeouts**: Shell_agent needs time to iterate (200-300 seconds typical for complex searches).\n\n3. **Be specific about data needs**: Shell_agent performs better with clear requirements than broad queries.\n\n4. **Trust the autonomy**: Don't micromanage which tools shell_agent should use - let it decide the best approach.\n\n5. **Validate outputs**: Always verify shell_agent results meet your needs before proceeding to downstream tasks.\n\n## Troubleshooting\n\n**Shell_agent also fails?**\n- Increase timeout (try 400-500 seconds)\n- Break the task into smaller sub-tasks\n- Specify more concrete data sources or APIs to try\n\n**Results are incomplete?**\n- Add explicit output format requirements\n- Request source citations to verify coverage\n- Consider running multiple targeted shell_agent calls for different data categories\n\n**Task takes too long?**\n- Set clear timeout boundaries\n- Prioritize most critical data in the task description\n- Consider running parallel shell_agent calls for independent data categories\n\n## Related Patterns\n\n- Combine with `execute_code_sandbox` for custom data processing after shell_agent gathers raw data\n- Use alongside `create_file` to persist collected data for downstream tasks\n- Pair with `read_webpage` for targeted extraction when shell_agent identifies specific URLs","# Route Failed Web Searches to Shell Agent\n\n## When to Use This Skill\n\nUse this workflow when:\n- Direct `search_web` tool calls consistently fail with 'unknown error' or similar failures\n- You need to gather web-based information but the standard search tool is unreliable\n- The task requires multi-step data collection that benefits from autonomous retry logic\n- You need resilient data gathering that can adapt when initial approaches fail\n\n## Core Pattern\n\nInstead of repeatedly calling `search_web` when it fails, delegate the entire search task to `shell_agent`. The shell_agent's internal capabilities provide:\n- **Automatic retry logic** with error detection and recovery\n- **Multi-step approach** - can try different methods (APIs, scraping, alternative sources)\n- **Code-based solutions** - can write Python scripts, use curl, or other tools\n- **Autonomous adaptation** - figures out the best approach without manual intervention\n\n## Step-by-Step Instructions\n\n### Step 1: Detect Search Tool Failure\n\nWhen `search_web` returns errors like:\n- \"unknown error\"\n- Empty or incomplete results\n- Consistent failures across multiple queries\n\nRecognize this as a signal to switch strategies rather than retrying the same failing tool.\n\n### Step 2: Delegate to Shell Agent\n\nCreate a task for shell_agent with clear objectives:\n\n```python\nshell_agent(\n    task=\"Gather current energy market data including oil prices, gas prices, and bond market information. Search multiple sources and compile findings into a structured summary.\",\n    timeout=300\n)\n```\n\n**Key task formulation principles:**\n- Specify the **what** (data needed) not the **how** (specific tools to use)\n- Include success criteria and output format expectations\n- Allow sufficient timeout for multi-step execution (300+ seconds)\n- Let shell_agent decide whether to use Python, curl, or other approaches\n\n### Step 3: Verify Results\n\nCheck shell_agent output for:\n- Complete data collection (not partial results)\n- Multiple sources cited (indicates thorough searching)\n- Structured, usable output format\n- Evidence of error handling (mentions of retry attempts, alternative approaches tried)\n\n### Step 4: Extract and Use Data\n\nProcess the shell_agent results for your downstream task:\n- Parse collected data into required format\n- Cross-reference with any partial results from failed search_web calls\n- Document sources for verification if needed\n\n## Code Example\n\n**Scenario**: Gathering market data for a financial report when search_web fails.\n\n```python\n# Failed approach - don't keep retrying this:\ntry:\n    results = search_web(query=\"current oil gas bond market prices 2025\")\n    # This fails with unknown error\nexcept:\n    pass  # Don't just catch and retry the same failing tool\n\n# Correct approach - delegate to shell_agent:\nfrom tools import shell_agent\n\nmarket_data = shell_agent(\n    task=\"\"\"\n    Gather comprehensive energy market data for a trading strategy report.\n    Required information:\n    1. Current crude oil prices (WTI, Brent)\n    2. Natural gas prices\n    3. Relevant bond issuer analysis and yields\n    4. Recent market trends and forecasts\n    \n    Use multiple sources, handle any errors by trying alternative approaches,\n    and provide structured output with source citations.\n    \"\"\",\n    timeout=300\n)\n\n# Now use market_data for your report\n```\n\n## Why This Works\n\n| Aspect | search_web (failing) | shell_agent (working) |\n|--------|---------------------|----------------------|\n| Retry logic | None or limited | Built-in multi-round retry |\n| Error handling | Returns error | Attempts to fix and continue |\n| Approach flexibility | Single method | Can use Python, bash, APIs, scraping |\n| Adaptation | Fails completely | Tries alternative strategies |\n| Output reliability | Inconsistent | Structured, verified results |\n\n## Best Practices\n\n1. **Don't chain failed tools**: Once search_web fails twice, switch to shell_agent immediately rather than accumulating more failures.\n\n2. **Set appropriate timeouts**: Shell_agent needs time to iterate (200-300 seconds typical for complex searches).\n\n3. **Be specific about data needs**: Shell_agent performs better with clear requirements than broad queries.\n\n4. **Trust the autonomy**: Don't micromanage which tools shell_agent should use - let it decide the best approach.\n\n5. **Validate outputs**: Always verify shell_agent results meet your needs before proceeding to downstream tasks.\n\n## Troubleshooting\n\n**Shell_agent also fails?**\n- Increase timeout (try 400-500 seconds)\n- Break the task into smaller sub-tasks\n- Specify more concrete data sources or APIs to try\n\n**Results are incomplete?**\n- Add explicit output format requirements\n- Request source citations to verify coverage\n- Consider running multiple targeted shell_agent calls for different data categories\n\n**Task takes too long?**\n- Set clear timeout boundaries\n- Prioritize most critical data in the task description\n- Consider running parallel shell_agent calls for independent data categories\n\n## Related Patterns\n\n- Combine with `execute_code_sandbox` for custom data processing after shell_agent gathers raw data\n- Use alongside `create_file` to persist collected data for downstream tasks\n- Pair with `read_webpage` for targeted extraction when shell_agent identifies specific URLs",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Froute-failed-searches-to-shell-agent",941,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot","https:\u002F\u002Fgithub.com\u002FHKUDS","https:\u002F\u002Fsites.google.com\u002Fview\u002Fchaoh","2026-11-12 22:26:39",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add HKUDS\u002FAgentPilot --skill route-failed-searches-to-shell-agent",{"tool":59,"command":60},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill route-failed-searches-to-shell-agent",{"tool":62,"command":63},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill route-failed-searches-to-shell-agent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Froute-failed-searches-to-shell-agent\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},".skill_id","OTHER","其他",50,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fbenchmarks\u002Fgdpval\u002Fskills\u002Froute-failed-searches-to-shell-agent\u002F.skill_id",[74,94,113,132,152,175],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":40},"01M6HYB297NDABRERJRVG0K8R0","agentpilot","Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fplugins\u002Fagentpilot\u002Fskills\u002Fagentpilot\u002FSKILL.md",[],[76,81,82,83,84,85,86,87,88,89,90,91,92,93],"prepare","requests","with","missing","installation","rsi","up","use","user","work","SET","run","experiments",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":40},"01M6HYAYWXTTE1J7DJM0MFNQ4H","remember","Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fskills\u002Fremember\u002FSKILL.md",[],[96,101,102,103,104,105,106,107,108,109,110,111,112],"memory","review","auto","openspace","changes","facts","detect","entries","local","conflicts","stale","duplicates",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":40},"01M6HYAVMPM4SBDV60R2B5HPV8","skill-discovery","Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fskill-discovery\u002FSKILL.md",[119],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[121,122,123,104,124,125,126,127,128,129,29,130,30,131],"skill discovery","discovery","reusable","step by step","tokens","packages","help","cloud","reliability","browse","Tools",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":40},"01M6HYAR811B3RB0M50RBEDGN6","delegate-task","Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fdelegate-task\u002FSKILL.md",[138],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[35,140,141,104,142,143,144,145,146,123,103,88,147,33,148,38,149,28,150,151],"task","delegate task","time","improve","desktop automation","worker","community","autonomous","stack","share","automation","MCP",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":40},"01M6HYAM9FSGV6E52AYENDQXYH","write-special-chars-ts-check","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[159,160,161,162,163,164,165,166,167,168,169,170,171,172,38,173,174],"write special chars ts check","write","check","type","files","filters","only","template","file","python","typescript","output","Existing","type-checking","errors","script",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":40},"01M6HYAH05HGV7SVWSVR8PJRQD","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[182,183,160,83,38,174,184,185,186,187,188,166,167,189,190,168],"write special chars readback","readback","helper","post","via","scripts","read","verification","cleanup"]