[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XEG44R4R5MB20CGJ69V2A6":3,"skill-same:01M6XEG44R4R5MB20CGJ69V2A6":61},{"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":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":14,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6XEG44R4R5MB20CGJ69V2A6","azure-ai-projects-ts",null,"High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fazure-ai-projects-ts\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"azure ai","azure","azure ai projects ts","azure ai projects","projects","sdk","foundry","azure ai foundry","deployments","community","connections","with","high","for","unknown","2026","2026-11-10 10:12:30",false,"---\nname: azure-ai-projects-ts\ndescription: \"High-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Azure AI Projects SDK for TypeScript\n\nHigh-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fai-projects @azure\u002Fidentity\n```\n\nFor tracing:\n```bash\nnpm install @azure\u002Fmonitor-opentelemetry @opentelemetry\u002Fapi\n```\n\n## Environment Variables\n\n```bash\nAZURE_AI_PROJECT_ENDPOINT=https:\u002F\u002F\u003Cresource>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>\nMODEL_DEPLOYMENT_NAME=gpt-4o\n```\n\n## Authentication\n\n```typescript\nimport { AIProjectClient } from \"@azure\u002Fai-projects\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst client = new AIProjectClient(\n  process.env.AZURE_AI_PROJECT_ENDPOINT!,\n  new DefaultAzureCredential()\n);\n```\n\n## Operation Groups\n\n| Group | Purpose |\n|-------|---------|\n| `client.agents` | Create and manage AI agents |\n| `client.connections` | List connected Azure resources |\n| `client.deployments` | List model deployments |\n| `client.datasets` | Upload and manage datasets |\n| `client.indexes` | Create and manage search indexes |\n| `client.evaluators` | Manage evaluation metrics |\n| `client.memoryStores` | Manage agent memory |\n\n## Getting OpenAI Client\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Use for responses\nconst response = await openAIClient.responses.create({\n  model: \"gpt-4o\",\n  input: \"What is the capital of France?\"\n});\n\n\u002F\u002F Use for conversations\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n```\n\n## Agents\n\n### Create Agent\n\n```typescript\nconst agent = await client.agents.createVersion(\"my-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You are a helpful assistant.\"\n});\n```\n\n### Agent with Tools\n\n```typescript\n\u002F\u002F Code Interpreter\nconst agent = await client.agents.createVersion(\"code-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You can execute code.\",\n  tools: [{ type: \"code_interpreter\", container: { type: \"auto\" } }]\n});\n\n\u002F\u002F File Search\nconst agent = await client.agents.createVersion(\"search-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{ type: \"file_search\", vector_store_ids: [vectorStoreId] }]\n});\n\n\u002F\u002F Web Search\nconst agent = await client.agents.createVersion(\"web-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"web_search_preview\",\n    user_location: { type: \"approximate\", country: \"US\", city: \"Seattle\" }\n  }]\n});\n\n\u002F\u002F Azure AI Search\nconst agent = await client.agents.createVersion(\"aisearch-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"azure_ai_search\",\n    azure_ai_search: {\n      indexes: [{\n        project_connection_id: connectionId,\n        index_name: \"my-index\",\n        query_type: \"simple\"\n      }]\n    }\n  }]\n});\n\n\u002F\u002F Function Tool\nconst agent = await client.agents.createVersion(\"func-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"get_weather\",\n      description: \"Get weather for a location\",\n      strict: true,\n      parameters: {\n        type: \"object\",\n        properties: { location: { type: \"string\" } },\n        required: [\"location\"]\n      }\n    }\n  }]\n});\n\n\u002F\u002F MCP Tool\nconst agent = await client.agents.createVersion(\"mcp-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"mcp\",\n    server_label: \"my-mcp\",\n    server_url: \"https:\u002F\u002Fmcp-server.example.com\",\n    require_approval: \"always\"\n  }]\n});\n```\n\n### Run Agent\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Create conversation\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n\n\u002F\u002F Generate response using agent\nconst response = await openAIClient.responses.create(\n  { conversation: conversation.id },\n  { body: { agent: { name: agent.name, type: \"agent_reference\" } } }\n);\n\n\u002F\u002F Cleanup\nawait openAIClient.conversations.delete(conversation.id);\nawait client.agents.deleteVersion(agent.name, agent.version);\n```\n\n## Connections\n\n```typescript\n\u002F\u002F List all connections\nfor await (const conn of client.connections.list()) {\n  console.log(conn.name, conn.type);\n}\n\n\u002F\u002F Get connection by name\nconst conn = await client.connections.get(\"my-connection\");\n\n\u002F\u002F Get connection with credentials\nconst connWithCreds = await client.connections.getWithCredentials(\"my-connection\");\n\n\u002F\u002F Get default connection by type\nconst defaultAzureOpenAI = await client.connections.getDefault(\"AzureOpenAI\", true);\n```\n\n## Deployments\n\n```typescript\n\u002F\u002F List all deployments\nfor await (const deployment of client.deployments.list()) {\n  if (deployment.type === \"ModelDeployment\") {\n    console.log(deployment.name, deployment.modelName);\n  }\n}\n\n\u002F\u002F Filter by publisher\nfor await (const d of client.deployments.list({ modelPublisher: \"OpenAI\" })) {\n  console.log(d.name);\n}\n\n\u002F\u002F Get specific deployment\nconst deployment = await client.deployments.get(\"gpt-4o\");\n```\n\n## Datasets\n\n```typescript\n\u002F\u002F Upload single file\nconst dataset = await client.datasets.uploadFile(\n  \"my-dataset\",\n  \"1.0\",\n  \".\u002Fdata\u002Ftraining.jsonl\"\n);\n\n\u002F\u002F Upload folder\nconst dataset = await client.datasets.uploadFolder(\n  \"my-dataset\",\n  \"2.0\",\n  \".\u002Fdata\u002Fdocuments\u002F\"\n);\n\n\u002F\u002F Get dataset\nconst ds = await client.datasets.get(\"my-dataset\", \"1.0\");\n\n\u002F\u002F List versions\nfor await (const version of client.datasets.listVersions(\"my-dataset\")) {\n  console.log(version);\n}\n\n\u002F\u002F Delete\nawait client.datasets.delete(\"my-dataset\", \"1.0\");\n```\n\n## Indexes\n\n```typescript\nimport { AzureAISearchIndex } from \"@azure\u002Fai-projects\";\n\nconst indexConfig: AzureAISearchIndex = {\n  name: \"my-index\",\n  type: \"AzureSearch\",\n  version: \"1\",\n  indexName: \"my-index\",\n  connectionName: \"search-connection\"\n};\n\n\u002F\u002F Create index\nconst index = await client.indexes.createOrUpdate(\"my-index\", \"1\", indexConfig);\n\n\u002F\u002F List indexes\nfor await (const idx of client.indexes.list()) {\n  console.log(idx.name);\n}\n\n\u002F\u002F Delete\nawait client.indexes.delete(\"my-index\", \"1\");\n```\n\n## Key Types\n\n```typescript\nimport {\n  AIProjectClient,\n  AIProjectClientOptionalParams,\n  Connection,\n  ModelDeployment,\n  DatasetVersionUnion,\n  AzureAISearchIndex\n} from \"@azure\u002Fai-projects\";\n```\n\n## Best Practices\n\n1. **Use getOpenAIClient()** - For responses, conversations, files, and vector stores\n2. **Version your agents** - Use `createVersion` for reproducible agent definitions\n3. **Clean up resources** - Delete agents, conversations when done\n4. **Use connections** - Get credentials from project connections, don't hardcode\n5. **Filter deployments** - Use `modelPublisher` filter to find specific models\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure AI Projects SDK for TypeScript\n\nHigh-level SDK for Azure AI Foundry projects with agents, connections, deployments, and evaluations.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fai-projects @azure\u002Fidentity\n```\n\nFor tracing:\n```bash\nnpm install @azure\u002Fmonitor-opentelemetry @opentelemetry\u002Fapi\n```\n\n## Environment Variables\n\n```bash\nAZURE_AI_PROJECT_ENDPOINT=https:\u002F\u002F\u003Cresource>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>\nMODEL_DEPLOYMENT_NAME=gpt-4o\n```\n\n## Authentication\n\n```typescript\nimport { AIProjectClient } from \"@azure\u002Fai-projects\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst client = new AIProjectClient(\n  process.env.AZURE_AI_PROJECT_ENDPOINT!,\n  new DefaultAzureCredential()\n);\n```\n\n## Operation Groups\n\n| Group | Purpose |\n|-------|---------|\n| `client.agents` | Create and manage AI agents |\n| `client.connections` | List connected Azure resources |\n| `client.deployments` | List model deployments |\n| `client.datasets` | Upload and manage datasets |\n| `client.indexes` | Create and manage search indexes |\n| `client.evaluators` | Manage evaluation metrics |\n| `client.memoryStores` | Manage agent memory |\n\n## Getting OpenAI Client\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Use for responses\nconst response = await openAIClient.responses.create({\n  model: \"gpt-4o\",\n  input: \"What is the capital of France?\"\n});\n\n\u002F\u002F Use for conversations\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n```\n\n## Agents\n\n### Create Agent\n\n```typescript\nconst agent = await client.agents.createVersion(\"my-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You are a helpful assistant.\"\n});\n```\n\n### Agent with Tools\n\n```typescript\n\u002F\u002F Code Interpreter\nconst agent = await client.agents.createVersion(\"code-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  instructions: \"You can execute code.\",\n  tools: [{ type: \"code_interpreter\", container: { type: \"auto\" } }]\n});\n\n\u002F\u002F File Search\nconst agent = await client.agents.createVersion(\"search-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{ type: \"file_search\", vector_store_ids: [vectorStoreId] }]\n});\n\n\u002F\u002F Web Search\nconst agent = await client.agents.createVersion(\"web-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"web_search_preview\",\n    user_location: { type: \"approximate\", country: \"US\", city: \"Seattle\" }\n  }]\n});\n\n\u002F\u002F Azure AI Search\nconst agent = await client.agents.createVersion(\"aisearch-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"azure_ai_search\",\n    azure_ai_search: {\n      indexes: [{\n        project_connection_id: connectionId,\n        index_name: \"my-index\",\n        query_type: \"simple\"\n      }]\n    }\n  }]\n});\n\n\u002F\u002F Function Tool\nconst agent = await client.agents.createVersion(\"func-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"function\",\n    function: {\n      name: \"get_weather\",\n      description: \"Get weather for a location\",\n      strict: true,\n      parameters: {\n        type: \"object\",\n        properties: { location: { type: \"string\" } },\n        required: [\"location\"]\n      }\n    }\n  }]\n});\n\n\u002F\u002F MCP Tool\nconst agent = await client.agents.createVersion(\"mcp-agent\", {\n  kind: \"prompt\",\n  model: \"gpt-4o\",\n  tools: [{\n    type: \"mcp\",\n    server_label: \"my-mcp\",\n    server_url: \"https:\u002F\u002Fmcp-server.example.com\",\n    require_approval: \"always\"\n  }]\n});\n```\n\n### Run Agent\n\n```typescript\nconst openAIClient = await client.getOpenAIClient();\n\n\u002F\u002F Create conversation\nconst conversation = await openAIClient.conversations.create({\n  items: [{ type: \"message\", role: \"user\", content: \"Hello!\" }]\n});\n\n\u002F\u002F Generate response using agent\nconst response = await openAIClient.responses.create(\n  { conversation: conversation.id },\n  { body: { agent: { name: agent.name, type: \"agent_reference\" } } }\n);\n\n\u002F\u002F Cleanup\nawait openAIClient.conversations.delete(conversation.id);\nawait client.agents.deleteVersion(agent.name, agent.version);\n```\n\n## Connections\n\n```typescript\n\u002F\u002F List all connections\nfor await (const conn of client.connections.list()) {\n  console.log(conn.name, conn.type);\n}\n\n\u002F\u002F Get connection by name\nconst conn = await client.connections.get(\"my-connection\");\n\n\u002F\u002F Get connection with credentials\nconst connWithCreds = await client.connections.getWithCredentials(\"my-connection\");\n\n\u002F\u002F Get default connection by type\nconst defaultAzureOpenAI = await client.connections.getDefault(\"AzureOpenAI\", true);\n```\n\n## Deployments\n\n```typescript\n\u002F\u002F List all deployments\nfor await (const deployment of client.deployments.list()) {\n  if (deployment.type === \"ModelDeployment\") {\n    console.log(deployment.name, deployment.modelName);\n  }\n}\n\n\u002F\u002F Filter by publisher\nfor await (const d of client.deployments.list({ modelPublisher: \"OpenAI\" })) {\n  console.log(d.name);\n}\n\n\u002F\u002F Get specific deployment\nconst deployment = await client.deployments.get(\"gpt-4o\");\n```\n\n## Datasets\n\n```typescript\n\u002F\u002F Upload single file\nconst dataset = await client.datasets.uploadFile(\n  \"my-dataset\",\n  \"1.0\",\n  \".\u002Fdata\u002Ftraining.jsonl\"\n);\n\n\u002F\u002F Upload folder\nconst dataset = await client.datasets.uploadFolder(\n  \"my-dataset\",\n  \"2.0\",\n  \".\u002Fdata\u002Fdocuments\u002F\"\n);\n\n\u002F\u002F Get dataset\nconst ds = await client.datasets.get(\"my-dataset\", \"1.0\");\n\n\u002F\u002F List versions\nfor await (const version of client.datasets.listVersions(\"my-dataset\")) {\n  console.log(version);\n}\n\n\u002F\u002F Delete\nawait client.datasets.delete(\"my-dataset\", \"1.0\");\n```\n\n## Indexes\n\n```typescript\nimport { AzureAISearchIndex } from \"@azure\u002Fai-projects\";\n\nconst indexConfig: AzureAISearchIndex = {\n  name: \"my-index\",\n  type: \"AzureSearch\",\n  version: \"1\",\n  indexName: \"my-index\",\n  connectionName: \"search-connection\"\n};\n\n\u002F\u002F Create index\nconst index = await client.indexes.createOrUpdate(\"my-index\", \"1\", indexConfig);\n\n\u002F\u002F List indexes\nfor await (const idx of client.indexes.list()) {\n  console.log(idx.name);\n}\n\n\u002F\u002F Delete\nawait client.indexes.delete(\"my-index\", \"1\");\n```\n\n## Key Types\n\n```typescript\nimport {\n  AIProjectClient,\n  AIProjectClientOptionalParams,\n  Connection,\n  ModelDeployment,\n  DatasetVersionUnion,\n  AzureAISearchIndex\n} from \"@azure\u002Fai-projects\";\n```\n\n## Best Practices\n\n1. **Use getOpenAIClient()** - For responses, conversations, files, and vector stores\n2. **Version your agents** - Use `createVersion` for reproducible agent definitions\n3. **Clean up resources** - Delete agents, conversations when done\n4. **Use connections** - Get credentials from project connections, don't hardcode\n5. **Filter deployments** - Use `modelPublisher` filter to find specific models\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":33,"source":28,"date_added":40,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fazure-ai-projects-ts","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill azure-ai-projects-ts",{"tool":53,"command":54},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill azure-ai-projects-ts",{"tool":56,"command":57},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill azure-ai-projects-ts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fazure-ai-projects-ts\u002FSKILL.md",true,[],[62,85,111,121,134,153],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":73,"publishedAt":35},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[68],{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[74,75,76,77,78,79,80,81,82,83,84,30],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":35},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[92,93,94,95,96,97,76,98,99,100,101,102,103,104,105,106,107,108,109,110],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":35},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[118,119,92,103,104,105,106,96,76,108,120,109,110,102,100,99,98,107,97,95],"trend radar","radar","pulse",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":35},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[128,129,130,131,132,133],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":145,"publishedAt":35},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[136,82,146,147,148,30,103,149,150,151,94,152,107],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":35},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[155,160,161,162,107,163,150,164,165,166,167,168],"status","play","go","latest","github","discover","control","cmd","volume"]