[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EKT1CGCMEZ6JEMKMMWFVCW":3,"skill-same:01M6EKT1CGCMEZ6JEMKMMWFVCW":123},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6EKT1CGCMEZ6JEMKMMWFVCW","ai-native-development",null,"Build AI-first applications with RAG pipelines, embeddings, vector databases, agentic workflows, and LLM integration. Master prompt engineering, function calling, streaming responses, and cost optimization for 2025+ AI development.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ai native development","native","ai native","development","Optimization","2025","vector databases","master","databases","langchain","vector-database","agentic","embeddings","streaming","vector","database","rag","agentic workflows","workflows","ai agent","2026-11-10 10:12:30",false,"---\nname: ai-native-development\ndescription: Build AI-first applications with RAG pipelines, embeddings, vector databases, agentic workflows, and LLM integration. Master prompt engineering, function calling, streaming responses, and cost optimization for 2025+ AI development.\nversion: 1.0.0\nauthor: AI Agent Hub\ntags: [ai, llm, rag, embeddings, vector-database, agents, langchain, 2025]\n---\n\n# AI-Native Development\n\n## Overview\n\nAI-Native Development focuses on building applications where AI is a first-class citizen, not an afterthought. This skill provides comprehensive patterns for integrating LLMs, implementing RAG (Retrieval-Augmented Generation), using vector databases, building agentic workflows, and optimizing AI application performance and cost.\n\n**When to use this skill:**\n- Building chatbots, Q&A systems, or conversational interfaces\n- Implementing semantic search or recommendation engines\n- Creating AI agents that can use tools and take actions\n- Integrating LLMs (OpenAI, Anthropic, open-source models) into applications\n- Building RAG systems for knowledge retrieval\n- Optimizing AI costs and latency\n- Implementing AI observability and monitoring\n\n---\n\n## Why AI-Native Development Matters\n\nTraditional software is deterministic; AI-native applications are probabilistic:\n\n- **Context is Everything**: LLMs need relevant context to provide accurate answers\n- **RAG Over Fine-Tuning**: Retrieval is cheaper and more flexible than fine-tuning\n- **Embeddings Enable Semantic Search**: Move beyond keyword matching to understanding meaning\n- **Agentic Workflows**: LLMs can reason, plan, and use tools autonomously\n- **Cost Management**: Token usage directly impacts operational costs\n- **Observability**: Debugging probabilistic systems requires new approaches\n- **Prompt Engineering**: How you ask matters as much as what you ask\n\n---\n\n## Core Concepts\n\n### 1. Embeddings & Vector Search\n\nEmbeddings are vector representations of text that capture semantic meaning. Similar concepts have similar vectors.\n\n**Key Capabilities:**\n- Convert text to high-dimensional vectors (1536 or 3072 dimensions)\n- Measure semantic similarity using cosine similarity\n- Find relevant documents through vector search\n- Batch process for efficiency\n\n**Detailed Implementation:** See `references\u002Fvector-databases.md` for:\n- OpenAI embeddings setup and batch processing\n- Cosine similarity algorithms\n- Chunking strategies (500-1000 tokens with 10-20% overlap)\n\n### 2. Vector Databases\n\nStore and retrieve embeddings efficiently at scale.\n\n**Popular Options:**\n- **Pinecone**: Serverless, managed service ($0.096\u002Fhour)\n- **Chroma**: Open source, self-hosted\n- **Weaviate**: Flexible schema, hybrid search\n- **Qdrant**: Rust-based, high performance\n\n**Detailed Implementation:** See `references\u002Fvector-databases.md` for:\n- Complete setup guides for each database\n- Upsert, query, update, delete operations\n- Metadata filtering and hybrid search\n- Cost comparison and best practices\n\n### 3. RAG (Retrieval-Augmented Generation)\n\nRAG combines retrieval systems with LLMs to provide accurate, grounded answers.\n\n**Core Pattern:**\n1. Retrieve relevant documents from vector database\n2. Construct context from top results\n3. Generate answer with LLM using retrieved context\n\n**Advanced Patterns:**\n- RAG with citations and source tracking\n- Hybrid search (semantic + keyword)\n- Multi-query RAG for better recall\n- HyDE (Hypothetical Document Embeddings)\n- Contextual compression for relevance\n\n**Detailed Implementation:** See `references\u002Frag-patterns.md` for:\n- Basic and advanced RAG patterns with full code\n- Citation strategies\n- Hybrid search with Reciprocal Rank Fusion\n- Conversation memory patterns\n- Error handling and validation\n\n### 4. Function Calling & Tool Use\n\nEnable LLMs to use external tools and APIs reliably.\n\n**Capabilities:**\n- Define tools with JSON schemas\n- Execute functions based on LLM decisions\n- Handle parallel tool calls\n- Stream responses with tool use\n\n**Detailed Implementation:** See `references\u002Ffunction-calling.md` for:\n- Tool definition patterns (OpenAI and Anthropic)\n- Function calling loops\n- Parallel and streaming tool execution\n- Input validation with Zod\n- Error handling and fallback strategies\n\n### 5. Agentic Workflows\n\nEnable LLMs to reason, plan, and take autonomous actions.\n\n**Patterns:**\n- **ReAct**: Reasoning + Acting loop with observations\n- **Tree of Thoughts**: Explore multiple reasoning paths\n- **Multi-Agent**: Specialized agents collaborating on complex tasks\n- **Autonomous Agents**: Self-directed goal achievement\n\n**Detailed Implementation:** See `references\u002Fagentic-workflows.md` for:\n- Complete ReAct loop implementation\n- Tree of Thoughts exploration\n- Multi-agent coordinator patterns\n- Agent memory management\n- Error recovery and safety guards\n\n### 5.1 Multi-Agent Orchestration (Opus 4.5)\n\nAdvanced multi-agent patterns leveraging Opus 4.5's extended thinking capabilities.\n\n**When to Use Extended Thinking:**\n- Coordinating 3+ specialized agents\n- Complex dependency resolution between agent outputs\n- Dynamic task allocation based on agent capabilities\n- Conflict resolution when agents produce contradictory results\n\n**Orchestrator Pattern:**\n```typescript\ninterface AgentTask {\n  id: string;\n  type: 'research' | 'code' | 'review' | 'design';\n  input: unknown;\n  dependencies: string[]; \u002F\u002F Task IDs that must complete first\n}\n\ninterface AgentResult {\n  taskId: string;\n  output: unknown;\n  confidence: number;\n  reasoning: string;\n}\n\nasync function orchestrateAgents(\n  goal: string,\n  availableAgents: Agent[]\n): Promise\u003CAgentResult[]> {\n  \u002F\u002F Step 1: Use extended thinking to decompose goal into tasks\n  const taskPlan = await planTasks(goal, availableAgents);\n\n  \u002F\u002F Step 2: Build dependency graph\n  const dependencyGraph = buildDependencyGraph(taskPlan.tasks);\n\n  \u002F\u002F Step 3: Execute tasks respecting dependencies\n  const results: AgentResult[] = [];\n  const completed = new Set\u003Cstring>();\n\n  while (completed.size \u003C taskPlan.tasks.length) {\n    \u002F\u002F Find tasks with satisfied dependencies\n    const ready = taskPlan.tasks.filter(task =>\n      !completed.has(task.id) &&\n      task.dependencies.every(dep => completed.has(dep))\n    );\n\n    \u002F\u002F Execute ready tasks in parallel\n    const batchResults = await Promise.all(\n      ready.map(task => executeAgentTask(task, availableAgents))\n    );\n\n    \u002F\u002F Validate results - use extended thinking for conflicts\n    const validatedResults = await validateAndResolveConflicts(\n      batchResults,\n      results\n    );\n\n    results.push(...validatedResults);\n    ready.forEach(task => completed.add(task.id));\n  }\n\n  return results;\n}\n```\n\n**Task Planning with Extended Thinking:**\n\nBased on [Anthropic's Extended Thinking documentation](https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fextended-thinking):\n\n```typescript\nimport Anthropic from '@anthropic-ai\u002Fsdk';\n\nconst anthropic = new Anthropic();\n\nasync function planTasks(\n  goal: string,\n  agents: Agent[]\n): Promise\u003C{ tasks: AgentTask[]; rationale: string }> {\n  \u002F\u002F Extended thinking requires budget_tokens \u003C max_tokens\n  \u002F\u002F Minimum budget: 1,024 tokens\n  const response = await anthropic.messages.create({\n    model: 'claude-opus-4-5-20251101', \u002F\u002F Or claude-sonnet-4-5-20250929\n    max_tokens: 16000,\n    thinking: {\n      type: 'enabled',\n      budget_tokens: 10000 \u002F\u002F Extended thinking for complex planning\n    },\n    messages: [{\n      role: 'user',\n      content: `\n        Goal: ${goal}\n\n        Available agents and their capabilities:\n        ${agents.map(a => `- ${a.name}: ${a.capabilities.join(', ')}`).join('\\n')}\n\n        Decompose this goal into tasks. For each task, specify:\n        1. Which agent should handle it\n        2. What input it needs\n        3. Which other tasks it depends on\n        4. Expected output format\n\n        Think carefully about:\n        - Optimal parallelization opportunities\n        - Potential conflicts between agent outputs\n        - Information that needs to flow between tasks\n      `\n    }]\n  });\n\n  \u002F\u002F Response contains thinking blocks followed by text blocks\n  \u002F\u002F content: [{ type: 'thinking', thinking: '...' }, { type: 'text', text: '...' }]\n  return parseTaskPlan(response);\n}\n```\n\n**Conflict Resolution:**\n```typescript\nasync function validateAndResolveConflicts(\n  newResults: AgentResult[],\n  existingResults: AgentResult[]\n): Promise\u003CAgentResult[]> {\n  \u002F\u002F Check for conflicts with existing results\n  const conflicts = detectConflicts(newResults, existingResults);\n\n  if (conflicts.length === 0) {\n    return newResults;\n  }\n\n  \u002F\u002F Use extended thinking to resolve conflicts\n  const resolution = await anthropic.messages.create({\n    model: 'claude-opus-4-5-20251101',\n    max_tokens: 8000,\n    thinking: {\n      type: 'enabled',\n      budget_tokens: 5000\n    },\n    messages: [{\n      role: 'user',\n      content: `\n        The following agent outputs conflict:\n\n        ${conflicts.map(c => `\n          Conflict: ${c.description}\n          Agent A (${c.agentA.name}): ${JSON.stringify(c.resultA)}\n          Agent B (${c.agentB.name}): ${JSON.stringify(c.resultB)}\n        `).join('\\n\\n')}\n\n        Analyze each conflict and determine:\n        1. Which output is more likely correct and why\n        2. If both have merit, how to synthesize them\n        3. What additional verification might be needed\n      `\n    }]\n  });\n\n  return applyResolutions(newResults, resolution);\n}\n```\n\n**Adaptive Agent Selection:**\n```typescript\nasync function selectOptimalAgent(\n  task: AgentTask,\n  agents: Agent[],\n  context: ExecutionContext\n): Promise\u003CAgent> {\n  \u002F\u002F Score each agent based on:\n  \u002F\u002F - Capability match\n  \u002F\u002F - Current load\n  \u002F\u002F - Historical performance on similar tasks\n  \u002F\u002F - Cost (model tier)\n\n  const scores = agents.map(agent => ({\n    agent,\n    score: calculateAgentScore(agent, task, context)\n  }));\n\n  \u002F\u002F For complex tasks, use Opus; for simple tasks, use Haiku\n  const complexity = assessTaskComplexity(task);\n\n  if (complexity > 0.7) {\n    \u002F\u002F Filter to agents that can use Opus\n    const opusCapable = scores.filter(s => s.agent.supportsOpus);\n    return opusCapable.sort((a, b) => b.score - a.score)[0].agent;\n  }\n\n  return scores.sort((a, b) => b.score - a.score)[0].agent;\n}\n```\n\n**Agent Communication Protocol:**\n```typescript\ninterface AgentMessage {\n  from: string;\n  to: string | 'broadcast';\n  type: 'request' | 'response' | 'update' | 'conflict';\n  payload: unknown;\n  timestamp: Date;\n}\n\nclass AgentCommunicationBus {\n  private messages: AgentMessage[] = [];\n  private subscribers: Map\u003Cstring, (msg: AgentMessage) => void> = new Map();\n\n  send(message: AgentMessage): void {\n    this.messages.push(message);\n\n    if (message.to === 'broadcast') {\n      this.subscribers.forEach(callback => callback(message));\n    } else {\n      this.subscribers.get(message.to)?.(message);\n    }\n  }\n\n  subscribe(agentId: string, callback: (msg: AgentMessage) => void): void {\n    this.subscribers.set(agentId, callback);\n  }\n\n  getHistory(agentId: string): AgentMessage[] {\n    return this.messages.filter(\n      m => m.from === agentId || m.to === agentId || m.to === 'broadcast'\n    );\n  }\n}\n```\n\n### 6. Streaming Responses\n\nDeliver real-time AI responses for better UX.\n\n**Capabilities:**\n- Stream LLM output token-by-token\n- Server-Sent Events (SSE) for web clients\n- Streaming with function calls\n- Backpressure handling\n\n**Detailed Implementation:** See `..\u002Fstreaming-api-patterns\u002FSKILL.md` for streaming patterns\n\n### 7. Cost Optimization\n\n**Strategies:**\n- Use smaller models for simple tasks (GPT-3.5 vs GPT-4)\n- Implement prompt caching (Anthropic's ephemeral cache)\n- Batch requests when possible\n- Set max_tokens to prevent runaway generation\n- Monitor usage with alerts\n\n**Token Counting:**\n```typescript\nimport { encoding_for_model } from 'tiktoken'\n\nfunction countTokens(text: string, model = 'gpt-4'): number {\n  const encoder = encoding_for_model(model)\n  const tokens = encoder.encode(text)\n  encoder.free()\n  return tokens.length\n}\n```\n\n**Detailed Implementation:** See `references\u002Fobservability.md` for:\n- Cost estimation and budget tracking\n- Model selection strategies\n- Prompt caching patterns\n\n### 8. Observability & Monitoring\n\nTrack LLM performance, costs, and quality in production.\n\n**Tools:**\n- **LangSmith**: Tracing, evaluation, monitoring\n- **LangFuse**: Open-source observability\n- **Custom Logging**: Structured logs with metrics\n\n**Key Metrics:**\n- Throughput (requests\u002Fminute)\n- Latency (P50, P95, P99)\n- Token usage and cost\n- Error rate\n- Quality scores (relevance, coherence, factuality)\n\n**Detailed Implementation:** See `references\u002Fobservability.md` for:\n- LangSmith and LangFuse integration\n- Custom logger implementation\n- Performance monitoring\n- Quality evaluation\n- Debugging and error analysis\n\n---\n\n## Searching References\n\nThis skill includes detailed reference material. Use grep to find specific patterns:\n\n```bash\n# Find RAG patterns\ngrep -r \"RAG\" references\u002F\n\n# Search for specific vector database\ngrep -A 10 \"Pinecone Setup\" references\u002Fvector-databases.md\n\n# Find agentic workflow examples\ngrep -B 5 \"ReAct Pattern\" references\u002Fagentic-workflows.md\n\n# Locate function calling patterns\ngrep -n \"parallel.*tool\" references\u002Ffunction-calling.md\n\n# Search for cost optimization\ngrep -i \"cost\\|pricing\\|budget\" references\u002Fobservability.md\n\n# Find all code examples for embeddings\ngrep -A 20 \"async function.*embedding\" references\u002F\n```\n\n---\n\n## Best Practices\n\n### Context Management\n- ✅ Keep context windows under 75% of model limit\n- ✅ Use sliding window for long conversations\n- ✅ Summarize old messages before they scroll out\n- ✅ Remove redundant or irrelevant context\n\n### Embedding Strategy\n- ✅ Chunk documents to 500-1000 tokens\n- ✅ Overlap chunks by 10-20% for continuity\n- ✅ Include metadata (title, source, date) with chunks\n- ✅ Re-embed when source data changes\n\n### RAG Quality\n- ✅ Use hybrid search (semantic + keyword)\n- ✅ Re-rank results for relevance\n- ✅ Include citation\u002Fsource in context\n- ✅ Set temperature low (0.1-0.3) for factual answers\n- ✅ Validate answers against retrieved context\n\n### Function Calling\n- ✅ Provide clear, concise function descriptions\n- ✅ Use strict JSON schema for parameters\n- ✅ Handle missing or invalid parameters gracefully\n- ✅ Limit to 10-20 tools to avoid confusion\n- ✅ Validate function outputs before returning to LLM\n\n### Cost Optimization\n- ✅ Use smaller models for simple tasks\n- ✅ Implement prompt caching for repeated content\n- ✅ Batch requests when possible\n- ✅ Set max_tokens to prevent runaway generation\n- ✅ Monitor usage with alerts for anomalies\n\n### Security\n- ✅ Validate and sanitize user inputs\n- ✅ Never include secrets in prompts\n- ✅ Implement rate limiting\n- ✅ Filter outputs for harmful content\n- ✅ Use separate API keys per environment\n\n---\n\n## Templates\n\nUse the provided templates for common AI patterns:\n\n- **`templates\u002Frag-pipeline.ts`** - Basic RAG implementation\n- **`templates\u002Fagentic-workflow.ts`** - ReAct agent pattern\n\n---\n\n## Examples\n\n### Complete RAG Chatbot\n\nSee `examples\u002Fchatbot-with-rag\u002F` for a full-stack implementation:\n- Vector database setup with document ingestion\n- RAG query with citations\n- Streaming chat interface\n- Cost tracking and monitoring\n\n---\n\n## Checklists\n\n### AI Implementation Checklist\n\nSee `checklists\u002Fai-implementation.md` for comprehensive validation covering:\n- [ ] Vector database setup and configuration\n- [ ] Embedding generation and chunking strategy\n- [ ] RAG pipeline with quality validation\n- [ ] Function calling with error handling\n- [ ] Streaming response implementation\n- [ ] Cost monitoring and budget alerts\n- [ ] Observability and logging\n- [ ] Security and input validation\n\n---\n\n## Common Patterns\n\n### Semantic Caching\n\nReduce costs by caching similar queries:\n\n```typescript\nconst cache = new Map\u003Cstring, { embedding: number[]; response: string }>()\n\nasync function cachedRAG(query: string) {\n  const queryEmbedding = await createEmbedding(query)\n\n  \u002F\u002F Check if similar query exists in cache\n  for (const [cachedQuery, cached] of cache.entries()) {\n    const similarity = cosineSimilarity(queryEmbedding, cached.embedding)\n    if (similarity > 0.95) {\n      return cached.response\n    }\n  }\n\n  \u002F\u002F Not cached, perform RAG\n  const response = await ragQuery(query)\n  cache.set(query, { embedding: queryEmbedding, response })\n  return response\n}\n```\n\n### Conversational Memory\n\nMaintain context across multiple turns:\n\n```typescript\ninterface ConversationMemory {\n  messages: Message[] \u002F\u002F Last 10 messages\n  summary?: string \u002F\u002F Summary of older messages\n}\n\nasync function getConversationContext(userId: string): Promise\u003CMessage[]> {\n  const memory = await db.memory.findUnique({ where: { userId } })\n\n  return [\n    { role: 'system', content: `Previous conversation summary: ${memory.summary}` },\n    ...memory.messages.slice(-5) \u002F\u002F Last 5 messages\n  ]\n}\n```\n\n---\n\n## Prompt Engineering\n\n### Few-Shot Learning\n\nProvide examples to guide LLM behavior:\n\n```typescript\nconst fewShotExamples = `\nExample 1:\nInput: \"I love this product!\"\nSentiment: Positive\n\nExample 2:\nInput: \"It's okay, nothing special\"\nSentiment: Neutral\n`\n\n\u002F\u002F Include in system prompt\n```\n\n### Chain of Thought (CoT)\n\nAsk LLM to show reasoning:\n\n```typescript\nconst prompt = `${problem}\\n\\nLet's think step by step:`\n```\n\n---\n\n## Resources\n\n- [OpenAI API Documentation](https:\u002F\u002Fplatform.openai.com\u002Fdocs)\n- [Anthropic Claude API](https:\u002F\u002Fdocs.anthropic.com)\n- [LangChain Documentation](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002F)\n- [Pinecone Documentation](https:\u002F\u002Fdocs.pinecone.io\u002F)\n- [Chroma Documentation](https:\u002F\u002Fdocs.trychroma.com\u002F)\n- [LangSmith Observability](https:\u002F\u002Fdocs.smith.langchain.com\u002F)\n\n---\n\n## Next Steps\n\nAfter mastering AI-Native Development:\n1. Explore **Streaming API Patterns** skill for real-time AI responses\n2. Use **Type Safety & Validation** skill for AI input\u002Foutput validation\n3. Apply **Edge Computing Patterns** skill for global AI deployment\n4. Reference **Observability Patterns** for production monitoring\n","# AI-Native Development\n\n## Overview\n\nAI-Native Development focuses on building applications where AI is a first-class citizen, not an afterthought. This skill provides comprehensive patterns for integrating LLMs, implementing RAG (Retrieval-Augmented Generation), using vector databases, building agentic workflows, and optimizing AI application performance and cost.\n\n**When to use this skill:**\n- Building chatbots, Q&A systems, or conversational interfaces\n- Implementing semantic search or recommendation engines\n- Creating AI agents that can use tools and take actions\n- Integrating LLMs (OpenAI, Anthropic, open-source models) into applications\n- Building RAG systems for knowledge retrieval\n- Optimizing AI costs and latency\n- Implementing AI observability and monitoring\n\n---\n\n## Why AI-Native Development Matters\n\nTraditional software is deterministic; AI-native applications are probabilistic:\n\n- **Context is Everything**: LLMs need relevant context to provide accurate answers\n- **RAG Over Fine-Tuning**: Retrieval is cheaper and more flexible than fine-tuning\n- **Embeddings Enable Semantic Search**: Move beyond keyword matching to understanding meaning\n- **Agentic Workflows**: LLMs can reason, plan, and use tools autonomously\n- **Cost Management**: Token usage directly impacts operational costs\n- **Observability**: Debugging probabilistic systems requires new approaches\n- **Prompt Engineering**: How you ask matters as much as what you ask\n\n---\n\n## Core Concepts\n\n### 1. Embeddings & Vector Search\n\nEmbeddings are vector representations of text that capture semantic meaning. Similar concepts have similar vectors.\n\n**Key Capabilities:**\n- Convert text to high-dimensional vectors (1536 or 3072 dimensions)\n- Measure semantic similarity using cosine similarity\n- Find relevant documents through vector search\n- Batch process for efficiency\n\n**Detailed Implementation:** See `references\u002Fvector-databases.md` for:\n- OpenAI embeddings setup and batch processing\n- Cosine similarity algorithms\n- Chunking strategies (500-1000 tokens with 10-20% overlap)\n\n### 2. Vector Databases\n\nStore and retrieve embeddings efficiently at scale.\n\n**Popular Options:**\n- **Pinecone**: Serverless, managed service ($0.096\u002Fhour)\n- **Chroma**: Open source, self-hosted\n- **Weaviate**: Flexible schema, hybrid search\n- **Qdrant**: Rust-based, high performance\n\n**Detailed Implementation:** See `references\u002Fvector-databases.md` for:\n- Complete setup guides for each database\n- Upsert, query, update, delete operations\n- Metadata filtering and hybrid search\n- Cost comparison and best practices\n\n### 3. RAG (Retrieval-Augmented Generation)\n\nRAG combines retrieval systems with LLMs to provide accurate, grounded answers.\n\n**Core Pattern:**\n1. Retrieve relevant documents from vector database\n2. Construct context from top results\n3. Generate answer with LLM using retrieved context\n\n**Advanced Patterns:**\n- RAG with citations and source tracking\n- Hybrid search (semantic + keyword)\n- Multi-query RAG for better recall\n- HyDE (Hypothetical Document Embeddings)\n- Contextual compression for relevance\n\n**Detailed Implementation:** See `references\u002Frag-patterns.md` for:\n- Basic and advanced RAG patterns with full code\n- Citation strategies\n- Hybrid search with Reciprocal Rank Fusion\n- Conversation memory patterns\n- Error handling and validation\n\n### 4. Function Calling & Tool Use\n\nEnable LLMs to use external tools and APIs reliably.\n\n**Capabilities:**\n- Define tools with JSON schemas\n- Execute functions based on LLM decisions\n- Handle parallel tool calls\n- Stream responses with tool use\n\n**Detailed Implementation:** See `references\u002Ffunction-calling.md` for:\n- Tool definition patterns (OpenAI and Anthropic)\n- Function calling loops\n- Parallel and streaming tool execution\n- Input validation with Zod\n- Error handling and fallback strategies\n\n### 5. Agentic Workflows\n\nEnable LLMs to reason, plan, and take autonomous actions.\n\n**Patterns:**\n- **ReAct**: Reasoning + Acting loop with observations\n- **Tree of Thoughts**: Explore multiple reasoning paths\n- **Multi-Agent**: Specialized agents collaborating on complex tasks\n- **Autonomous Agents**: Self-directed goal achievement\n\n**Detailed Implementation:** See `references\u002Fagentic-workflows.md` for:\n- Complete ReAct loop implementation\n- Tree of Thoughts exploration\n- Multi-agent coordinator patterns\n- Agent memory management\n- Error recovery and safety guards\n\n### 5.1 Multi-Agent Orchestration (Opus 4.5)\n\nAdvanced multi-agent patterns leveraging Opus 4.5's extended thinking capabilities.\n\n**When to Use Extended Thinking:**\n- Coordinating 3+ specialized agents\n- Complex dependency resolution between agent outputs\n- Dynamic task allocation based on agent capabilities\n- Conflict resolution when agents produce contradictory results\n\n**Orchestrator Pattern:**\n```typescript\ninterface AgentTask {\n  id: string;\n  type: 'research' | 'code' | 'review' | 'design';\n  input: unknown;\n  dependencies: string[]; \u002F\u002F Task IDs that must complete first\n}\n\ninterface AgentResult {\n  taskId: string;\n  output: unknown;\n  confidence: number;\n  reasoning: string;\n}\n\nasync function orchestrateAgents(\n  goal: string,\n  availableAgents: Agent[]\n): Promise\u003CAgentResult[]> {\n  \u002F\u002F Step 1: Use extended thinking to decompose goal into tasks\n  const taskPlan = await planTasks(goal, availableAgents);\n\n  \u002F\u002F Step 2: Build dependency graph\n  const dependencyGraph = buildDependencyGraph(taskPlan.tasks);\n\n  \u002F\u002F Step 3: Execute tasks respecting dependencies\n  const results: AgentResult[] = [];\n  const completed = new Set\u003Cstring>();\n\n  while (completed.size \u003C taskPlan.tasks.length) {\n    \u002F\u002F Find tasks with satisfied dependencies\n    const ready = taskPlan.tasks.filter(task =>\n      !completed.has(task.id) &&\n      task.dependencies.every(dep => completed.has(dep))\n    );\n\n    \u002F\u002F Execute ready tasks in parallel\n    const batchResults = await Promise.all(\n      ready.map(task => executeAgentTask(task, availableAgents))\n    );\n\n    \u002F\u002F Validate results - use extended thinking for conflicts\n    const validatedResults = await validateAndResolveConflicts(\n      batchResults,\n      results\n    );\n\n    results.push(...validatedResults);\n    ready.forEach(task => completed.add(task.id));\n  }\n\n  return results;\n}\n```\n\n**Task Planning with Extended Thinking:**\n\nBased on [Anthropic's Extended Thinking documentation](https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fextended-thinking):\n\n```typescript\nimport Anthropic from '@anthropic-ai\u002Fsdk';\n\nconst anthropic = new Anthropic();\n\nasync function planTasks(\n  goal: string,\n  agents: Agent[]\n): Promise\u003C{ tasks: AgentTask[]; rationale: string }> {\n  \u002F\u002F Extended thinking requires budget_tokens \u003C max_tokens\n  \u002F\u002F Minimum budget: 1,024 tokens\n  const response = await anthropic.messages.create({\n    model: 'claude-opus-4-5-20251101', \u002F\u002F Or claude-sonnet-4-5-20250929\n    max_tokens: 16000,\n    thinking: {\n      type: 'enabled',\n      budget_tokens: 10000 \u002F\u002F Extended thinking for complex planning\n    },\n    messages: [{\n      role: 'user',\n      content: `\n        Goal: ${goal}\n\n        Available agents and their capabilities:\n        ${agents.map(a => `- ${a.name}: ${a.capabilities.join(', ')}`).join('\\n')}\n\n        Decompose this goal into tasks. For each task, specify:\n        1. Which agent should handle it\n        2. What input it needs\n        3. Which other tasks it depends on\n        4. Expected output format\n\n        Think carefully about:\n        - Optimal parallelization opportunities\n        - Potential conflicts between agent outputs\n        - Information that needs to flow between tasks\n      `\n    }]\n  });\n\n  \u002F\u002F Response contains thinking blocks followed by text blocks\n  \u002F\u002F content: [{ type: 'thinking', thinking: '...' }, { type: 'text', text: '...' }]\n  return parseTaskPlan(response);\n}\n```\n\n**Conflict Resolution:**\n```typescript\nasync function validateAndResolveConflicts(\n  newResults: AgentResult[],\n  existingResults: AgentResult[]\n): Promise\u003CAgentResult[]> {\n  \u002F\u002F Check for conflicts with existing results\n  const conflicts = detectConflicts(newResults, existingResults);\n\n  if (conflicts.length === 0) {\n    return newResults;\n  }\n\n  \u002F\u002F Use extended thinking to resolve conflicts\n  const resolution = await anthropic.messages.create({\n    model: 'claude-opus-4-5-20251101',\n    max_tokens: 8000,\n    thinking: {\n      type: 'enabled',\n      budget_tokens: 5000\n    },\n    messages: [{\n      role: 'user',\n      content: `\n        The following agent outputs conflict:\n\n        ${conflicts.map(c => `\n          Conflict: ${c.description}\n          Agent A (${c.agentA.name}): ${JSON.stringify(c.resultA)}\n          Agent B (${c.agentB.name}): ${JSON.stringify(c.resultB)}\n        `).join('\\n\\n')}\n\n        Analyze each conflict and determine:\n        1. Which output is more likely correct and why\n        2. If both have merit, how to synthesize them\n        3. What additional verification might be needed\n      `\n    }]\n  });\n\n  return applyResolutions(newResults, resolution);\n}\n```\n\n**Adaptive Agent Selection:**\n```typescript\nasync function selectOptimalAgent(\n  task: AgentTask,\n  agents: Agent[],\n  context: ExecutionContext\n): Promise\u003CAgent> {\n  \u002F\u002F Score each agent based on:\n  \u002F\u002F - Capability match\n  \u002F\u002F - Current load\n  \u002F\u002F - Historical performance on similar tasks\n  \u002F\u002F - Cost (model tier)\n\n  const scores = agents.map(agent => ({\n    agent,\n    score: calculateAgentScore(agent, task, context)\n  }));\n\n  \u002F\u002F For complex tasks, use Opus; for simple tasks, use Haiku\n  const complexity = assessTaskComplexity(task);\n\n  if (complexity > 0.7) {\n    \u002F\u002F Filter to agents that can use Opus\n    const opusCapable = scores.filter(s => s.agent.supportsOpus);\n    return opusCapable.sort((a, b) => b.score - a.score)[0].agent;\n  }\n\n  return scores.sort((a, b) => b.score - a.score)[0].agent;\n}\n```\n\n**Agent Communication Protocol:**\n```typescript\ninterface AgentMessage {\n  from: string;\n  to: string | 'broadcast';\n  type: 'request' | 'response' | 'update' | 'conflict';\n  payload: unknown;\n  timestamp: Date;\n}\n\nclass AgentCommunicationBus {\n  private messages: AgentMessage[] = [];\n  private subscribers: Map\u003Cstring, (msg: AgentMessage) => void> = new Map();\n\n  send(message: AgentMessage): void {\n    this.messages.push(message);\n\n    if (message.to === 'broadcast') {\n      this.subscribers.forEach(callback => callback(message));\n    } else {\n      this.subscribers.get(message.to)?.(message);\n    }\n  }\n\n  subscribe(agentId: string, callback: (msg: AgentMessage) => void): void {\n    this.subscribers.set(agentId, callback);\n  }\n\n  getHistory(agentId: string): AgentMessage[] {\n    return this.messages.filter(\n      m => m.from === agentId || m.to === agentId || m.to === 'broadcast'\n    );\n  }\n}\n```\n\n### 6. Streaming Responses\n\nDeliver real-time AI responses for better UX.\n\n**Capabilities:**\n- Stream LLM output token-by-token\n- Server-Sent Events (SSE) for web clients\n- Streaming with function calls\n- Backpressure handling\n\n**Detailed Implementation:** See `..\u002Fstreaming-api-patterns\u002FSKILL.md` for streaming patterns\n\n### 7. Cost Optimization\n\n**Strategies:**\n- Use smaller models for simple tasks (GPT-3.5 vs GPT-4)\n- Implement prompt caching (Anthropic's ephemeral cache)\n- Batch requests when possible\n- Set max_tokens to prevent runaway generation\n- Monitor usage with alerts\n\n**Token Counting:**\n```typescript\nimport { encoding_for_model } from 'tiktoken'\n\nfunction countTokens(text: string, model = 'gpt-4'): number {\n  const encoder = encoding_for_model(model)\n  const tokens = encoder.encode(text)\n  encoder.free()\n  return tokens.length\n}\n```\n\n**Detailed Implementation:** See `references\u002Fobservability.md` for:\n- Cost estimation and budget tracking\n- Model selection strategies\n- Prompt caching patterns\n\n### 8. Observability & Monitoring\n\nTrack LLM performance, costs, and quality in production.\n\n**Tools:**\n- **LangSmith**: Tracing, evaluation, monitoring\n- **LangFuse**: Open-source observability\n- **Custom Logging**: Structured logs with metrics\n\n**Key Metrics:**\n- Throughput (requests\u002Fminute)\n- Latency (P50, P95, P99)\n- Token usage and cost\n- Error rate\n- Quality scores (relevance, coherence, factuality)\n\n**Detailed Implementation:** See `references\u002Fobservability.md` for:\n- LangSmith and LangFuse integration\n- Custom logger implementation\n- Performance monitoring\n- Quality evaluation\n- Debugging and error analysis\n\n---\n\n## Searching References\n\nThis skill includes detailed reference material. Use grep to find specific patterns:\n\n```bash\n# Find RAG patterns\ngrep -r \"RAG\" references\u002F\n\n# Search for specific vector database\ngrep -A 10 \"Pinecone Setup\" references\u002Fvector-databases.md\n\n# Find agentic workflow examples\ngrep -B 5 \"ReAct Pattern\" references\u002Fagentic-workflows.md\n\n# Locate function calling patterns\ngrep -n \"parallel.*tool\" references\u002Ffunction-calling.md\n\n# Search for cost optimization\ngrep -i \"cost\\|pricing\\|budget\" references\u002Fobservability.md\n\n# Find all code examples for embeddings\ngrep -A 20 \"async function.*embedding\" references\u002F\n```\n\n---\n\n## Best Practices\n\n### Context Management\n- ✅ Keep context windows under 75% of model limit\n- ✅ Use sliding window for long conversations\n- ✅ Summarize old messages before they scroll out\n- ✅ Remove redundant or irrelevant context\n\n### Embedding Strategy\n- ✅ Chunk documents to 500-1000 tokens\n- ✅ Overlap chunks by 10-20% for continuity\n- ✅ Include metadata (title, source, date) with chunks\n- ✅ Re-embed when source data changes\n\n### RAG Quality\n- ✅ Use hybrid search (semantic + keyword)\n- ✅ Re-rank results for relevance\n- ✅ Include citation\u002Fsource in context\n- ✅ Set temperature low (0.1-0.3) for factual answers\n- ✅ Validate answers against retrieved context\n\n### Function Calling\n- ✅ Provide clear, concise function descriptions\n- ✅ Use strict JSON schema for parameters\n- ✅ Handle missing or invalid parameters gracefully\n- ✅ Limit to 10-20 tools to avoid confusion\n- ✅ Validate function outputs before returning to LLM\n\n### Cost Optimization\n- ✅ Use smaller models for simple tasks\n- ✅ Implement prompt caching for repeated content\n- ✅ Batch requests when possible\n- ✅ Set max_tokens to prevent runaway generation\n- ✅ Monitor usage with alerts for anomalies\n\n### Security\n- ✅ Validate and sanitize user inputs\n- ✅ Never include secrets in prompts\n- ✅ Implement rate limiting\n- ✅ Filter outputs for harmful content\n- ✅ Use separate API keys per environment\n\n---\n\n## Templates\n\nUse the provided templates for common AI patterns:\n\n- **`templates\u002Frag-pipeline.ts`** - Basic RAG implementation\n- **`templates\u002Fagentic-workflow.ts`** - ReAct agent pattern\n\n---\n\n## Examples\n\n### Complete RAG Chatbot\n\nSee `examples\u002Fchatbot-with-rag\u002F` for a full-stack implementation:\n- Vector database setup with document ingestion\n- RAG query with citations\n- Streaming chat interface\n- Cost tracking and monitoring\n\n---\n\n## Checklists\n\n### AI Implementation Checklist\n\nSee `checklists\u002Fai-implementation.md` for comprehensive validation covering:\n- [ ] Vector database setup and configuration\n- [ ] Embedding generation and chunking strategy\n- [ ] RAG pipeline with quality validation\n- [ ] Function calling with error handling\n- [ ] Streaming response implementation\n- [ ] Cost monitoring and budget alerts\n- [ ] Observability and logging\n- [ ] Security and input validation\n\n---\n\n## Common Patterns\n\n### Semantic Caching\n\nReduce costs by caching similar queries:\n\n```typescript\nconst cache = new Map\u003Cstring, { embedding: number[]; response: string }>()\n\nasync function cachedRAG(query: string) {\n  const queryEmbedding = await createEmbedding(query)\n\n  \u002F\u002F Check if similar query exists in cache\n  for (const [cachedQuery, cached] of cache.entries()) {\n    const similarity = cosineSimilarity(queryEmbedding, cached.embedding)\n    if (similarity > 0.95) {\n      return cached.response\n    }\n  }\n\n  \u002F\u002F Not cached, perform RAG\n  const response = await ragQuery(query)\n  cache.set(query, { embedding: queryEmbedding, response })\n  return response\n}\n```\n\n### Conversational Memory\n\nMaintain context across multiple turns:\n\n```typescript\ninterface ConversationMemory {\n  messages: Message[] \u002F\u002F Last 10 messages\n  summary?: string \u002F\u002F Summary of older messages\n}\n\nasync function getConversationContext(userId: string): Promise\u003CMessage[]> {\n  const memory = await db.memory.findUnique({ where: { userId } })\n\n  return [\n    { role: 'system', content: `Previous conversation summary: ${memory.summary}` },\n    ...memory.messages.slice(-5) \u002F\u002F Last 5 messages\n  ]\n}\n```\n\n---\n\n## Prompt Engineering\n\n### Few-Shot Learning\n\nProvide examples to guide LLM behavior:\n\n```typescript\nconst fewShotExamples = `\nExample 1:\nInput: \"I love this product!\"\nSentiment: Positive\n\nExample 2:\nInput: \"It's okay, nothing special\"\nSentiment: Neutral\n`\n\n\u002F\u002F Include in system prompt\n```\n\n### Chain of Thought (CoT)\n\nAsk LLM to show reasoning:\n\n```typescript\nconst prompt = `${problem}\\n\\nLet's think step by step:`\n```\n\n---\n\n## Resources\n\n- [OpenAI API Documentation](https:\u002F\u002Fplatform.openai.com\u002Fdocs)\n- [Anthropic Claude API](https:\u002F\u002Fdocs.anthropic.com)\n- [LangChain Documentation](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002F)\n- [Pinecone Documentation](https:\u002F\u002Fdocs.pinecone.io\u002F)\n- [Chroma Documentation](https:\u002F\u002Fdocs.trychroma.com\u002F)\n- [LangSmith Observability](https:\u002F\u002Fdocs.smith.langchain.com\u002F)\n\n---\n\n## Next Steps\n\nAfter mastering AI-Native Development:\n1. Explore **Streaming API Patterns** skill for real-time AI responses\n2. Use **Type Safety & Validation** skill for AI input\u002Foutput validation\n3. Apply **Edge Computing Patterns** skill for global AI deployment\n4. Reference **Observability Patterns** for production monitoring\n",{"name":5,"tags":49,"author":54,"version":55,"description":7},[50,51,40,36,34,52,33,53],"ai","llm","agents",2025,"AI Agent Hub","1.0.0","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill ai-native-development",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill ai-native-development",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill ai-native-development","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002FSKILL.md",true,[79,85,91,95,99,103,107,111,115,119],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"checklists\u002Fai-implementation-checklist.md","REFERENCE","参考文档",8297,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Fchecklists\u002Fai-implementation-checklist.md",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"examples\u002Fchatbot-with-rag-example.ts","SCRIPT","脚本",1875,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Fexamples\u002Fchatbot-with-rag-example.ts",{"path":92,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fagentic-workflows.md",14021,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Freferences\u002Fagentic-workflows.md",{"path":96,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Ffunction-calling.md",13627,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Freferences\u002Ffunction-calling.md",{"path":100,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fobservability.md",13435,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Freferences\u002Fobservability.md",{"path":104,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Frag-patterns.md",12461,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Freferences\u002Frag-patterns.md",{"path":108,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fvector-databases.md",9896,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Freferences\u002Fvector-databases.md",{"path":112,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":113,"sourceHtmlUrl":114},"skill-report.json",10902,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Fskill-report.json",{"path":116,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":117,"sourceHtmlUrl":118},"templates\u002Fagent-workflow-template.ts",11244,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Ftemplates\u002Fagent-workflow-template.ts",{"path":120,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":121,"sourceHtmlUrl":122},"templates\u002Frag-pipeline-template.ts",8985,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fariegoldkin\u002Fai-native-development\u002Ftemplates\u002Frag-pipeline-template.ts",[124,134,144,153,159,166],{"skillNo":125,"name":126,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[129],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[131,132,133],"model","model hierarchy","model hierarchy skill",{"skillNo":135,"name":136,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[139],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[141,142,143],"MCP","zoom","zoom mcp",{"skillNo":145,"name":146,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[150,151,152,142],"sdk","zoom apps sdk","apps",{"skillNo":154,"name":155,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[155],{"skillNo":160,"name":161,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[164],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[161],{"skillNo":167,"name":168,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[168]]