[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EB0958NVC3ERB63YN660WD":3,"skill-same:01M6EB0958NVC3ERB63YN660WD":182},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":6,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":70,"updatedAt":71,"install":72,"resources":85},"01M6EB0958NVC3ERB63YN660WD","llamaindex",null,"Data framework for building LLM applications with RAG. Specializes in document ingestion (300+ connectors), indexing, and querying. Features vector indices, query engines, agents, and multi-modal support. Use for document Q&A, chatbots, knowledge retrieval, or building RAG pipelines. Best for data-centric LLM applications.","luokai0\u002Fai-agent-skills-by-luo-kai","luokai0","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F266954973?v=4","01M6E16VNT42JB8B3X3254QWJ7","luo kai","01M6E16VTFVP6S5XJF1V1MPV90",14,"MIT","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"LlamaIndex","query","Private Data","Data Framework","Knowledge Retrieval","Query Engines","Vector Indices","Document Ingestion","LLM Applications","indexing","support","ingestion","knowledge","applications","data","multimodal","vector","framework","openai","rag","2026-11-10 10:12:30",false,"---\nname: llamaindex\ndescription: Data framework for building LLM applications with RAG. Specializes in document ingestion (300+ connectors), indexing, and querying. Features vector indices, query engines, agents, and multi-modal support. Use for document Q&A, chatbots, knowledge retrieval, or building RAG pipelines. Best for data-centric LLM applications.\nversion: 1.0.0\nauthor: luo-kai\nlicense: MIT\ntags: [Agents, LlamaIndex, RAG, Document Ingestion, Vector Indices, Query Engines, Knowledge Retrieval, Data Framework, Multimodal, Private Data, Connectors]\ndependencies: [llama-index, openai, anthropic]\n---\n\n# LlamaIndex - Data Framework for LLM Applications\n\nThe leading framework for connecting LLMs with your data.\n\n## When to use LlamaIndex\n\n**Use LlamaIndex when:**\n- Building RAG (retrieval-augmented generation) applications\n- Need document question-answering over private data\n- Ingesting data from multiple sources (300+ connectors)\n- Creating knowledge bases for LLMs\n- Building chatbots with enterprise data\n- Need structured data extraction from documents\n\n**Metrics**:\n- **45,100+ GitHub stars**\n- **23,000+ repositories** use LlamaIndex\n- **300+ data connectors** (LlamaHub)\n- **1,715+ contributors**\n- **v0.14.7** (stable)\n\n**Use alternatives instead**:\n- **LangChain**: More general-purpose, better for agents\n- **Haystack**: Production search pipelines\n- **txtai**: Lightweight semantic search\n- **Chroma**: Just need vector storage\n\n## Quick start\n\n### Installation\n\n```bash\n# Starter package (recommended)\npip install llama-index\n\n# Or minimal core + specific integrations\npip install llama-index-core\npip install llama-index-llms-openai\npip install llama-index-embeddings-openai\n```\n\n### 5-line RAG example\n\n```python\nfrom llama_index.core import VectorStoreIndex, SimpleDirectoryReader\n\n# Load documents\ndocuments = SimpleDirectoryReader(\"data\").load_data()\n\n# Create index\nindex = VectorStoreIndex.from_documents(documents)\n\n# Query\nquery_engine = index.as_query_engine()\nresponse = query_engine.query(\"What did the author do growing up?\")\nprint(response)\n```\n\n## Core concepts\n\n### 1. Data connectors - Load documents\n\n```python\nfrom llama_index.core import SimpleDirectoryReader, Document\nfrom llama_index.readers.web import SimpleWebPageReader\nfrom llama_index.readers.github import GithubRepositoryReader\n\n# Directory of files\ndocuments = SimpleDirectoryReader(\".\u002Fdata\").load_data()\n\n# Web pages\nreader = SimpleWebPageReader()\ndocuments = reader.load_data([\"https:\u002F\u002Fexample.com\"])\n\n# GitHub repository\nreader = GithubRepositoryReader(owner=\"user\", repo=\"repo\")\ndocuments = reader.load_data(branch=\"main\")\n\n# Manual document creation\ndoc = Document(\n    text=\"This is the document content\",\n    metadata={\"source\": \"manual\", \"date\": \"2025-01-01\"}\n)\n```\n\n### 2. Indices - Structure data\n\n```python\nfrom llama_index.core import VectorStoreIndex, ListIndex, TreeIndex\n\n# Vector index (most common - semantic search)\nvector_index = VectorStoreIndex.from_documents(documents)\n\n# List index (sequential scan)\nlist_index = ListIndex.from_documents(documents)\n\n# Tree index (hierarchical summary)\ntree_index = TreeIndex.from_documents(documents)\n\n# Save index\nindex.storage_context.persist(persist_dir=\".\u002Fstorage\")\n\n# Load index\nfrom llama_index.core import load_index_from_storage, StorageContext\nstorage_context = StorageContext.from_defaults(persist_dir=\".\u002Fstorage\")\nindex = load_index_from_storage(storage_context)\n```\n\n### 3. Query engines - Ask questions\n\n```python\n# Basic query\nquery_engine = index.as_query_engine()\nresponse = query_engine.query(\"What is the main topic?\")\nprint(response)\n\n# Streaming response\nquery_engine = index.as_query_engine(streaming=True)\nresponse = query_engine.query(\"Explain quantum computing\")\nfor text in response.response_gen:\n    print(text, end=\"\", flush=True)\n\n# Custom configuration\nquery_engine = index.as_query_engine(\n    similarity_top_k=3,          # Return top 3 chunks\n    response_mode=\"compact\",     # Or \"tree_summarize\", \"simple_summarize\"\n    verbose=True\n)\n```\n\n### 4. Retrievers - Find relevant chunks\n\n```python\n# Vector retriever\nretriever = index.as_retriever(similarity_top_k=5)\nnodes = retriever.retrieve(\"machine learning\")\n\n# With filtering\nretriever = index.as_retriever(\n    similarity_top_k=3,\n    filters={\"metadata.category\": \"tutorial\"}\n)\n\n# Custom retriever\nfrom llama_index.core.retrievers import BaseRetriever\n\nclass CustomRetriever(BaseRetriever):\n    def _retrieve(self, query_bundle):\n        # Your custom retrieval logic\n        return nodes\n```\n\n## Agents with tools\n\n### Basic agent\n\n```python\nfrom llama_index.core.agent import FunctionAgent\nfrom llama_index.llms.openai import OpenAI\n\n# Define tools\ndef multiply(a: int, b: int) -> int:\n    \"\"\"Multiply two numbers.\"\"\"\n    return a * b\n\ndef add(a: int, b: int) -> int:\n    \"\"\"Add two numbers.\"\"\"\n    return a + b\n\n# Create agent\nllm = OpenAI(model=\"gpt-4o\")\nagent = FunctionAgent.from_tools(\n    tools=[multiply, add],\n    llm=llm,\n    verbose=True\n)\n\n# Use agent\nresponse = agent.chat(\"What is 25 * 17 + 142?\")\nprint(response)\n```\n\n### RAG agent (document search + tools)\n\n```python\nfrom llama_index.core.tools import QueryEngineTool\n\n# Create index as before\nindex = VectorStoreIndex.from_documents(documents)\n\n# Wrap query engine as tool\nquery_tool = QueryEngineTool.from_defaults(\n    query_engine=index.as_query_engine(),\n    name=\"python_docs\",\n    description=\"Useful for answering questions about Python programming\"\n)\n\n# Agent with document search + calculator\nagent = FunctionAgent.from_tools(\n    tools=[query_tool, multiply, add],\n    llm=llm\n)\n\n# Agent decides when to search docs vs calculate\nresponse = agent.chat(\"According to the docs, what is Python used for?\")\n```\n\n## Advanced RAG patterns\n\n### Chat engine (conversational)\n\n```python\nfrom llama_index.core.chat_engine import CondensePlusContextChatEngine\n\n# Chat with memory\nchat_engine = index.as_chat_engine(\n    chat_mode=\"condense_plus_context\",  # Or \"context\", \"react\"\n    verbose=True\n)\n\n# Multi-turn conversation\nresponse1 = chat_engine.chat(\"What is Python?\")\nresponse2 = chat_engine.chat(\"Can you give examples?\")  # Remembers context\nresponse3 = chat_engine.chat(\"What about web frameworks?\")\n```\n\n### Metadata filtering\n\n```python\nfrom llama_index.core.vector_stores import MetadataFilters, ExactMatchFilter\n\n# Filter by metadata\nfilters = MetadataFilters(\n    filters=[\n        ExactMatchFilter(key=\"category\", value=\"tutorial\"),\n        ExactMatchFilter(key=\"difficulty\", value=\"beginner\")\n    ]\n)\n\nretriever = index.as_retriever(\n    similarity_top_k=3,\n    filters=filters\n)\n\nquery_engine = index.as_query_engine(filters=filters)\n```\n\n### Structured output\n\n```python\nfrom pydantic import BaseModel\nfrom llama_index.core.output_parsers import PydanticOutputParser\n\nclass Summary(BaseModel):\n    title: str\n    main_points: list[str]\n    conclusion: str\n\n# Get structured response\noutput_parser = PydanticOutputParser(output_cls=Summary)\nquery_engine = index.as_query_engine(output_parser=output_parser)\n\nresponse = query_engine.query(\"Summarize the document\")\nsummary = response  # Pydantic model\nprint(summary.title, summary.main_points)\n```\n\n## Data ingestion patterns\n\n### Multiple file types\n\n```python\n# Load all supported formats\ndocuments = SimpleDirectoryReader(\n    \".\u002Fdata\",\n    recursive=True,\n    required_exts=[\".pdf\", \".docx\", \".txt\", \".md\"]\n).load_data()\n```\n\n### Web scraping\n\n```python\nfrom llama_index.readers.web import BeautifulSoupWebReader\n\nreader = BeautifulSoupWebReader()\ndocuments = reader.load_data(urls=[\n    \"https:\u002F\u002Fdocs.python.org\u002F3\u002Ftutorial\u002F\",\n    \"https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002F\"\n])\n```\n\n### Database\n\n```python\nfrom llama_index.readers.database import DatabaseReader\n\nreader = DatabaseReader(\n    sql_database_uri=\"postgresql:\u002F\u002Fuser:pass@localhost\u002Fdb\"\n)\ndocuments = reader.load_data(query=\"SELECT * FROM articles\")\n```\n\n### API endpoints\n\n```python\nfrom llama_index.readers.json import JSONReader\n\nreader = JSONReader()\ndocuments = reader.load_data(\"https:\u002F\u002Fapi.example.com\u002Fdata.json\")\n```\n\n## Vector store integrations\n\n### Chroma (local)\n\n```python\nfrom llama_index.vector_stores.chroma import ChromaVectorStore\nimport chromadb\n\n# Initialize Chroma\ndb = chromadb.PersistentClient(path=\".\u002Fchroma_db\")\ncollection = db.get_or_create_collection(\"my_collection\")\n\n# Create vector store\nvector_store = ChromaVectorStore(chroma_collection=collection)\n\n# Use in index\nfrom llama_index.core import StorageContext\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n### Pinecone (cloud)\n\n```python\nfrom llama_index.vector_stores.pinecone import PineconeVectorStore\nimport pinecone\n\n# Initialize Pinecone\npinecone.init(api_key=\"your-key\", environment=\"us-west1-gcp\")\npinecone_index = pinecone.Index(\"my-index\")\n\n# Create vector store\nvector_store = PineconeVectorStore(pinecone_index=pinecone_index)\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\n\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n### FAISS (fast)\n\n```python\nfrom llama_index.vector_stores.faiss import FaissVectorStore\nimport faiss\n\n# Create FAISS index\nd = 1536  # Dimension of embeddings\nfaiss_index = faiss.IndexFlatL2(d)\n\nvector_store = FaissVectorStore(faiss_index=faiss_index)\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\n\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n## Customization\n\n### Custom LLM\n\n```python\nfrom llama_index.llms.anthropic import Anthropic\nfrom llama_index.core import Settings\n\n# Set global LLM\nSettings.llm = Anthropic(model=\"claude-sonnet-4-5-20250929\")\n\n# Now all queries use Anthropic\nquery_engine = index.as_query_engine()\n```\n\n### Custom embeddings\n\n```python\nfrom llama_index.embeddings.huggingface import HuggingFaceEmbedding\n\n# Use HuggingFace embeddings\nSettings.embed_model = HuggingFaceEmbedding(\n    model_name=\"sentence-transformers\u002Fall-mpnet-base-v2\"\n)\n\nindex = VectorStoreIndex.from_documents(documents)\n```\n\n### Custom prompt templates\n\n```python\nfrom llama_index.core import PromptTemplate\n\nqa_prompt = PromptTemplate(\n    \"Context: {context_str}\\n\"\n    \"Question: {query_str}\\n\"\n    \"Answer the question based only on the context. \"\n    \"If the answer is not in the context, say 'I don't know'.\\n\"\n    \"Answer: \"\n)\n\nquery_engine = index.as_query_engine(text_qa_template=qa_prompt)\n```\n\n## Multi-modal RAG\n\n### Image + text\n\n```python\nfrom llama_index.core import SimpleDirectoryReader\nfrom llama_index.multi_modal_llms.openai import OpenAIMultiModal\n\n# Load images and documents\ndocuments = SimpleDirectoryReader(\n    \".\u002Fdata\",\n    required_exts=[\".jpg\", \".png\", \".pdf\"]\n).load_data()\n\n# Multi-modal index\nindex = VectorStoreIndex.from_documents(documents)\n\n# Query with multi-modal LLM\nmulti_modal_llm = OpenAIMultiModal(model=\"gpt-4o\")\nquery_engine = index.as_query_engine(llm=multi_modal_llm)\n\nresponse = query_engine.query(\"What is in the diagram on page 3?\")\n```\n\n## Evaluation\n\n### Response quality\n\n```python\nfrom llama_index.core.evaluation import RelevancyEvaluator, FaithfulnessEvaluator\n\n# Evaluate relevance\nrelevancy = RelevancyEvaluator()\nresult = relevancy.evaluate_response(\n    query=\"What is Python?\",\n    response=response\n)\nprint(f\"Relevancy: {result.passing}\")\n\n# Evaluate faithfulness (no hallucination)\nfaithfulness = FaithfulnessEvaluator()\nresult = faithfulness.evaluate_response(\n    query=\"What is Python?\",\n    response=response\n)\nprint(f\"Faithfulness: {result.passing}\")\n```\n\n## Best practices\n\n1. **Use vector indices for most cases** - Best performance\n2. **Save indices to disk** - Avoid re-indexing\n3. **Chunk documents properly** - 512-1024 tokens optimal\n4. **Add metadata** - Enables filtering and tracking\n5. **Use streaming** - Better UX for long responses\n6. **Enable verbose during dev** - See retrieval process\n7. **Evaluate responses** - Check relevance and faithfulness\n8. **Use chat engine for conversations** - Built-in memory\n9. **Persist storage** - Don't lose your index\n10. **Monitor costs** - Track embedding and LLM usage\n\n## Common patterns\n\n### Document Q&A system\n\n```python\n# Complete RAG pipeline\ndocuments = SimpleDirectoryReader(\"docs\").load_data()\nindex = VectorStoreIndex.from_documents(documents)\nindex.storage_context.persist(persist_dir=\".\u002Fstorage\")\n\n# Query\nquery_engine = index.as_query_engine(\n    similarity_top_k=3,\n    response_mode=\"compact\",\n    verbose=True\n)\nresponse = query_engine.query(\"What is the main topic?\")\nprint(response)\nprint(f\"Sources: {[node.metadata['file_name'] for node in response.source_nodes]}\")\n```\n\n### Chatbot with memory\n\n```python\n# Conversational interface\nchat_engine = index.as_chat_engine(\n    chat_mode=\"condense_plus_context\",\n    verbose=True\n)\n\n# Multi-turn chat\nwhile True:\n    user_input = input(\"You: \")\n    if user_input.lower() == \"quit\":\n        break\n    response = chat_engine.chat(user_input)\n    print(f\"Bot: {response}\")\n```\n\n## Performance benchmarks\n\n| Operation | Latency | Notes |\n|-----------|---------|-------|\n| Index 100 docs | ~10-30s | One-time, can persist |\n| Query (vector) | ~0.5-2s | Retrieval + LLM |\n| Streaming query | ~0.5s first token | Better UX |\n| Agent with tools | ~3-8s | Multiple tool calls |\n\n## LlamaIndex vs LangChain\n\n| Feature | LlamaIndex | LangChain |\n|---------|------------|-----------|\n| **Best for** | RAG, document Q&A | Agents, general LLM apps |\n| **Data connectors** | 300+ (LlamaHub) | 100+ |\n| **RAG focus** | Core feature | One of many |\n| **Learning curve** | Easier for RAG | Steeper |\n| **Customization** | High | Very high |\n| **Documentation** | Excellent | Good |\n\n**Use LlamaIndex when:**\n- Your primary use case is RAG\n- Need many data connectors\n- Want simpler API for document Q&A\n- Building knowledge retrieval system\n\n**Use LangChain when:**\n- Building complex agents\n- Need more general-purpose tools\n- Want more flexibility\n- Complex multi-step workflows\n\n## References\n\n- **[Query Engines Guide](references\u002Fquery_engines.md)** - Query modes, customization, streaming\n- **[Agents Guide](references\u002Fagents.md)** - Tool creation, RAG agents, multi-step reasoning\n- **[Data Connectors Guide](references\u002Fdata_connectors.md)** - 300+ connectors, custom loaders\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Frun-llama\u002Fllama_index ⭐ 45,100+\n- **Docs**: https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fframework\u002F\n- **LlamaHub**: https:\u002F\u002Fllamahub.ai (data connectors)\n- **LlamaCloud**: https:\u002F\u002Fcloud.llamaindex.ai (enterprise)\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002FdGcwcsnxhU\n- **Version**: 0.14.7+\n- **License**: MIT\n\n\n","# LlamaIndex - Data Framework for LLM Applications\n\nThe leading framework for connecting LLMs with your data.\n\n## When to use LlamaIndex\n\n**Use LlamaIndex when:**\n- Building RAG (retrieval-augmented generation) applications\n- Need document question-answering over private data\n- Ingesting data from multiple sources (300+ connectors)\n- Creating knowledge bases for LLMs\n- Building chatbots with enterprise data\n- Need structured data extraction from documents\n\n**Metrics**:\n- **45,100+ GitHub stars**\n- **23,000+ repositories** use LlamaIndex\n- **300+ data connectors** (LlamaHub)\n- **1,715+ contributors**\n- **v0.14.7** (stable)\n\n**Use alternatives instead**:\n- **LangChain**: More general-purpose, better for agents\n- **Haystack**: Production search pipelines\n- **txtai**: Lightweight semantic search\n- **Chroma**: Just need vector storage\n\n## Quick start\n\n### Installation\n\n```bash\n# Starter package (recommended)\npip install llama-index\n\n# Or minimal core + specific integrations\npip install llama-index-core\npip install llama-index-llms-openai\npip install llama-index-embeddings-openai\n```\n\n### 5-line RAG example\n\n```python\nfrom llama_index.core import VectorStoreIndex, SimpleDirectoryReader\n\n# Load documents\ndocuments = SimpleDirectoryReader(\"data\").load_data()\n\n# Create index\nindex = VectorStoreIndex.from_documents(documents)\n\n# Query\nquery_engine = index.as_query_engine()\nresponse = query_engine.query(\"What did the author do growing up?\")\nprint(response)\n```\n\n## Core concepts\n\n### 1. Data connectors - Load documents\n\n```python\nfrom llama_index.core import SimpleDirectoryReader, Document\nfrom llama_index.readers.web import SimpleWebPageReader\nfrom llama_index.readers.github import GithubRepositoryReader\n\n# Directory of files\ndocuments = SimpleDirectoryReader(\".\u002Fdata\").load_data()\n\n# Web pages\nreader = SimpleWebPageReader()\ndocuments = reader.load_data([\"https:\u002F\u002Fexample.com\"])\n\n# GitHub repository\nreader = GithubRepositoryReader(owner=\"user\", repo=\"repo\")\ndocuments = reader.load_data(branch=\"main\")\n\n# Manual document creation\ndoc = Document(\n    text=\"This is the document content\",\n    metadata={\"source\": \"manual\", \"date\": \"2025-01-01\"}\n)\n```\n\n### 2. Indices - Structure data\n\n```python\nfrom llama_index.core import VectorStoreIndex, ListIndex, TreeIndex\n\n# Vector index (most common - semantic search)\nvector_index = VectorStoreIndex.from_documents(documents)\n\n# List index (sequential scan)\nlist_index = ListIndex.from_documents(documents)\n\n# Tree index (hierarchical summary)\ntree_index = TreeIndex.from_documents(documents)\n\n# Save index\nindex.storage_context.persist(persist_dir=\".\u002Fstorage\")\n\n# Load index\nfrom llama_index.core import load_index_from_storage, StorageContext\nstorage_context = StorageContext.from_defaults(persist_dir=\".\u002Fstorage\")\nindex = load_index_from_storage(storage_context)\n```\n\n### 3. Query engines - Ask questions\n\n```python\n# Basic query\nquery_engine = index.as_query_engine()\nresponse = query_engine.query(\"What is the main topic?\")\nprint(response)\n\n# Streaming response\nquery_engine = index.as_query_engine(streaming=True)\nresponse = query_engine.query(\"Explain quantum computing\")\nfor text in response.response_gen:\n    print(text, end=\"\", flush=True)\n\n# Custom configuration\nquery_engine = index.as_query_engine(\n    similarity_top_k=3,          # Return top 3 chunks\n    response_mode=\"compact\",     # Or \"tree_summarize\", \"simple_summarize\"\n    verbose=True\n)\n```\n\n### 4. Retrievers - Find relevant chunks\n\n```python\n# Vector retriever\nretriever = index.as_retriever(similarity_top_k=5)\nnodes = retriever.retrieve(\"machine learning\")\n\n# With filtering\nretriever = index.as_retriever(\n    similarity_top_k=3,\n    filters={\"metadata.category\": \"tutorial\"}\n)\n\n# Custom retriever\nfrom llama_index.core.retrievers import BaseRetriever\n\nclass CustomRetriever(BaseRetriever):\n    def _retrieve(self, query_bundle):\n        # Your custom retrieval logic\n        return nodes\n```\n\n## Agents with tools\n\n### Basic agent\n\n```python\nfrom llama_index.core.agent import FunctionAgent\nfrom llama_index.llms.openai import OpenAI\n\n# Define tools\ndef multiply(a: int, b: int) -> int:\n    \"\"\"Multiply two numbers.\"\"\"\n    return a * b\n\ndef add(a: int, b: int) -> int:\n    \"\"\"Add two numbers.\"\"\"\n    return a + b\n\n# Create agent\nllm = OpenAI(model=\"gpt-4o\")\nagent = FunctionAgent.from_tools(\n    tools=[multiply, add],\n    llm=llm,\n    verbose=True\n)\n\n# Use agent\nresponse = agent.chat(\"What is 25 * 17 + 142?\")\nprint(response)\n```\n\n### RAG agent (document search + tools)\n\n```python\nfrom llama_index.core.tools import QueryEngineTool\n\n# Create index as before\nindex = VectorStoreIndex.from_documents(documents)\n\n# Wrap query engine as tool\nquery_tool = QueryEngineTool.from_defaults(\n    query_engine=index.as_query_engine(),\n    name=\"python_docs\",\n    description=\"Useful for answering questions about Python programming\"\n)\n\n# Agent with document search + calculator\nagent = FunctionAgent.from_tools(\n    tools=[query_tool, multiply, add],\n    llm=llm\n)\n\n# Agent decides when to search docs vs calculate\nresponse = agent.chat(\"According to the docs, what is Python used for?\")\n```\n\n## Advanced RAG patterns\n\n### Chat engine (conversational)\n\n```python\nfrom llama_index.core.chat_engine import CondensePlusContextChatEngine\n\n# Chat with memory\nchat_engine = index.as_chat_engine(\n    chat_mode=\"condense_plus_context\",  # Or \"context\", \"react\"\n    verbose=True\n)\n\n# Multi-turn conversation\nresponse1 = chat_engine.chat(\"What is Python?\")\nresponse2 = chat_engine.chat(\"Can you give examples?\")  # Remembers context\nresponse3 = chat_engine.chat(\"What about web frameworks?\")\n```\n\n### Metadata filtering\n\n```python\nfrom llama_index.core.vector_stores import MetadataFilters, ExactMatchFilter\n\n# Filter by metadata\nfilters = MetadataFilters(\n    filters=[\n        ExactMatchFilter(key=\"category\", value=\"tutorial\"),\n        ExactMatchFilter(key=\"difficulty\", value=\"beginner\")\n    ]\n)\n\nretriever = index.as_retriever(\n    similarity_top_k=3,\n    filters=filters\n)\n\nquery_engine = index.as_query_engine(filters=filters)\n```\n\n### Structured output\n\n```python\nfrom pydantic import BaseModel\nfrom llama_index.core.output_parsers import PydanticOutputParser\n\nclass Summary(BaseModel):\n    title: str\n    main_points: list[str]\n    conclusion: str\n\n# Get structured response\noutput_parser = PydanticOutputParser(output_cls=Summary)\nquery_engine = index.as_query_engine(output_parser=output_parser)\n\nresponse = query_engine.query(\"Summarize the document\")\nsummary = response  # Pydantic model\nprint(summary.title, summary.main_points)\n```\n\n## Data ingestion patterns\n\n### Multiple file types\n\n```python\n# Load all supported formats\ndocuments = SimpleDirectoryReader(\n    \".\u002Fdata\",\n    recursive=True,\n    required_exts=[\".pdf\", \".docx\", \".txt\", \".md\"]\n).load_data()\n```\n\n### Web scraping\n\n```python\nfrom llama_index.readers.web import BeautifulSoupWebReader\n\nreader = BeautifulSoupWebReader()\ndocuments = reader.load_data(urls=[\n    \"https:\u002F\u002Fdocs.python.org\u002F3\u002Ftutorial\u002F\",\n    \"https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002F\"\n])\n```\n\n### Database\n\n```python\nfrom llama_index.readers.database import DatabaseReader\n\nreader = DatabaseReader(\n    sql_database_uri=\"postgresql:\u002F\u002Fuser:pass@localhost\u002Fdb\"\n)\ndocuments = reader.load_data(query=\"SELECT * FROM articles\")\n```\n\n### API endpoints\n\n```python\nfrom llama_index.readers.json import JSONReader\n\nreader = JSONReader()\ndocuments = reader.load_data(\"https:\u002F\u002Fapi.example.com\u002Fdata.json\")\n```\n\n## Vector store integrations\n\n### Chroma (local)\n\n```python\nfrom llama_index.vector_stores.chroma import ChromaVectorStore\nimport chromadb\n\n# Initialize Chroma\ndb = chromadb.PersistentClient(path=\".\u002Fchroma_db\")\ncollection = db.get_or_create_collection(\"my_collection\")\n\n# Create vector store\nvector_store = ChromaVectorStore(chroma_collection=collection)\n\n# Use in index\nfrom llama_index.core import StorageContext\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n### Pinecone (cloud)\n\n```python\nfrom llama_index.vector_stores.pinecone import PineconeVectorStore\nimport pinecone\n\n# Initialize Pinecone\npinecone.init(api_key=\"your-key\", environment=\"us-west1-gcp\")\npinecone_index = pinecone.Index(\"my-index\")\n\n# Create vector store\nvector_store = PineconeVectorStore(pinecone_index=pinecone_index)\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\n\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n### FAISS (fast)\n\n```python\nfrom llama_index.vector_stores.faiss import FaissVectorStore\nimport faiss\n\n# Create FAISS index\nd = 1536  # Dimension of embeddings\nfaiss_index = faiss.IndexFlatL2(d)\n\nvector_store = FaissVectorStore(faiss_index=faiss_index)\nstorage_context = StorageContext.from_defaults(vector_store=vector_store)\n\nindex = VectorStoreIndex.from_documents(documents, storage_context=storage_context)\n```\n\n## Customization\n\n### Custom LLM\n\n```python\nfrom llama_index.llms.anthropic import Anthropic\nfrom llama_index.core import Settings\n\n# Set global LLM\nSettings.llm = Anthropic(model=\"claude-sonnet-4-5-20250929\")\n\n# Now all queries use Anthropic\nquery_engine = index.as_query_engine()\n```\n\n### Custom embeddings\n\n```python\nfrom llama_index.embeddings.huggingface import HuggingFaceEmbedding\n\n# Use HuggingFace embeddings\nSettings.embed_model = HuggingFaceEmbedding(\n    model_name=\"sentence-transformers\u002Fall-mpnet-base-v2\"\n)\n\nindex = VectorStoreIndex.from_documents(documents)\n```\n\n### Custom prompt templates\n\n```python\nfrom llama_index.core import PromptTemplate\n\nqa_prompt = PromptTemplate(\n    \"Context: {context_str}\\n\"\n    \"Question: {query_str}\\n\"\n    \"Answer the question based only on the context. \"\n    \"If the answer is not in the context, say 'I don't know'.\\n\"\n    \"Answer: \"\n)\n\nquery_engine = index.as_query_engine(text_qa_template=qa_prompt)\n```\n\n## Multi-modal RAG\n\n### Image + text\n\n```python\nfrom llama_index.core import SimpleDirectoryReader\nfrom llama_index.multi_modal_llms.openai import OpenAIMultiModal\n\n# Load images and documents\ndocuments = SimpleDirectoryReader(\n    \".\u002Fdata\",\n    required_exts=[\".jpg\", \".png\", \".pdf\"]\n).load_data()\n\n# Multi-modal index\nindex = VectorStoreIndex.from_documents(documents)\n\n# Query with multi-modal LLM\nmulti_modal_llm = OpenAIMultiModal(model=\"gpt-4o\")\nquery_engine = index.as_query_engine(llm=multi_modal_llm)\n\nresponse = query_engine.query(\"What is in the diagram on page 3?\")\n```\n\n## Evaluation\n\n### Response quality\n\n```python\nfrom llama_index.core.evaluation import RelevancyEvaluator, FaithfulnessEvaluator\n\n# Evaluate relevance\nrelevancy = RelevancyEvaluator()\nresult = relevancy.evaluate_response(\n    query=\"What is Python?\",\n    response=response\n)\nprint(f\"Relevancy: {result.passing}\")\n\n# Evaluate faithfulness (no hallucination)\nfaithfulness = FaithfulnessEvaluator()\nresult = faithfulness.evaluate_response(\n    query=\"What is Python?\",\n    response=response\n)\nprint(f\"Faithfulness: {result.passing}\")\n```\n\n## Best practices\n\n1. **Use vector indices for most cases** - Best performance\n2. **Save indices to disk** - Avoid re-indexing\n3. **Chunk documents properly** - 512-1024 tokens optimal\n4. **Add metadata** - Enables filtering and tracking\n5. **Use streaming** - Better UX for long responses\n6. **Enable verbose during dev** - See retrieval process\n7. **Evaluate responses** - Check relevance and faithfulness\n8. **Use chat engine for conversations** - Built-in memory\n9. **Persist storage** - Don't lose your index\n10. **Monitor costs** - Track embedding and LLM usage\n\n## Common patterns\n\n### Document Q&A system\n\n```python\n# Complete RAG pipeline\ndocuments = SimpleDirectoryReader(\"docs\").load_data()\nindex = VectorStoreIndex.from_documents(documents)\nindex.storage_context.persist(persist_dir=\".\u002Fstorage\")\n\n# Query\nquery_engine = index.as_query_engine(\n    similarity_top_k=3,\n    response_mode=\"compact\",\n    verbose=True\n)\nresponse = query_engine.query(\"What is the main topic?\")\nprint(response)\nprint(f\"Sources: {[node.metadata['file_name'] for node in response.source_nodes]}\")\n```\n\n### Chatbot with memory\n\n```python\n# Conversational interface\nchat_engine = index.as_chat_engine(\n    chat_mode=\"condense_plus_context\",\n    verbose=True\n)\n\n# Multi-turn chat\nwhile True:\n    user_input = input(\"You: \")\n    if user_input.lower() == \"quit\":\n        break\n    response = chat_engine.chat(user_input)\n    print(f\"Bot: {response}\")\n```\n\n## Performance benchmarks\n\n| Operation | Latency | Notes |\n|-----------|---------|-------|\n| Index 100 docs | ~10-30s | One-time, can persist |\n| Query (vector) | ~0.5-2s | Retrieval + LLM |\n| Streaming query | ~0.5s first token | Better UX |\n| Agent with tools | ~3-8s | Multiple tool calls |\n\n## LlamaIndex vs LangChain\n\n| Feature | LlamaIndex | LangChain |\n|---------|------------|-----------|\n| **Best for** | RAG, document Q&A | Agents, general LLM apps |\n| **Data connectors** | 300+ (LlamaHub) | 100+ |\n| **RAG focus** | Core feature | One of many |\n| **Learning curve** | Easier for RAG | Steeper |\n| **Customization** | High | Very high |\n| **Documentation** | Excellent | Good |\n\n**Use LlamaIndex when:**\n- Your primary use case is RAG\n- Need many data connectors\n- Want simpler API for document Q&A\n- Building knowledge retrieval system\n\n**Use LangChain when:**\n- Building complex agents\n- Need more general-purpose tools\n- Want more flexibility\n- Complex multi-step workflows\n\n## References\n\n- **[Query Engines Guide](references\u002Fquery_engines.md)** - Query modes, customization, streaming\n- **[Agents Guide](references\u002Fagents.md)** - Tool creation, RAG agents, multi-step reasoning\n- **[Data Connectors Guide](references\u002Fdata_connectors.md)** - 300+ connectors, custom loaders\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Frun-llama\u002Fllama_index ⭐ 45,100+\n- **Docs**: https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fframework\u002F\n- **LlamaHub**: https:\u002F\u002Fllamahub.ai (data connectors)\n- **LlamaCloud**: https:\u002F\u002Fcloud.llamaindex.ai (enterprise)\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002FdGcwcsnxhU\n- **Version**: 0.14.7+\n- **License**: MIT\n\n\n",{"name":5,"tags":54,"author":59,"license":15,"version":60,"description":7,"dependencies":61},[55,29,56,36,35,34,33,32,57,31,58],"Agents","RAG","Multimodal","Connectors","luo-kai","1.0.0",[62,47,63],"llama-index","anthropic","main","4d2fb89cdfb75f3f6fd3c6c5ec9ad90ea129eb3c","ai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex",1,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai","https:\u002F\u002Fgithub.com\u002Fluokai0","a solo builder.","2026-05-06 04:29:04",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill llamaindex",{"tool":78,"command":79},"bunx","bunx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill llamaindex",{"tool":81,"command":82},"pnpm","pnpm dlx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill llamaindex","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex\u002FSKILL.md",true,[86,92,96,100,104,108,112,116,120,124,130,134,138,142,146,150,154,158,162,166,170,174,178],{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fagents.md","REFERENCE","参考文档",1958,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex\u002Freferences\u002Fagents.md",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fchannel_analysis.md",7078,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fchannel_analysis.md",{"path":97,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fcoordinator_summary_contract.md",1009,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fcoordinator_summary_contract.md",{"path":101,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fdata_connectors.md",2307,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex\u002Freferences\u002Fdata_connectors.md",{"path":105,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fepistemic_protocol.md",3505,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fepistemic_protocol.md",{"path":109,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Ffilter_criteria.md",8473,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Ffilter_criteria.md",{"path":113,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002Fplanning_worker_runtime_contract.md",3699,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fplanning_worker_runtime_contract.md",{"path":117,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":118,"sourceHtmlUrl":119},"references\u002Fquery_engines.md",9905,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Fllamaindex\u002Freferences\u002Fquery_engines.md",{"path":121,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Fresearch_tool_fallback.md",1214,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fresearch_tool_fallback.md",{"path":125,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":128,"sourceHtmlUrl":129},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fartifacts.mjs","SCRIPT","脚本",2463,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fartifacts.mjs",{"path":131,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":132,"sourceHtmlUrl":133},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fcli-helpers.mjs",3569,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fcli-helpers.mjs",{"path":135,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":136,"sourceHtmlUrl":137},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fcore.mjs",19048,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fcore.mjs",{"path":139,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":140,"sourceHtmlUrl":141},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Floop-health.mjs",7667,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Floop-health.mjs",{"path":143,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":144,"sourceHtmlUrl":145},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fruntime-constants.mjs",3880,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fruntime-constants.mjs",{"path":147,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":148,"sourceHtmlUrl":149},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fschemas.mjs",38117,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fschemas.mjs",{"path":151,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":152,"sourceHtmlUrl":153},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fvalidate.mjs",4943,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fvalidate.mjs",{"path":155,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":156,"sourceHtmlUrl":157},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fworker-guards.mjs",3139,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fworker-guards.mjs",{"path":159,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":160,"sourceHtmlUrl":161},"references\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fworker-runtime.mjs",6192,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fcoordinator-runtime\u002Flib\u002Fworker-runtime.mjs",{"path":163,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":164,"sourceHtmlUrl":165},"references\u002Fscripts\u002Fplanning-worker-runtime\u002Fcli.mjs",7831,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fplanning-worker-runtime\u002Fcli.mjs",{"path":167,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":168,"sourceHtmlUrl":169},"references\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fguards.mjs",917,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fguards.mjs",{"path":171,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":172,"sourceHtmlUrl":173},"references\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fphases.mjs",1533,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fphases.mjs",{"path":175,"resourceType":126,"resourceTypeDesc":127,"sizeBytes":176,"sourceHtmlUrl":177},"references\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fstore.mjs",4289,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Fscripts\u002Fplanning-worker-runtime\u002Flib\u002Fstore.mjs",{"path":179,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":180,"sourceHtmlUrl":181},"references\u002Ftemplates\u002Fdiscovery_template.md",4722,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fagile-workflow\u002Fskills\u002Fln-201-opportunity-discoverer\u002Freferences\u002Ftemplates\u002Fdiscovery_template.md",[183,210,227,254,287,322],{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":49},"01M6F2SKTE208174C7S7JJCZC7","write-contracts","Generates secure Aptos Move V2 smart contracts with Object model, Digital Asset integration, security patterns, and storage type guidance. Includes comprehensive storage decision framework for optimal data structure selection. Triggers on: 'write contract', 'create NFT collection', 'build marketplace', 'implement minting', 'generate Move module', 'create token contract', 'build DAO', 'implement staking'. Ask storage questions when: 'store', 'track', 'registry', 'mapping', 'list', 'collection'.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fwrite-contracts\u002FSKILL.md",[],[190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209],"write","contracts","write contracts","storage","secure","create","generate","collection","model","decision","ask","smart-contracts","selection","objects","structure","nft","token","aptos","critical","move",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":214,"categories":215,"keywords":216,"publishedAt":49},"01M6F2RFXJ6T9MKW0A7N7GM45B","web-search","通用网络搜索技能，支持多引擎搜索（百度、必应、DuckDuckGo），无需API密钥即可获取实时信息","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fweb-search-ex-skill\u002FSKILL.md",[],[217,218,219,220,221,222,223,224,225,226],"web","search","web search","搜索","baidu","bing","duckduckgo","百度","多引擎","internet",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":236,"publishedAt":49},"01M6F2K968G1FZEZFPW2E6B222","solo-build","Execute implementation plan tasks with TDD workflow, auto-commit, and phase gates. Use when user says \"build it\", \"start building\", \"execute plan\", \"implement tasks\", \"ship it\", or references a track ID. Do NOT use for planning (use \u002Fplan) or scaffolding (use \u002Fscaffold).","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fsolo-build\u002FSKILL.md",[233],{"categoryNo":234,"categoryName":235,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[237,238,239,240,241,242,243,244,218,245,246,247,190,248,249,250,30,251,252,253],"build","solo","solo build","MCP","workflow","commit","tasks","code","Bash","plan","read","auto","references","context7","scaffolding","ship it","project",{"skillNo":255,"name":256,"nameZh":6,"description":257,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":258,"categories":259,"keywords":266,"publishedAt":49},"01M6F2GKN39SGHSPWYB3662YC8","react-email","Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Freact-email-skills\u002FSKILL.md",[260,263],{"categoryNo":261,"categoryName":262,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":264,"categoryName":265,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286],"react","email","react email","github","editor","components","react components","component","welcome","https","notifications","password","node","use","html","resend","visual","emails","rendering","with",{"skillNo":288,"name":289,"nameZh":6,"description":290,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":291,"categories":292,"keywords":303,"publishedAt":49},"01M6F2FBVGVDFSG8SSFJGXA40C","APITester Agent-Driven API Testing","Test API endpoints and document responses. Define tests in plain English, run them, get formatted results. Agent-driven Postman alternative.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fopenclaw-api-tester\u002FSKILL.md",[293,296,299,300],{"categoryNo":294,"categoryName":295,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":297,"categoryName":298,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":234,"categoryName":235,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":301,"categoryName":302,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师",[304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321],"testing","api","api testing","driven","APITester Agent Driven API Testing","test","run","postman","results","plain english","tester","endpoints","document","get","define","tests","english","api-tester",{"skillNo":323,"name":324,"nameZh":6,"description":325,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":326,"categories":327,"keywords":328,"publishedAt":49},"01M6F273Y3NGAPVJZ608BC0G9G","hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running \u002Fhubspot-audit.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fhubspot-implementation-plan\u002FSKILL.md",[],[246,329,330,331,332,333,334,196,335,336,337,338,339,280,340,341,286,342],"implementation","hubspot","hubspot implementation plan","automation","feasibility","cleanup","planning","report","audit","audit report","phased implementation","dependencies","processes","hubspot audit"]