[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JXCC2Y8T8R4WJEB584340":3,"skill-same:01M71JXCC2Y8T8R4WJEB584340":190},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":24,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":75},"01M71JXCC2Y8T8R4WJEB584340","openai-agents",null,"Build AI applications with OpenAI Agents SDK - text agents, voice agents, multi-agent handoffs, tools with Zod schemas, guardrails, and streaming. Prevents 11 documented errors.\n\nUse when: building agents with tools, voice agents with WebRTC, multi-agent workflows, or troubleshooting MaxTurnsExceededError, tool call failures, reasoning defaults, JSON output leaks.","coco-research\u002Fcoco","coco-research","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F68911604?v=4","01M71JRE9C4NM4NSZM4JD0BJTB","Coco Research","01M71JREA0ZMR0PMH3CKA99SN1",631,"MIT","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002FSKILL.md",[19],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"openai agents","openai","true","building agents","applications","tool","voice agents","Tools","multi-agent","with tools","JSON Output","text","streaming","agents sdk","when","workflows","webrtc","errors","Guardrails","zod","2026-11-10 10:12:30",false,"---\nname: openai-agents\ndescription: |\n  Build AI applications with OpenAI Agents SDK - text agents, voice agents, multi-agent handoffs, tools with Zod schemas, guardrails, and streaming. Prevents 11 documented errors.\n\n  Use when: building agents with tools, voice agents with WebRTC, multi-agent workflows, or troubleshooting MaxTurnsExceededError, tool call failures, reasoning defaults, JSON output leaks.\nuser-invocable: true\ndomain: engineering\n---\n\n# OpenAI Agents SDK\n\nBuild AI applications with text agents, voice agents (realtime), multi-agent workflows, tools, guardrails, and human-in-the-loop patterns.\n\n---\n\n## Quick Start\n\n```bash\nnpm install @openai\u002Fagents zod@4  # v0.4.0+ requires Zod 4 (breaking change)\nnpm install @openai\u002Fagents-realtime  # Voice agents\nexport OPENAI_API_KEY=\"your-key\"\n```\n\n**Breaking Change (v0.4.0)**: Zod 3 no longer supported. Upgrade to `zod@4`.\n\n**Runtimes**: Node.js 22+, Deno, Bun, Cloudflare Workers (experimental)\n\n---\n\n## Core Concepts\n\n**Agents**: LLMs with instructions + tools\n```typescript\nimport { Agent } from '@openai\u002Fagents';\nconst agent = new Agent({ name: 'Assistant', tools: [myTool], model: 'gpt-5-mini' });\n```\n\n**Tools**: Functions with Zod schemas\n```typescript\nimport { tool } from '@openai\u002Fagents';\nimport { z } from 'zod';\nconst weatherTool = tool({\n  name: 'get_weather',\n  parameters: z.object({ city: z.string() }),\n  execute: async ({ city }) => `Weather in ${city}: sunny`,\n});\n```\n\n**Handoffs**: Multi-agent delegation\n```typescript\nconst triageAgent = Agent.create({ handoffs: [specialist1, specialist2] });\n```\n\n**Guardrails**: Input\u002Foutput validation\n```typescript\nconst agent = new Agent({ inputGuardrails: [detector], outputGuardrails: [filter] });\n```\n\n**Structured Outputs**: Type-safe responses\n```typescript\nconst agent = new Agent({ outputType: z.object({ sentiment: z.enum(['positive', 'negative']) }) });\n```\n\n---\n\n## Text Agents\n\n**Basic**: `const result = await run(agent, 'What is 2+2?')`\n\n**Streaming**:\n```typescript\nconst stream = await run(agent, 'Tell me a story', { stream: true });\nfor await (const event of stream) {\n  if (event.type === 'raw_model_stream_event') process.stdout.write(event.data?.choices?.[0]?.delta?.content || '');\n}\n```\n\n---\n\n## Multi-Agent Handoffs\n\n```typescript\nconst billingAgent = new Agent({ name: 'Billing', handoffDescription: 'For billing questions', tools: [refundTool] });\nconst techAgent = new Agent({ name: 'Technical', handoffDescription: 'For tech issues', tools: [ticketTool] });\nconst triageAgent = Agent.create({ name: 'Triage', handoffs: [billingAgent, techAgent] });\n```\n\n**Agent-as-Tool Context Isolation**: When using `agent.asTool()`, sub-agents do NOT share parent conversation history (intentional design to simplify debugging).\n\n**Workaround**: Pass context via tool parameters:\n\n```typescript\nconst helperTool = tool({\n  name: 'use_helper',\n  parameters: z.object({\n    query: z.string(),\n    context: z.string().optional(),\n  }),\n  execute: async ({ query, context }) => {\n    return await run(subAgent, `${context}\\n\\n${query}`);\n  },\n});\n```\n\n**Source**: [Issue #806](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F806)\n\n---\n\n## Guardrails\n\n**Input**: Validate before processing\n```typescript\nconst guardrail: InputGuardrail = {\n  execute: async ({ input }) => ({ tripwireTriggered: detectHomework(input) })\n};\nconst agent = new Agent({ inputGuardrails: [guardrail] });\n```\n\n**Output**: Filter responses (PII detection, content safety)\n\n---\n\n## Human-in-the-Loop\n\n```typescript\nconst refundTool = tool({ name: 'process_refund', requiresApproval: true, execute: async ({ amount }) => `Refunded $${amount}` });\n\nlet result = await runner.run(input);\nwhile (result.interruption?.type === 'tool_approval') {\n  result = await promptUser(result.interruption) ? result.state.approve(result.interruption) : result.state.reject(result.interruption);\n}\n```\n\n**Streaming HITL**: When using `stream: true` with `requiresApproval`, must explicitly check interruptions:\n\n```typescript\nconst stream = await run(agent, input, { stream: true });\nlet result = await stream.finalResult();\nwhile (result.interruption?.type === 'tool_approval') {\n  const approved = await promptUser(result.interruption);\n  result = approved\n    ? await result.state.approve(result.interruption)\n    : await result.state.reject(result.interruption);\n}\n```\n\n**Example**: [human-in-the-loop-stream.ts](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fblob\u002Fmain\u002Fexamples\u002Fagent-patterns\u002Fhuman-in-the-loop-stream.ts)\n\n---\n\n## Realtime Voice Agents\n\n**Create**:\n```typescript\nimport { RealtimeAgent } from '@openai\u002Fagents-realtime';\nconst voiceAgent = new RealtimeAgent({\n  voice: 'alloy', \u002F\u002F alloy, echo, fable, onyx, nova, shimmer\n  model: 'gpt-5-realtime',\n  tools: [weatherTool],\n});\n```\n\n**Browser Session**:\n```typescript\nimport { RealtimeSession } from '@openai\u002Fagents-realtime';\nconst session = new RealtimeSession(voiceAgent, { apiKey: sessionApiKey, transport: 'webrtc' });\nawait session.connect();\n```\n\n**CRITICAL**: Never send OPENAI_API_KEY to browser! Generate ephemeral session tokens server-side.\n\n**Voice Handoffs**: Voice\u002Fmodel must match across agents (cannot change during handoff)\n\n**Limitations**:\n- **Video streaming NOT supported**: Despite camera examples, realtime video streaming is not natively supported. Model may not proactively speak based on video events. ([Issue #694](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F694))\n\n**Templates**:\n- `templates\u002Frealtime-agents\u002Frealtime-agent-basic.ts`\n- `templates\u002Frealtime-agents\u002Frealtime-session-browser.tsx`\n- `templates\u002Frealtime-agents\u002Frealtime-handoffs.ts`\n\n**References**:\n- `references\u002Frealtime-transports.md` - WebRTC vs WebSocket\n\n---\n\n## Framework Integration\n\n**Cloudflare Workers** (experimental):\n```typescript\nexport default {\n  async fetch(request: Request, env: Env) {\n    \u002F\u002F Disable tracing or use startTracingExportLoop()\n    process.env.OTEL_SDK_DISABLED = 'true';\n\n    process.env.OPENAI_API_KEY = env.OPENAI_API_KEY;\n    const agent = new Agent({ name: 'Assistant', model: 'gpt-5-mini' });\n    const result = await run(agent, (await request.json()).message);\n    return Response.json({ response: result.finalOutput, tokens: result.usage.totalTokens });\n  }\n};\n```\n**Limitations**:\n- No voice agents\n- 30s CPU limit, 128MB memory\n- **Tracing requires manual setup** - set `OTEL_SDK_DISABLED=true` or call `startTracingExportLoop()` ([Issue #16](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F16))\n\n**Next.js**: `app\u002Fapi\u002Fagent\u002Froute.ts` → `POST` handler with `run(agent, message)`\n\n**Templates**: `cloudflare-workers\u002F`, `nextjs\u002F`\n\n---\n\n## Error Handling (11+ Errors Prevented)\n\n### 1. Zod Schema Type Errors\n\n**Error**: Type errors with tool parameters.\n\n**Workaround**: Define schemas inline.\n\n```typescript\n\u002F\u002F ❌ Can cause type errors\nparameters: mySchema\n\n\u002F\u002F ✅ Works reliably\nparameters: z.object({ field: z.string() })\n```\n\n**Note**: As of v0.4.1, invalid JSON in tool call arguments is handled gracefully (previously caused SyntaxError crashes). ([PR #887](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fpull\u002F887))\n\n**Source**: [GitHub #188](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F188)\n\n### 2. MCP Tracing Errors\n\n**Error**: \"No existing trace found\" with MCP servers.\n\n**Workaround**:\n```typescript\nimport { initializeTracing } from '@openai\u002Fagents\u002Ftracing';\nawait initializeTracing();\n```\n\n**Source**: [GitHub #580](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F580)\n\n### 3. MaxTurnsExceededError\n\n**Error**: Agent loops infinitely.\n\n**Solution**: Increase maxTurns or improve instructions:\n\n```typescript\nconst result = await run(agent, input, {\n  maxTurns: 20, \u002F\u002F Increase limit\n});\n\n\u002F\u002F Or improve instructions\ninstructions: `After using tools, provide a final answer.\nDo not loop endlessly.`\n```\n\n### 4. ToolCallError\n\n**Error**: Tool execution fails.\n\n**Solution**: Retry with exponential backoff:\n\n```typescript\nfor (let attempt = 1; attempt \u003C= 3; attempt++) {\n  try {\n    return await run(agent, input);\n  } catch (error) {\n    if (error instanceof ToolCallError && attempt \u003C 3) {\n      await sleep(1000 * Math.pow(2, attempt - 1));\n      continue;\n    }\n    throw error;\n  }\n}\n```\n\n### 5. Schema Mismatch\n\n**Error**: Output doesn't match `outputType`.\n\n**Solution**: Use stronger model or add validation instructions:\n\n```typescript\nconst agent = new Agent({\n  model: 'gpt-5', \u002F\u002F More reliable than gpt-5-mini\n  instructions: 'CRITICAL: Return JSON matching schema exactly',\n  outputType: mySchema,\n});\n```\n\n### 6. Reasoning Effort Defaults Changed (v0.4.0)\n\n**Error**: Unexpected reasoning behavior after upgrading to v0.4.0.\n\n**Why It Happens**: Default reasoning effort for gpt-5.1\u002F5.2 changed from `\"low\"` to `\"none\"` in v0.4.0.\n\n**Prevention**: Explicitly set reasoning effort if you need it.\n\n```typescript\n\u002F\u002F v0.4.0+ - default is now \"none\"\nconst agent = new Agent({\n  model: 'gpt-5.1',\n  reasoning: { effort: 'low' }, \u002F\u002F Explicitly set if needed: 'low', 'medium', 'high'\n});\n```\n\n**Source**: [Release v0.4.0](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Freleases\u002Ftag\u002Fv0.4.0) | [PR #876](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fpull\u002F876)\n\n### 7. Reasoning Content Leaks into JSON Output\n\n**Error**: `response_reasoning` field appears in structured output unexpectedly.\n\n**Why It Happens**: Model endpoint issue (not SDK bug) when using `outputType` with reasoning models.\n\n**Workaround**: Filter out `response_reasoning` from output.\n\n```typescript\nconst result = await run(agent, input);\nconst { response_reasoning, ...cleanOutput } = result.finalOutput;\nreturn cleanOutput;\n```\n\n**Source**: [Issue #844](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F844)\n**Status**: Model-side issue, coordinating with OpenAI teams\n\n**All Errors**: See `references\u002Fcommon-errors.md`\n\n**Template**: `templates\u002Fshared\u002Ferror-handling.ts`\n\n---\n\n## Orchestration Patterns\n\n**LLM-Based**: Agent decides routing autonomously (adaptive, higher tokens)\n**Code-Based**: Explicit control flow with conditionals (predictable, lower cost)\n**Parallel**: `Promise.all([run(agent1, text), run(agent2, text)])` (concurrent execution)\n\n---\n\n## Debugging\n\n```typescript\nprocess.env.DEBUG = '@openai\u002Fagents:*';  \u002F\u002F Verbose logging\nconst result = await run(agent, input);\nconsole.log(result.usage.totalTokens, result.history.length, result.currentAgent?.name);\n```\n\n❌ **Don't use when**:\n- Simple OpenAI API calls (use `openai-api` skill instead)\n- Non-OpenAI models exclusively\n- Production voice at massive scale (consider LiveKit Agents)\n\n---\n\n## Production Checklist\n\n- [ ] Set `OPENAI_API_KEY` as environment secret\n- [ ] Implement error handling for all agent calls\n- [ ] Add guardrails for safety-critical applications\n- [ ] Enable tracing for debugging\n- [ ] Set reasonable `maxTurns` to prevent runaway costs\n- [ ] Use `gpt-5-mini` where possible for cost efficiency\n- [ ] Implement rate limiting\n- [ ] Log token usage for cost monitoring\n- [ ] Test handoff flows thoroughly\n- [ ] Never expose API keys to browsers (use session tokens)\n\n---\n\n## Token Efficiency\n\n**Estimated Savings**: ~60%\n\n| Task | Without Skill | With Skill | Savings |\n|------|---------------|------------|---------|\n| Multi-agent setup | ~12k tokens | ~5k tokens | 58% |\n| Voice agent | ~10k tokens | ~4k tokens | 60% |\n| Error debugging | ~8k tokens | ~3k tokens | 63% |\n| **Average** | **~10k** | **~4k** | **~60%** |\n\n**Errors Prevented**: 11 documented issues = 100% error prevention\n\n---\n\n## Templates Index\n\n**Text Agents** (8):\n1. `agent-basic.ts` - Simple agent with tools\n2. `agent-handoffs.ts` - Multi-agent triage\n3. `agent-structured-output.ts` - Zod schemas\n4. `agent-streaming.ts` - Real-time events\n5. `agent-guardrails-input.ts` - Input validation\n6. `agent-guardrails-output.ts` - Output filtering\n7. `agent-human-approval.ts` - HITL pattern\n8. `agent-parallel.ts` - Concurrent execution\n\n**Realtime Agents** (3):\n9. `realtime-agent-basic.ts` - Voice setup\n10. `realtime-session-browser.tsx` - React client\n11. `realtime-handoffs.ts` - Voice delegation\n\n**Framework Integration** (4):\n12. `worker-text-agent.ts` - Cloudflare Workers\n13. `worker-agent-hono.ts` - Hono framework\n14. `api-agent-route.ts` - Next.js API\n15. `api-realtime-route.ts` - Next.js voice\n\n**Utilities** (2):\n16. `error-handling.ts` - Comprehensive errors\n17. `tracing-setup.ts` - Debugging\n\n---\n\n## References\n\n1. `agent-patterns.md` - Orchestration strategies\n2. `common-errors.md` - 9 errors with workarounds\n3. `realtime-transports.md` - WebRTC vs WebSocket\n4. `cloudflare-integration.md` - Workers limitations\n5. `official-links.md` - Documentation links\n\n---\n\n## Official Resources\n\n- **Docs**: https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-js\u002F\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\n- **npm**: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@openai\u002Fagents\n- **Issues**: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\n\n---\n\n**Version**: SDK v0.4.1\n**Last Verified**: 2026-01-21\n**Skill Author**: Jeremy Dawes (Jezweb)\n**Production Tested**: Yes\n**Changes**: Added v0.4.0 breaking changes (Zod 4, reasoning defaults), invalid JSON handling (v0.4.1), reasoning output leaks, streaming HITL pattern, agent-as-tool context isolation, video limitations, Cloudflare tracing setup\n","# OpenAI Agents SDK\n\nBuild AI applications with text agents, voice agents (realtime), multi-agent workflows, tools, guardrails, and human-in-the-loop patterns.\n\n---\n\n## Quick Start\n\n```bash\nnpm install @openai\u002Fagents zod@4  # v0.4.0+ requires Zod 4 (breaking change)\nnpm install @openai\u002Fagents-realtime  # Voice agents\nexport OPENAI_API_KEY=\"your-key\"\n```\n\n**Breaking Change (v0.4.0)**: Zod 3 no longer supported. Upgrade to `zod@4`.\n\n**Runtimes**: Node.js 22+, Deno, Bun, Cloudflare Workers (experimental)\n\n---\n\n## Core Concepts\n\n**Agents**: LLMs with instructions + tools\n```typescript\nimport { Agent } from '@openai\u002Fagents';\nconst agent = new Agent({ name: 'Assistant', tools: [myTool], model: 'gpt-5-mini' });\n```\n\n**Tools**: Functions with Zod schemas\n```typescript\nimport { tool } from '@openai\u002Fagents';\nimport { z } from 'zod';\nconst weatherTool = tool({\n  name: 'get_weather',\n  parameters: z.object({ city: z.string() }),\n  execute: async ({ city }) => `Weather in ${city}: sunny`,\n});\n```\n\n**Handoffs**: Multi-agent delegation\n```typescript\nconst triageAgent = Agent.create({ handoffs: [specialist1, specialist2] });\n```\n\n**Guardrails**: Input\u002Foutput validation\n```typescript\nconst agent = new Agent({ inputGuardrails: [detector], outputGuardrails: [filter] });\n```\n\n**Structured Outputs**: Type-safe responses\n```typescript\nconst agent = new Agent({ outputType: z.object({ sentiment: z.enum(['positive', 'negative']) }) });\n```\n\n---\n\n## Text Agents\n\n**Basic**: `const result = await run(agent, 'What is 2+2?')`\n\n**Streaming**:\n```typescript\nconst stream = await run(agent, 'Tell me a story', { stream: true });\nfor await (const event of stream) {\n  if (event.type === 'raw_model_stream_event') process.stdout.write(event.data?.choices?.[0]?.delta?.content || '');\n}\n```\n\n---\n\n## Multi-Agent Handoffs\n\n```typescript\nconst billingAgent = new Agent({ name: 'Billing', handoffDescription: 'For billing questions', tools: [refundTool] });\nconst techAgent = new Agent({ name: 'Technical', handoffDescription: 'For tech issues', tools: [ticketTool] });\nconst triageAgent = Agent.create({ name: 'Triage', handoffs: [billingAgent, techAgent] });\n```\n\n**Agent-as-Tool Context Isolation**: When using `agent.asTool()`, sub-agents do NOT share parent conversation history (intentional design to simplify debugging).\n\n**Workaround**: Pass context via tool parameters:\n\n```typescript\nconst helperTool = tool({\n  name: 'use_helper',\n  parameters: z.object({\n    query: z.string(),\n    context: z.string().optional(),\n  }),\n  execute: async ({ query, context }) => {\n    return await run(subAgent, `${context}\\n\\n${query}`);\n  },\n});\n```\n\n**Source**: [Issue #806](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F806)\n\n---\n\n## Guardrails\n\n**Input**: Validate before processing\n```typescript\nconst guardrail: InputGuardrail = {\n  execute: async ({ input }) => ({ tripwireTriggered: detectHomework(input) })\n};\nconst agent = new Agent({ inputGuardrails: [guardrail] });\n```\n\n**Output**: Filter responses (PII detection, content safety)\n\n---\n\n## Human-in-the-Loop\n\n```typescript\nconst refundTool = tool({ name: 'process_refund', requiresApproval: true, execute: async ({ amount }) => `Refunded $${amount}` });\n\nlet result = await runner.run(input);\nwhile (result.interruption?.type === 'tool_approval') {\n  result = await promptUser(result.interruption) ? result.state.approve(result.interruption) : result.state.reject(result.interruption);\n}\n```\n\n**Streaming HITL**: When using `stream: true` with `requiresApproval`, must explicitly check interruptions:\n\n```typescript\nconst stream = await run(agent, input, { stream: true });\nlet result = await stream.finalResult();\nwhile (result.interruption?.type === 'tool_approval') {\n  const approved = await promptUser(result.interruption);\n  result = approved\n    ? await result.state.approve(result.interruption)\n    : await result.state.reject(result.interruption);\n}\n```\n\n**Example**: [human-in-the-loop-stream.ts](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fblob\u002Fmain\u002Fexamples\u002Fagent-patterns\u002Fhuman-in-the-loop-stream.ts)\n\n---\n\n## Realtime Voice Agents\n\n**Create**:\n```typescript\nimport { RealtimeAgent } from '@openai\u002Fagents-realtime';\nconst voiceAgent = new RealtimeAgent({\n  voice: 'alloy', \u002F\u002F alloy, echo, fable, onyx, nova, shimmer\n  model: 'gpt-5-realtime',\n  tools: [weatherTool],\n});\n```\n\n**Browser Session**:\n```typescript\nimport { RealtimeSession } from '@openai\u002Fagents-realtime';\nconst session = new RealtimeSession(voiceAgent, { apiKey: sessionApiKey, transport: 'webrtc' });\nawait session.connect();\n```\n\n**CRITICAL**: Never send OPENAI_API_KEY to browser! Generate ephemeral session tokens server-side.\n\n**Voice Handoffs**: Voice\u002Fmodel must match across agents (cannot change during handoff)\n\n**Limitations**:\n- **Video streaming NOT supported**: Despite camera examples, realtime video streaming is not natively supported. Model may not proactively speak based on video events. ([Issue #694](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F694))\n\n**Templates**:\n- `templates\u002Frealtime-agents\u002Frealtime-agent-basic.ts`\n- `templates\u002Frealtime-agents\u002Frealtime-session-browser.tsx`\n- `templates\u002Frealtime-agents\u002Frealtime-handoffs.ts`\n\n**References**:\n- `references\u002Frealtime-transports.md` - WebRTC vs WebSocket\n\n---\n\n## Framework Integration\n\n**Cloudflare Workers** (experimental):\n```typescript\nexport default {\n  async fetch(request: Request, env: Env) {\n    \u002F\u002F Disable tracing or use startTracingExportLoop()\n    process.env.OTEL_SDK_DISABLED = 'true';\n\n    process.env.OPENAI_API_KEY = env.OPENAI_API_KEY;\n    const agent = new Agent({ name: 'Assistant', model: 'gpt-5-mini' });\n    const result = await run(agent, (await request.json()).message);\n    return Response.json({ response: result.finalOutput, tokens: result.usage.totalTokens });\n  }\n};\n```\n**Limitations**:\n- No voice agents\n- 30s CPU limit, 128MB memory\n- **Tracing requires manual setup** - set `OTEL_SDK_DISABLED=true` or call `startTracingExportLoop()` ([Issue #16](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F16))\n\n**Next.js**: `app\u002Fapi\u002Fagent\u002Froute.ts` → `POST` handler with `run(agent, message)`\n\n**Templates**: `cloudflare-workers\u002F`, `nextjs\u002F`\n\n---\n\n## Error Handling (11+ Errors Prevented)\n\n### 1. Zod Schema Type Errors\n\n**Error**: Type errors with tool parameters.\n\n**Workaround**: Define schemas inline.\n\n```typescript\n\u002F\u002F ❌ Can cause type errors\nparameters: mySchema\n\n\u002F\u002F ✅ Works reliably\nparameters: z.object({ field: z.string() })\n```\n\n**Note**: As of v0.4.1, invalid JSON in tool call arguments is handled gracefully (previously caused SyntaxError crashes). ([PR #887](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fpull\u002F887))\n\n**Source**: [GitHub #188](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F188)\n\n### 2. MCP Tracing Errors\n\n**Error**: \"No existing trace found\" with MCP servers.\n\n**Workaround**:\n```typescript\nimport { initializeTracing } from '@openai\u002Fagents\u002Ftracing';\nawait initializeTracing();\n```\n\n**Source**: [GitHub #580](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F580)\n\n### 3. MaxTurnsExceededError\n\n**Error**: Agent loops infinitely.\n\n**Solution**: Increase maxTurns or improve instructions:\n\n```typescript\nconst result = await run(agent, input, {\n  maxTurns: 20, \u002F\u002F Increase limit\n});\n\n\u002F\u002F Or improve instructions\ninstructions: `After using tools, provide a final answer.\nDo not loop endlessly.`\n```\n\n### 4. ToolCallError\n\n**Error**: Tool execution fails.\n\n**Solution**: Retry with exponential backoff:\n\n```typescript\nfor (let attempt = 1; attempt \u003C= 3; attempt++) {\n  try {\n    return await run(agent, input);\n  } catch (error) {\n    if (error instanceof ToolCallError && attempt \u003C 3) {\n      await sleep(1000 * Math.pow(2, attempt - 1));\n      continue;\n    }\n    throw error;\n  }\n}\n```\n\n### 5. Schema Mismatch\n\n**Error**: Output doesn't match `outputType`.\n\n**Solution**: Use stronger model or add validation instructions:\n\n```typescript\nconst agent = new Agent({\n  model: 'gpt-5', \u002F\u002F More reliable than gpt-5-mini\n  instructions: 'CRITICAL: Return JSON matching schema exactly',\n  outputType: mySchema,\n});\n```\n\n### 6. Reasoning Effort Defaults Changed (v0.4.0)\n\n**Error**: Unexpected reasoning behavior after upgrading to v0.4.0.\n\n**Why It Happens**: Default reasoning effort for gpt-5.1\u002F5.2 changed from `\"low\"` to `\"none\"` in v0.4.0.\n\n**Prevention**: Explicitly set reasoning effort if you need it.\n\n```typescript\n\u002F\u002F v0.4.0+ - default is now \"none\"\nconst agent = new Agent({\n  model: 'gpt-5.1',\n  reasoning: { effort: 'low' }, \u002F\u002F Explicitly set if needed: 'low', 'medium', 'high'\n});\n```\n\n**Source**: [Release v0.4.0](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Freleases\u002Ftag\u002Fv0.4.0) | [PR #876](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fpull\u002F876)\n\n### 7. Reasoning Content Leaks into JSON Output\n\n**Error**: `response_reasoning` field appears in structured output unexpectedly.\n\n**Why It Happens**: Model endpoint issue (not SDK bug) when using `outputType` with reasoning models.\n\n**Workaround**: Filter out `response_reasoning` from output.\n\n```typescript\nconst result = await run(agent, input);\nconst { response_reasoning, ...cleanOutput } = result.finalOutput;\nreturn cleanOutput;\n```\n\n**Source**: [Issue #844](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\u002F844)\n**Status**: Model-side issue, coordinating with OpenAI teams\n\n**All Errors**: See `references\u002Fcommon-errors.md`\n\n**Template**: `templates\u002Fshared\u002Ferror-handling.ts`\n\n---\n\n## Orchestration Patterns\n\n**LLM-Based**: Agent decides routing autonomously (adaptive, higher tokens)\n**Code-Based**: Explicit control flow with conditionals (predictable, lower cost)\n**Parallel**: `Promise.all([run(agent1, text), run(agent2, text)])` (concurrent execution)\n\n---\n\n## Debugging\n\n```typescript\nprocess.env.DEBUG = '@openai\u002Fagents:*';  \u002F\u002F Verbose logging\nconst result = await run(agent, input);\nconsole.log(result.usage.totalTokens, result.history.length, result.currentAgent?.name);\n```\n\n❌ **Don't use when**:\n- Simple OpenAI API calls (use `openai-api` skill instead)\n- Non-OpenAI models exclusively\n- Production voice at massive scale (consider LiveKit Agents)\n\n---\n\n## Production Checklist\n\n- [ ] Set `OPENAI_API_KEY` as environment secret\n- [ ] Implement error handling for all agent calls\n- [ ] Add guardrails for safety-critical applications\n- [ ] Enable tracing for debugging\n- [ ] Set reasonable `maxTurns` to prevent runaway costs\n- [ ] Use `gpt-5-mini` where possible for cost efficiency\n- [ ] Implement rate limiting\n- [ ] Log token usage for cost monitoring\n- [ ] Test handoff flows thoroughly\n- [ ] Never expose API keys to browsers (use session tokens)\n\n---\n\n## Token Efficiency\n\n**Estimated Savings**: ~60%\n\n| Task | Without Skill | With Skill | Savings |\n|------|---------------|------------|---------|\n| Multi-agent setup | ~12k tokens | ~5k tokens | 58% |\n| Voice agent | ~10k tokens | ~4k tokens | 60% |\n| Error debugging | ~8k tokens | ~3k tokens | 63% |\n| **Average** | **~10k** | **~4k** | **~60%** |\n\n**Errors Prevented**: 11 documented issues = 100% error prevention\n\n---\n\n## Templates Index\n\n**Text Agents** (8):\n1. `agent-basic.ts` - Simple agent with tools\n2. `agent-handoffs.ts` - Multi-agent triage\n3. `agent-structured-output.ts` - Zod schemas\n4. `agent-streaming.ts` - Real-time events\n5. `agent-guardrails-input.ts` - Input validation\n6. `agent-guardrails-output.ts` - Output filtering\n7. `agent-human-approval.ts` - HITL pattern\n8. `agent-parallel.ts` - Concurrent execution\n\n**Realtime Agents** (3):\n9. `realtime-agent-basic.ts` - Voice setup\n10. `realtime-session-browser.tsx` - React client\n11. `realtime-handoffs.ts` - Voice delegation\n\n**Framework Integration** (4):\n12. `worker-text-agent.ts` - Cloudflare Workers\n13. `worker-agent-hono.ts` - Hono framework\n14. `api-agent-route.ts` - Next.js API\n15. `api-realtime-route.ts` - Next.js voice\n\n**Utilities** (2):\n16. `error-handling.ts` - Comprehensive errors\n17. `tracing-setup.ts` - Debugging\n\n---\n\n## References\n\n1. `agent-patterns.md` - Orchestration strategies\n2. `common-errors.md` - 9 errors with workarounds\n3. `realtime-transports.md` - WebRTC vs WebSocket\n4. `cloudflare-integration.md` - Workers limitations\n5. `official-links.md` - Documentation links\n\n---\n\n## Official Resources\n\n- **Docs**: https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-js\u002F\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\n- **npm**: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@openai\u002Fagents\n- **Issues**: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-js\u002Fissues\n\n---\n\n**Version**: SDK v0.4.1\n**Last Verified**: 2026-01-21\n**Skill Author**: Jeremy Dawes (Jezweb)\n**Production Tested**: Yes\n**Changes**: Added v0.4.0 breaking changes (Zod 4, reasoning defaults), invalid JSON handling (v0.4.1), reasoning output leaks, streaming HITL pattern, agent-as-tool context isolation, video limitations, Cloudflare tracing setup\n",{"name":5,"domain":50,"description":51,"user-invocable":52},"engineering","Build AI applications with OpenAI Agents SDK - text agents, voice agents, multi-agent handoffs, tools with Zod schemas, guardrails, and streaming. Prevents 11 documented errors.\n\nUse when: building agents with tools, voice agents with WebRTC, multi-agent workflows, or troubleshooting MaxTurnsExceededError, tool call failures, reasoning defaults, JSON output leaks.\n",true,"main","cd89f013b617f7eea982a9bbc60e992974fda2aa","skills\u002Fopenai-agents",15,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco","https:\u002F\u002Fcocoresearch.org\u002Fcoco\u002F","https:\u002F\u002Fgithub.com\u002Fcoco-research","https:\u002F\u002Fcocoresearch.org","Local-first, open-source tools for people who work with AI agents: governed memory, agents that check their own work, and data that stays on your machine.","2026-11-11 12:18:13",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":52},[65,68,71],{"tool":66,"command":67},"npx","npx skills add coco-research\u002Fcoco --skill openai-agents",{"tool":69,"command":70},"bunx","bunx skills add coco-research\u002Fcoco --skill openai-agents",{"tool":72,"command":73},"pnpm","pnpm dlx skills add coco-research\u002Fcoco --skill openai-agents","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002FSKILL.md",[76,80,86,90,94,98,102,106,112,116,120,124,128,132,136,142,146,150,154,158,162,166,170,174,178,182,186],{"path":77,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":16},"LICENSE","许可证",1078,{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fagent-patterns.md","REFERENCE","参考文档",6431,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Freferences\u002Fagent-patterns.md",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fcloudflare-integration.md",7384,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Freferences\u002Fcloudflare-integration.md",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fcommon-errors.md",9024,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Freferences\u002Fcommon-errors.md",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fofficial-links.md",5593,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Freferences\u002Fofficial-links.md",{"path":99,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Frealtime-transports.md",6129,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Freferences\u002Frealtime-transports.md",{"path":103,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":104,"sourceHtmlUrl":105},"rules\u002Fopenai-agents.md",2110,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Frules\u002Fopenai-agents.md",{"path":107,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Fcheck-versions.sh","SCRIPT","脚本",1969,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Fscripts\u002Fcheck-versions.sh",{"path":113,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":114,"sourceHtmlUrl":115},"templates\u002Fcloudflare-workers\u002Fworker-agent-hono.ts",5445,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fcloudflare-workers\u002Fworker-agent-hono.ts",{"path":117,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":118,"sourceHtmlUrl":119},"templates\u002Fcloudflare-workers\u002Fworker-text-agent.ts",5118,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fcloudflare-workers\u002Fworker-text-agent.ts",{"path":121,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":122,"sourceHtmlUrl":123},"templates\u002Fnextjs\u002Fapi-agent-route.ts",4620,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fnextjs\u002Fapi-agent-route.ts",{"path":125,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":126,"sourceHtmlUrl":127},"templates\u002Fnextjs\u002Fapi-realtime-route.ts",5029,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fnextjs\u002Fapi-realtime-route.ts",{"path":129,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":130,"sourceHtmlUrl":131},"templates\u002Frealtime-agents\u002Frealtime-agent-basic.ts",5223,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Frealtime-agents\u002Frealtime-agent-basic.ts",{"path":133,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":134,"sourceHtmlUrl":135},"templates\u002Frealtime-agents\u002Frealtime-handoffs.ts",6408,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Frealtime-agents\u002Frealtime-handoffs.ts",{"path":137,"resourceType":138,"resourceTypeDesc":139,"sizeBytes":140,"sourceHtmlUrl":141},"templates\u002Frealtime-agents\u002Frealtime-session-browser.tsx","OTHER","其他",9727,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Frealtime-agents\u002Frealtime-session-browser.tsx",{"path":143,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":144,"sourceHtmlUrl":145},"templates\u002Fshared\u002Ferror-handling.ts",4414,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fshared\u002Ferror-handling.ts",{"path":147,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":148,"sourceHtmlUrl":149},"templates\u002Fshared\u002Fpackage.json",533,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fshared\u002Fpackage.json",{"path":151,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":152,"sourceHtmlUrl":153},"templates\u002Fshared\u002Ftracing-setup.ts",4002,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fshared\u002Ftracing-setup.ts",{"path":155,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":156,"sourceHtmlUrl":157},"templates\u002Ftext-agents\u002Fagent-basic.ts",1599,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-basic.ts",{"path":159,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":160,"sourceHtmlUrl":161},"templates\u002Ftext-agents\u002Fagent-guardrails-input.ts",6204,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-guardrails-input.ts",{"path":163,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":164,"sourceHtmlUrl":165},"templates\u002Ftext-agents\u002Fagent-guardrails-output.ts",6143,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-guardrails-output.ts",{"path":167,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":168,"sourceHtmlUrl":169},"templates\u002Ftext-agents\u002Fagent-handoffs.ts",3919,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-handoffs.ts",{"path":171,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":172,"sourceHtmlUrl":173},"templates\u002Ftext-agents\u002Fagent-human-approval.ts",6568,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-human-approval.ts",{"path":175,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":176,"sourceHtmlUrl":177},"templates\u002Ftext-agents\u002Fagent-parallel.ts",8053,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-parallel.ts",{"path":179,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":180,"sourceHtmlUrl":181},"templates\u002Ftext-agents\u002Fagent-streaming.ts",5065,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-streaming.ts",{"path":183,"resourceType":108,"resourceTypeDesc":109,"sizeBytes":184,"sourceHtmlUrl":185},"templates\u002Ftext-agents\u002Fagent-structured-output.ts",4959,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Ftext-agents\u002Fagent-structured-output.ts",{"path":187,"resourceType":138,"resourceTypeDesc":139,"sizeBytes":188,"sourceHtmlUrl":189},"templates\u002Fwrangler.jsonc",778,"https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fskills\u002Fopenai-agents\u002Ftemplates\u002Fwrangler.jsonc",[191,217,227,245,280,299],{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":45},"01M71KEJXF9KMT0BWCMRSRFA4M","trading-super-intelligence","Trading Super Intelligence Team. Named real-world personas across 8 cells. Built local-first (LM Studio) and validator-gated. Illustrative composites; see DISCLAIMER.md.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Ftrading\u002FSKILL.md",[198],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216],"super","trading super intelligence","intelligence","trading","validator","personas","local","composites","studio","team","across","world","first","gated","2026","lm studio","local-first",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":224,"publishedAt":45},"01M71KEFWS3CMAP7DF1P0FWTDE","strategy-super-intelligence","Strategy Super Intelligence Team. Named real-world personas across 7 cells. Built local-first (LM Studio) and validator-gated. Illustrative composites; see DISCLAIMER.md.","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Fstrategy\u002FSKILL.md",[223],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[225,200,226,202,204,205,206,207,208,209,210,211,212,213,214,215,216],"strategy","strategy super intelligence",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":239,"publishedAt":45},"01M71KED56ZEPK2QE84QSQPMT0","risk-compliance-super-intelligence","Risk & Compliance (GRC) Super Intelligence Team. Named real-world personas across 7 cells. Built local-first (LM Studio) and validator-gated. Illustrative composites; see DISCLAIMER.md.","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Frisk-compliance\u002FSKILL.md",[233,234],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":235,"categoryName":236,"taxonomyType":237,"taxonomyTypeDesc":238},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[240,200,241,242,243,202,204,205,206,207,244,208,209,210,211,212,213,214,215,216],"risk","risk compliance super intelligence","compliance","risk compliance","grc",{"skillNo":246,"name":247,"nameZh":6,"description":248,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":249,"categories":250,"keywords":264,"publishedAt":45},"01M71KE9A2FWSC74VA96W1EZSN","product-design-super-intelligence","Your product + design brain trust and decision partner. Named personas across 8 cells spanning product strategy, discovery\u002Fresearch, growth\u002Fmetrics, design foundations\u002Fusability, design leadership\u002Fcraft, UX\u002Fcontent, design systems, and a…","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Fproduct-design\u002FSKILL.md",[251,254,257,258,261],{"categoryNo":252,"categoryName":253,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":255,"categoryName":256,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":259,"categoryName":260,"taxonomyType":237,"taxonomyTypeDesc":238},"01JBSEEDCAT000000000000031","产品经理",{"categoryNo":262,"categoryName":263,"taxonomyType":237,"taxonomyTypeDesc":238},"01JBSEEDCAT000000000000032","设计师",[265,266,202,267,200,268,269,270,271,272,273,209,210,274,275,214,276,277,278,279],"design","product","product design","product design super intelligence","foundations","product-design","decision","design systems","usability","leadership","ux","brain","craft","metrics","trust",{"skillNo":281,"name":282,"nameZh":6,"description":283,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":284,"categories":285,"keywords":288,"publishedAt":45},"01M71KE6H9FPSD9TECYFBPXZ8Y","legal-ip-super-intelligence","Your legal, IP, and regulatory brain trust. 31 named personas across 7 cells covering patent strategy, tech licensing, regulatory litigation, AI governance, open-source compliance, privacy law, and antitrust.","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Flegal-ip\u002FSKILL.md",[286,287],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":235,"categoryName":236,"taxonomyType":237,"taxonomyTypeDesc":238},[289,200,290,202,291,292,279,293,205,294,295,296,225,209,210,297,242,298,214,276],"ip","legal ip super intelligence","legal","sep","tech","litigation","ai governance","open","open-source","governance",{"skillNo":300,"name":301,"nameZh":6,"description":302,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":195,"licenseFileUrl":6,"sourceHtmlUrl":303,"categories":304,"keywords":306,"publishedAt":45},"01M71KE36QRY610V6YVB9JWRND","healthcare-life-sciences-super-intelligence","Your healthcare and life sciences brain trust. 25 named personas across 7 cells covering drug discovery, medtech, biotech strategy, health policy, genomics, clinical trials, and healthcare economics.","https:\u002F\u002Fgithub.com\u002Fcoco-research\u002Fcoco\u002Fblob\u002Fmain\u002Fsystems\u002Fsuperintelligence\u002Fhealthcare-life-sciences\u002FSKILL.md",[305],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},[307,200,308,309,202,292,279,310,311,205,312,313,225,209,210,314,315,316,317,214],"healthcare","healthcare life sciences super intelligence","life","economics","discovery","policy","clinical","clinical trials","health","trials","genomics"]