[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G2P4V24GDCC5KHNCP0E910":3,"skill-same:01M6G2P4V24GDCC5KHNCP0E910":90},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":17,"linkOnly":18,"markdownContent":19,"markdownBody":19,"frontMatter":20,"refName":21,"commitSha":22,"skillDirectory":23,"forksCount":24,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":27,"install":28,"resources":41},"01M6G2P4V24GDCC5KHNCP0E910","butler",null,"kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# Butler - AI Agent Treasury & Orchestration Skill\n\n## Overview\n\n**Butler** is an OpenClaw skill that transforms AI agents into autonomous economic entities. It manages multi-provider token budgets, spawns sub-agents for complex tasks, and automatically handles token purchases when budgets deplete.\n\nThink of Butler as your **AI Agent CFO** that:\n- ? Tracks token budgets across 8 API keys and 6 providers\n- ? Spawns sub-agents with automatic budget allocation\n- ? Rotates keys when approaching limits\n- ? Aggregates results from parallel workers\n- ?️ Integrates with Code Reviewer for security\n\n## Quick Start\n\n### Installation\n\n```bash\nnpm install butler\n# or\nyarn add butler\n```\n\n### Basic Usage\n\n```typescript\nimport { Butler } from 'butler';\n\n\u002F\u002F Initialize\nconst butler = new Butler();\n\n\u002F\u002F Allocate tokens for a task\nconst allocation = butler.allocateTokens('PRD-my-task.md', 'anthropic');\nconsole.log(`✅ Allocated ${allocation.allocated} tokens on ${allocation.provider}`);\n\n\u002F\u002F Spawn agents for complex work\nconst results = await butler.spawnAgent(\n  'DataAnalysis',\n  'Analyze sales data and write report',\n  100000, \u002F\u002F tokens\n  { maxConcurrent: 3, retryOnFailure: true }\n);\n\n\u002F\u002F Get status\nconst status = butler.getStatus();\nconsole.log(`? Status:`, status);\n```\n\n## Features\n\n### 1. Token Management\n\nButler tracks 8 API keys across 6 providers with real-time usage monitoring:\n\n```typescript\n\u002F\u002F Get available keys\nconst keys = butler.getAvailableKeys();\n\u002F\u002F [\n\u002F\u002F   { id: 'nvidia-1', provider: 'nvidia', model: 'llama-3.1', ... },\n\u002F\u002F   { id: 'anthropic-1', provider: 'anthropic', model: 'claude-sonnet', ... },\n\u002F\u002F   { id: 'groq-1', provider: 'groq', model: 'llama-3.1', ... },\n\u002F\u002F   ...\n\u002F\u002F ]\n\n\u002F\u002F Estimate tokens for PRD\nconst estimate = butler.allocateTokens('PRD-integration.md');\n\u002F\u002F Analyzes PRD complexity and recommends optimal allocation\n\n\u002F\u002F Monitor usage\nconst status = butler.monitorUsage();\n\u002F\u002F { keys_by_provider: { nvidia: {...}, anthropic: {...}, ... } }\n```\n\n**Supported Providers:**\n- **Nvidia** (3 keys, 5M tokens\u002Fday each) - Free tier ✅\n- **Groq** (1 key, 10M tokens\u002Fday) - Free tier ✅\n- **Anthropic** (1 key, 1M tokens\u002Fday) - Current model\n- **OpenAI** (1 key, 500k tokens\u002Fday)\n- **OpenRouter** (1 key, 2M tokens\u002Fday)\n- **Sokosumi** (1 key) - Custom\u002Fresearch\n\n**Total Capacity:** 28.5M tokens\u002Fday\n\n### 2. Agent Orchestration\n\nSpawn multiple sub-agents with automatic task decomposition and budget allocation:\n\n```typescript\n\u002F\u002F Simple spawn (auto-decompose)\nconst results = await butler.spawnAgent(\n  'ComplexResearch',\n  `Research AI agent frameworks:\n   1. Gather information from 5+ sources\n   2. Analyze capabilities and limitations  \n   3. Write detailed comparison report\n   4. Validate findings with expert review`,\n  250000 \u002F\u002F tokens\n);\n\n\u002F\u002F Advanced spawn with options\nconst results = await butler.spawnAgent(\n  'DataPipeline',\n  'Extract, transform, validate, load data',\n  500000,\n  {\n    maxConcurrent: 4,        \u002F\u002F Run up to 4 sub-agents in parallel\n    retryOnFailure: true,    \u002F\u002F Retry failed sub-tasks\n    maxRetries: 3,           \u002F\u002F Up to 3 retry attempts\n    timeoutMs: 600000        \u002F\u002F 10 minute timeout per sub-agent\n  }\n);\n\n\u002F\u002F Get results\nresults.forEach(result => {\n  console.log(`Sub-task ${result.subTaskId}:`);\n  console.log(`  Status: ${result.status}`);\n  console.log(`  Tokens: ${result.tokensUsed}`);\n  if (result.error) console.log(`  Error: ${result.error}`);\n});\n```\n\n**Task Decomposition Algorithm:**\n```\nInput: \"Research AI frameworks, analyze patterns, write report\"\n         ↓\n1. Keyword detection: \"research\", \"analyze\", \"write\"\n         ↓\n2. Sub-task creation:\n   - Subtask 1: \"research AI frameworks\" (30% budget)\n   - Subtask 2: \"analyze patterns\" (40% budget)\n   - Subtask 3: \"write report\" (30% budget)\n         ↓\n3. Priority boost (if specified)\n         ↓\n4. Concurrent execution (respects maxConcurrent)\n         ↓\n5. Result aggregation\n```\n\n### 3. Budget Allocation\n\nAutomatic budget allocation based on task complexity and priority:\n\n```typescript\n\u002F\u002F High-priority task gets more budget\nconst task = {\n  totalBudget: 100000,\n  subTasks: [\n    {\n      id: 'low-priority-task',\n      estimatedTokens: 50000,\n      priority: 'low'      \u002F\u002F 0.5x multiplier = 25k tokens\n    },\n    {\n      id: 'critical-task',\n      estimatedTokens: 50000,\n      priority: 'critical' \u002F\u002F 2.0x multiplier = 100k tokens (capped)\n    }\n  ]\n};\n\n\u002F\u002F Allocation: { 'low-priority-task': 33k, 'critical-task': 67k }\n```\n\n**Priority Multipliers:**\n- `low`: 0.5x (50% of estimated)\n- `medium`: 1.0x (100% of estimated)\n- `high`: 1.5x (150% of estimated)\n- `critical`: 2.0x (200% of estimated)\n\n### 4. Automatic Rotation\n\nKeys rotate at 75% threshold to prevent exhaustion:\n\n```typescript\n\u002F\u002F Automatic tracking and alerts\nconst status = butler.getStatus();\n\u002F\u002F When session reaches 75% of allocated budget:\n\u002F\u002F ✅ Alert issued\n\u002F\u002F ? New key auto-selected\n\u002F\u002F ? Session updated with new key\n\u002F\u002F ? Change logged to history\n\n\u002F\u002F Manual rotation if needed\nbutler.rotateKey('session-id-123', 'anthropic-1');\n```\n\n### 5. Result Aggregation\n\nAutomatic aggregation of results from parallel agents:\n\n```typescript\nconst results = await butler.spawnAgent('ComplexTask', 'task description', 100000);\n\n\u002F\u002F After execution, aggregate results:\nconst aggregated = butler.aggregateTaskResults(results[0].taskId);\n\u002F\u002F {\n\u002F\u002F   taskId: 'task-...',\n\u002F\u002F   totalSubTasks: 5,\n\u002F\u002F   successful: 4,\n\u002F\u002F   failed: 1,\n\u002F\u002F   totalTokensUsed: 87500,\n\u002F\u002F   successRate: 80,\n\u002F\u002F   details: [\n\u002F\u002F     { id: 'subtask-1', status: 'success', tokensUsed: 18000 },\n\u002F\u002F     { id: 'subtask-2', status: 'success', tokensUsed: 22000 },\n\u002F\u002F     { id: 'subtask-3', status: 'success', tokensUsed: 19500 },\n\u002F\u002F     { id: 'subtask-4', status: 'success', tokensUsed: 21000 },\n\u002F\u002F     { id: 'subtask-5', status: 'failure', tokensUsed: 7000, error: 'timeout' }\n\u002F\u002F   ]\n\u002F\u002F }\n```\n\n## Examples\n\n### Example 1: Token Allocation for Complex Task\n\n```typescript\nimport { Butler } from 'butler';\n\nconst butler = new Butler();\n\n\u002F\u002F Create PRD file\nconst prd = `\n# AI Agent Integration Task\n\n## Requirements\n- Integrate OpenAI API\n- Build agent orchestration\n- Write unit tests\n- Deploy to production\n\n## Constraints\n- Budget: $100\u002Fday\n- Timeline: 1 week\n- Team: 2 engineers\n`;\n\nfs.writeFileSync('PRD-integration.md', prd);\n\n\u002F\u002F Get smart allocation\nconst allocation = butler.allocateTokens('PRD-integration.md');\n\nif (allocation.success) {\n  console.log(`\n✅ Recommended:\n   Key: ${allocation.key_id} (${allocation.provider})\n   Budget: ${allocation.allocated.toLocaleString()} tokens\n   Cost: $${allocation.cost_estimate.toFixed(2)}\n   Rotate at: ${allocation.rotation_threshold.toLocaleString()} tokens\n   Available: ${allocation.available_capacity.toLocaleString()} tokens\n  `);\n}\n```\n\n### Example 2: Parallel Agent Execution\n\n```typescript\nimport { Butler } from 'butler';\n\nconst butler = new Butler();\n\nasync function analyzeDataset() {\n  const results = await butler.spawnAgent(\n    'DatasetAnalysis',\n    `\n    1. Extract data from sources\n    2. Clean and validate data\n    3. Run statistical analysis\n    4. Create visualizations\n    5. Write findings report\n    `,\n    300000,\n    { maxConcurrent: 3, retryOnFailure: true }\n  );\n\n  \u002F\u002F Process results\n  const aggregated = butler.aggregateTaskResults(results[0].taskId);\n  \n  console.log(`\n? Analysis Complete:\n   Successful: ${aggregated.successful}\u002F${aggregated.totalSubTasks}\n   Success Rate: ${aggregated.successRate.toFixed(1)}%\n   Total Tokens: ${aggregated.totalTokensUsed.toLocaleString()}\n  `);\n\n  return aggregated;\n}\n\nanalyzeDataset().then(result => {\n  console.log('Results:', result.details);\n});\n```\n\n### Example 3: Error Handling & Retries\n\n```typescript\nimport { Butler } from 'butler';\n\nconst butler = new Butler();\n\nasync function reliableProcessing() {\n  try {\n    const results = await butler.spawnAgent(\n      'RobustProcessing',\n      'Process data with validation and error handling',\n      200000,\n      {\n        retryOnFailure: true,\n        maxRetries: 3,  \u002F\u002F Retry up to 3 times\n        maxConcurrent: 2,\n        timeoutMs: 120000  \u002F\u002F 2 minute timeout\n      }\n    );\n\n    const aggregated = butler.aggregateTaskResults(results[0].taskId);\n\n    if (aggregated.failed > 0) {\n      console.log(`⚠️  ${aggregated.failed} sub-tasks failed:`);\n      aggregated.details\n        .filter((d: any) => d.status === 'failure')\n        .forEach((d: any) => {\n          console.log(`   - ${d.id}: ${d.error}`);\n        });\n\n      \u002F\u002F Optionally retry failed tasks\n      await butler.retryFailedTasks(results[0].taskId);\n    }\n\n    return aggregated;\n  } catch (error) {\n    console.error('Task failed:', error);\n    throw error;\n  }\n}\n\nreliableProcessing();\n```\n\n### Example 4: Monitoring Token Usage\n\n```typescript\nimport { Butler } from 'butler';\n\nconst butler = new Butler();\n\n\u002F\u002F Check current status\nconst status = butler.getStatus();\n\nconsole.log(`\n? Token Status:\n   Total Keys: ${status.tokens.total_keys}\n   Active: ${status.tokens.active_keys}\n   Sessions: ${status.tokens.active_sessions}\n   Pending Alerts: ${status.tokens.pending_alerts}\n`);\n\n\u002F\u002F Get detailed provider breakdown\nObject.entries(status.tokens.keys_by_provider).forEach(([provider, stats]: any) => {\n  const usage = ((stats.used_today \u002F stats.total_capacity) * 100).toFixed(1);\n  console.log(`\n${provider.toUpperCase()}:\n   Capacity: ${stats.total_capacity.toLocaleString()} tokens\u002Fday\n   Used: ${stats.used_today.toLocaleString()} (${usage}%)\n   Remaining: ${stats.remaining.toLocaleString()}\n   Cost: $${stats.cost_today.toFixed(2)}\n  `);\n});\n\n\u002F\u002F Available keys for next allocation\nconst available = butler.getAvailableKeys();\nconsole.log(`\\nAvailable keys: ${available.length}`);\navailable.forEach(key => {\n  console.log(`   - ${key.id} (${key.provider}): ${key.limits.tokens_per_day.toLocaleString()} tokens\u002Fday`);\n});\n```\n\n## API Reference\n\n### Butler Class\n\n#### `constructor(keysPath?: string, statePath?: string)`\nInitialize Butler with optional custom paths for API keys and state.\n\n#### `allocateTokens(prdPath: string, preferredProvider?: string): AllocationResult`\nAnalyze PRD and recommend optimal token allocation.\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  key_id?: string;        \u002F\u002F Recommended key ID\n  key?: string;           \u002F\u002F API key\n  provider?: string;      \u002F\u002F Provider name\n  model?: string;         \u002F\u002F Model to use\n  allocated?: number;     \u002F\u002F Allocated tokens\n  rotation_threshold?: number;  \u002F\u002F Alert threshold (75%)\n  available_capacity?: number;  \u002F\u002F Current available tokens\n  cost_estimate?: number; \u002F\u002F Estimated cost\n}\n```\n\n#### `spawnAgent(name: string, description: string, budget: number, options?: AgentOptions): Promise\u003CTaskResult[]>`\nSpawn sub-agents for task execution.\n\n**Options:**\n```typescript\n{\n  maxConcurrent?: number;    \u002F\u002F Default: 3\n  retryOnFailure?: boolean;  \u002F\u002F Default: true\n  maxRetries?: number;       \u002F\u002F Default: 2\n  timeoutMs?: number;        \u002F\u002F Default: 300000\n}\n```\n\n**Returns:** Array of task results with status, tokens used, and errors.\n\n#### `getStatus(): Status`\nGet comprehensive system status.\n\n#### `getAvailableKeys(): APIKey[]`\nList all available API keys.\n\n#### `monitorUsage(): MonitorStatus`\nGet detailed token usage by provider.\n\n#### `rotateKey(sessionId: string, newKeyId?: string): RotationResult`\nManually rotate to different API key.\n\n#### `aggregateTaskResults(taskId: string): AggregatedResult`\nAggregate results from completed tasks.\n\n#### `retryFailedTasks(taskId: string): Promise\u003CTaskResult[]>`\nRetry failed sub-tasks.\n\n## Architecture\n\nSee [ARCHITECTURE.md](.\u002FARCHITECTURE.md) for detailed system design.\n\n```\n┌─────────────────────────────────────┐\n│         Butler Skill                 │\n├─────────────────────────────────────┤\n│                                     │\n│  Token Manager                      │\n│  ├─ 8 API Keys (6 providers)       │\n│  ├─ Real-time usage tracking        │\n│  ├─ 75% threshold alerts            │\n│  └─ Automatic rotation              │\n│                                     │\n│  Agent Orchestrator                 │\n│  ├─ Task decomposition              │\n│  ├─ Budget allocation               │\n│  ├─ Sub-agent spawning              │\n│  ├─ Parallel execution              │\n│  └─ Result aggregation              │\n│                                     │\n│  Treasury Manager (v0.2)            │\n│  ├─ USDC balance monitoring         │\n│  ├─ Circle API integration          │\n│  ├─ Auto-buy triggers               │\n│  └─ Transaction logging             │\n│                                     │\n│  Security Gate                      │\n│  ├─ Code Reviewer integration       │\n│  ├─ Pre-commit scanning             │\n│  └─ Credential leak prevention      │\n│                                     │\n└─────────────────────────────────────┘\n```\n\n## Configuration\n\n### Environment Variables\n\n```bash\n# Optional - defaults to ~\u002F.openclaw\u002Fworkspace\u002Fapi-keys.json\nBUTLER_KEYS_PATH=\u002Fpath\u002Fto\u002Fkeys.json\n\n# Optional - defaults to ~\u002F.openclaw\u002Fworkspace\u002Ftoken-manager-state.json\nBUTLER_STATE_PATH=\u002Fpath\u002Fto\u002Fstate.json\n\n# Treasury config (v0.2)\nCIRCLE_API_KEY=your_circle_key\nSTRIPE_API_KEY=your_stripe_key\nAUTO_BUY_ENABLED=true\nAUTO_BUY_THRESHOLD=50    # USDC\nAUTO_BUY_AMOUNT=200      # USDC\n```\n\n## Testing\n\nRun full test suite:\n\n```bash\nnpm test                  # Run all tests\nnpm run test:watch      # Watch mode\nnpm run test:coverage   # Coverage report\n```\n\n**Test Coverage:**\n- ✅ 45+ test cases\n- ✅ TokenManager: 15+ tests\n- ✅ AgentOrchestrator: 20+ tests\n- ✅ Butler integration: 15+ tests\n- ✅ Mock API calls\n- ✅ Error scenarios\n- ✅ Load testing\n- ✅ 80%+ code coverage\n\n## Troubleshooting\n\n### No Keys Available\n```\nError: No keys available with sufficient capacity\n```\n**Solution:** Wait for daily reset at 00:00 UTC, or use multiple keys with smaller budgets.\n\n### Rotation Threshold Exceeded\n```\n⚠️ [session-id] 75% budget used - Rotation recommended\n```\n**Solution:** Butler automatically rotates to next available key. Check `getStatus()` for alert details.\n\n### Insufficient Budget for Task\n```\nError: No single key has 999999 tokens available\n```\n**Solution:** Split task into smaller sub-tasks, or wait for daily reset.\n\n## Security\n\n- ✅ Code Reviewer integration prevents credential leaks\n- ✅ All state files stored securely (not in git)\n- ✅ API keys never logged (only IDs)\n- ✅ Pre-commit hooks validate before pushing\n\n**Best Practices:**\n1. Always keep `api-keys.json` in `.gitignore`\n2. Create private repositories for treasury features\n3. Use Code Reviewer before committing\n4. Rotate keys regularly (manual or automatic at 75%)\n\n## Performance\n\n- ⚡ Token allocation: \u003C100ms\n- ⚡ Agent spawning: \u003C500ms\n- ⚡ Result aggregation: O(n) complexity\n- ⚡ Concurrent agents: Tested with 10+ simultaneous tasks\n\n## Roadmap (v0.2+)\n\n- [ ] Treasury module with USDC auto-buy\n- [ ] Circle CCTP integration\n- [ ] Web dashboard for monitoring\n- [ ] Machine learning token prediction\n- [ ] Multi-sig wallet support\n- [ ] Payment splitting between agents\n- [ ] Mobile app\n\n## Support\n\n- ? Docs: [docs\u002F](.\u002Fdocs\u002F)\n- ? Issues: [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fzoro-jiro-san\u002Fbutler\u002Fissues)\n- ? Discussions: [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fzoro-jiro-san\u002Fbutler\u002Fdiscussions)\n- ? Email: support@openclaw.dev\n\n## License\n\nMIT - See [LICENSE](..\u002FLICENSE)\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](..\u002FCONTRIBUTING.md)\n\n---\n\n**Butler v0.1.0** | Circle USDC Hackathon | Deadline: Feb 8, 2026\n",{},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fsarthib7\u002Fbutler",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":7,"skillName":5,"commands":29,"prompt":39,"zipAvailable":40},[30,33,36],{"tool":31,"command":32},"npx","npx skills add kbarbel640-del\u002Fskills --skill butler",{"tool":34,"command":35},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill butler",{"tool":37,"command":38},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill butler","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002FSKILL.md",true,[42,48,52,56,62,66,70,74,78,82,86],{"path":43,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":46,"sourceHtmlUrl":47},"_meta.json","REFERENCE","参考文档",298,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002F_meta.json",{"path":49,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":50,"sourceHtmlUrl":51},"docs\u002FARCHITECTURE.md",16403,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fdocs\u002FARCHITECTURE.md",{"path":53,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":54,"sourceHtmlUrl":55},"GETTING-STARTED.md",3796,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002FGETTING-STARTED.md",{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"jest.config.js","SCRIPT","脚本",501,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fjest.config.js",{"path":63,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":64,"sourceHtmlUrl":65},"package.json",1068,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fpackage.json",{"path":67,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":68,"sourceHtmlUrl":69},"README.md",9753,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002FREADME.md",{"path":71,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":72,"sourceHtmlUrl":73},"src\u002FButler.ts",3712,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fsrc\u002FButler.ts",{"path":75,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":76,"sourceHtmlUrl":77},"src\u002Fcore\u002FAgentOrchestrator.ts",9935,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fsrc\u002Fcore\u002FAgentOrchestrator.ts",{"path":79,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":80,"sourceHtmlUrl":81},"src\u002Fcore\u002FTokenManager.ts",12980,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fsrc\u002Fcore\u002FTokenManager.ts",{"path":83,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":84,"sourceHtmlUrl":85},"src\u002Findex.ts",681,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Fsrc\u002Findex.ts",{"path":87,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":88,"sourceHtmlUrl":89},"tsconfig.json",486,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsarthib7\u002Fbutler\u002Ftsconfig.json",[91,122,151,172,178,198],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":102,"publishedAt":17},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":133,"publishedAt":17},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[134,105,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,110,150],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":160,"publishedAt":17},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000021","资料检索与研究",[161,162,163,164,165,166,167,106,168,148,150,169,105,170,171],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":173,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":17},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[176],{"categoryNo":158,"categoryName":159,"taxonomyType":131,"taxonomyTypeDesc":132},[164,163,162,161,171,166,167,106,165,148,150,168,169,105,170],{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":17},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[185,186,187,188,189,190,191,192,193,194,195,196,197],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":202,"categories":203,"keywords":208,"publishedAt":17},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[204,205],{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},{"categoryNo":206,"categoryName":207,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000037","律师与法务",[209,210,211,212,106,213,214,21,215,169,216,217,218,219,220,119,221,222,223],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]