--- name: find-skills description: | Helps users discover, search and install agent skills from the marketplace. Use when the user wants to find a skill, discover new capabilities, find specific tools (especially sandboxes) or install a skill. This skill should be used when the user is looking for functionality that might exist as an installable skill. Also supports progressive disclosure to recommend sandbox-related skills when relevant. 用于帮助用户在市场中搜索、发现和安装 Agent 插件(Skills)。 当用户想要查找功能、安装特定工具或寻找沙箱(sandbox)时使用。 Triggers: "查找插件","搜索技能","搜索 X 技能","安装技能","安装 X 技能","如何做 X","沙箱","安全沙箱","find a skill for X", "how do i do X", "search for skill", "install skill", "I need a skill for X", "sandbox", "aio sandbox" --- # Find Skills - Skill Marketplace This skill allows you to explore and install new capabilities into the agent environment. It acts as the "package manager" for your agent's skills. ## When to Use This Skill Use this skill when the user: - Asks: "How can I do X?", "Find a skill for X", or "What skills are available?" - Wants to install skills by name or from search results ("install skill web-search") - Wants to extend capabilities with specialized tools or workflows - Expresses needs for specific capabilities that might exist as skills - Is interested in sandbox or secure execution ("I want to safely run bash commands") - Mentions specific capabilities like "sandbox", "automation", "testing" ## Core Tools 1. **Search**: Python script `scripts/request.py` with POPRequest class - Makes authenticated API calls to Alibaba Cloud skill marketplace - Parameters: `UserQuery` (search term), `TopK` (number of results) - Returns: JSON response with skill details including name, description, repository info 2. **Install**: `npx skills add -s ` - **Restriction**: Must ALWAYS ask for user confirmation before executing. - Use `-s, --skill ` to specify which skill(s) to install from the repo - Supports multiple repo formats: - GitHub shorthand: `npx skills add owner/repo -s skill_name` - Full GitHub URL: `npx skills add https://github.com/owner/repo -s skill_name` - Direct path to skill: `npx skills add https://github.com/owner/repo/tree/main/skills/skill_name` - GitLab URL: `npx skills add https://gitlab.com/org/repo -s skill_name` - Git URL: `npx skills add git@github.com:owner/repo.git -s skill_name` - Local path: `npx skills add ./my-local-skills -s skill_name` - Use `-s '*'` to install all skills from the repo ## Workflow ### Step 1: Understand the Need & Search When a user asks for help with something, identify: 1. The domain or task (e.g., running code safely, automation, testing) 2. Whether this is a common enough need that a skill likely exists 3. Does the query fit common sandbox/secure execution needs? ### Step 2: Search for Skills via Python API The search process uses the Python request module to query the skill marketplace: 1. Import the POPRequest class from scripts/request.py 2. Create a request with the SearchPublicMarketSkill action 3. Set query parameters: UserQuery (search term) and TopK (max results) 4. Execute the request and parse JSON response 5. Extract skill information: name, owner, repository, description Convert user's natural language intent into a concise search keyword (maintaining the original language). ```python from scripts.request import POPRequest import json # Create request request = POPRequest( http_method='GET', canonical_uri='/', x_acs_action='SearchPublicMarketSkill', host='wuyingai.cn-shanghai.aliyuncs.com', base_url='wuyingai.cn-shanghai.aliyuncs.com', x_acs_version='2026-01-08', signature_version='1.0' ) # Search for skills request.set_query_params({ 'UserQuery': 'sandbox', # User's search query 'TopK': '10' }) # Execute and parse response = request.call() results = json.loads(response) ``` **Example Searches:** - "我需要一个沙箱" -> UserQuery: "sandbox" - "如何处理 PDF?" -> UserQuery: "pdf" - "帮我找个代码审查的插件" -> UserQuery: "code review" - "I need a sandbox" -> UserQuery: "sandbox" - "How to handle PDF?" -> UserQuery: "pdf" - "Can you help me with code review?" -> UserQuery: "code review" ### Step 3: Present Options to the User When you find relevant skills, present them to the user with: 1. **skill_name**: The identifier for the skill 2. **skill_id**: The hash code for the skill 3. **skill_repo**: Owner/organization for the GitHub repo 4. **description**: Brief description of skill 5. **source_url**: Direct path to a skill in a repo (use this for installation) Use the returned `SourceUrl` (repo URL) and `SkillName` from the search results to format the install command: ```bash npx skills add -s ``` Example response: ``` I found a skill that might help! The "vercel-react-best-practices" skill provides React and Next.js performance optimization guidelines from Vercel Engineering. To install it: npx skills add https://github.com/vercel-labs/agent-skills -s vercel-react-best-practices Learn more: https://pre-agentbay.console.aliyun.com/agentbay-skills/skill-detail?skillId=hw8edas7skphamvk ``` ### Step 4: Offer to Install Only after user says "yes", "install", or similar confirmation, install the skill: ```bash npx skills add -s ``` ## Common Skill Categories When searching, consider these common categories: | Category | Example Queries | | --------------- | ---------------------------------------- | | Web Development | react, nextjs, typescript, css, tailwind | | Testing | testing, jest, playwright, e2e | | DevOps | deploy, docker, kubernetes, ci-cd | | Documentation | docs, readme, changelog, api-docs | | Code Quality | review, lint, refactor, best-practices | | Design | ui, ux, design-system, accessibility | | Productivity | workflow, automation, git | | Sandbox | agentbay-aio-skills | ## Tips for Effective Searches 1. **Use specific keywords**: "react testing" is better than just "testing" 2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd" 3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills` ## When No Skills Are Found If no relevant skills exist: 1. Acknowledge that no existing skill was found 2. Offer to help with the task directly using your general capabilities Example: ``` I searched for skills related to "xyz" but didn't find any matches. I can still help you with this task directly! Would you like me to proceed? If this is something you do often, you could create your own skill: npx skills init my-xyz-skill ``` ## Safety Guidelines - Do not hallucinate skill names. Only recommend what the Python search API returns. - Ensure the user understands that installing a skill grants the agent new permissions.