[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70GG02Z97EECMSV30TXYJ2W":3,"skill-same:01M70GG02Z97EECMSV30TXYJ2W":70},{"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":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M70GG02Z97EECMSV30TXYJ2W","langchain-architecture",null,"Design LLM applications using the LangChain framework with agents, memory, and tool integration patterns. Use when building LangChain applications, implementing AI agents, or creating complex LLM workflows.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Fplugins\u002Fllm-application-dev\u002Fskills\u002Flangchain-architecture\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],"architecture","langchain","langchain architecture","integration","with","use","applications","tool","framework","patterns","ai agents","LLM Applications","when","workflows","design","implementing","memory","2026-11-10 10:12:30",false,"---\nname: langchain-architecture\ndescription: Design LLM applications using the LangChain framework with agents, memory, and tool integration patterns. Use when building LangChain applications, implementing AI agents, or creating complex LLM workflows.\n---\n\n# LangChain Architecture\n\nMaster the LangChain framework for building sophisticated LLM applications with agents, chains, memory, and tool integration.\n\n## When to Use This Skill\n\n- Building autonomous AI agents with tool access\n- Implementing complex multi-step LLM workflows\n- Managing conversation memory and state\n- Integrating LLMs with external data sources and APIs\n- Creating modular, reusable LLM application components\n- Implementing document processing pipelines\n- Building production-grade LLM applications\n\n## Core Concepts\n\n### 1. Agents\nAutonomous systems that use LLMs to decide which actions to take.\n\n**Agent Types:**\n- **ReAct**: Reasoning + Acting in interleaved manner\n- **OpenAI Functions**: Leverages function calling API\n- **Structured Chat**: Handles multi-input tools\n- **Conversational**: Optimized for chat interfaces\n- **Self-Ask with Search**: Decomposes complex queries\n\n### 2. Chains\nSequences of calls to LLMs or other utilities.\n\n**Chain Types:**\n- **LLMChain**: Basic prompt + LLM combination\n- **SequentialChain**: Multiple chains in sequence\n- **RouterChain**: Routes inputs to specialized chains\n- **TransformChain**: Data transformations between steps\n- **MapReduceChain**: Parallel processing with aggregation\n\n### 3. Memory\nSystems for maintaining context across interactions.\n\n**Memory Types:**\n- **ConversationBufferMemory**: Stores all messages\n- **ConversationSummaryMemory**: Summarizes older messages\n- **ConversationBufferWindowMemory**: Keeps last N messages\n- **EntityMemory**: Tracks information about entities\n- **VectorStoreMemory**: Semantic similarity retrieval\n\n### 4. Document Processing\nLoading, transforming, and storing documents for retrieval.\n\n**Components:**\n- **Document Loaders**: Load from various sources\n- **Text Splitters**: Chunk documents intelligently\n- **Vector Stores**: Store and retrieve embeddings\n- **Retrievers**: Fetch relevant documents\n- **Indexes**: Organize documents for efficient access\n\n### 5. Callbacks\nHooks for logging, monitoring, and debugging.\n\n**Use Cases:**\n- Request\u002Fresponse logging\n- Token usage tracking\n- Latency monitoring\n- Error handling\n- Custom metrics collection\n\n## Quick Start\n\n```python\nfrom langchain.agents import AgentType, initialize_agent, load_tools\nfrom langchain.llms import OpenAI\nfrom langchain.memory import ConversationBufferMemory\n\n# Initialize LLM\nllm = OpenAI(temperature=0)\n\n# Load tools\ntools = load_tools([\"serpapi\", \"llm-math\"], llm=llm)\n\n# Add memory\nmemory = ConversationBufferMemory(memory_key=\"chat_history\")\n\n# Create agent\nagent = initialize_agent(\n    tools,\n    llm,\n    agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION,\n    memory=memory,\n    verbose=True\n)\n\n# Run agent\nresult = agent.run(\"What's the weather in SF? Then calculate 25 * 4\")\n```\n\n## Architecture Patterns\n\n### Pattern 1: RAG with LangChain\n```python\nfrom langchain.chains import RetrievalQA\nfrom langchain.document_loaders import TextLoader\nfrom langchain.text_splitter import CharacterTextSplitter\nfrom langchain.vectorstores import Chroma\nfrom langchain.embeddings import OpenAIEmbeddings\n\n# Load and process documents\nloader = TextLoader('documents.txt')\ndocuments = loader.load()\n\ntext_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)\ntexts = text_splitter.split_documents(documents)\n\n# Create vector store\nembeddings = OpenAIEmbeddings()\nvectorstore = Chroma.from_documents(texts, embeddings)\n\n# Create retrieval chain\nqa_chain = RetrievalQA.from_chain_type(\n    llm=llm,\n    chain_type=\"stuff\",\n    retriever=vectorstore.as_retriever(),\n    return_source_documents=True\n)\n\n# Query\nresult = qa_chain({\"query\": \"What is the main topic?\"})\n```\n\n### Pattern 2: Custom Agent with Tools\n```python\nfrom langchain.agents import Tool, AgentExecutor\nfrom langchain.agents.react.base import ReActDocstoreAgent\nfrom langchain.tools import tool\n\n@tool\ndef search_database(query: str) -> str:\n    \"\"\"Search internal database for information.\"\"\"\n    # Your database search logic\n    return f\"Results for: {query}\"\n\n@tool\ndef send_email(recipient: str, content: str) -> str:\n    \"\"\"Send an email to specified recipient.\"\"\"\n    # Email sending logic\n    return f\"Email sent to {recipient}\"\n\ntools = [search_database, send_email]\n\nagent = initialize_agent(\n    tools,\n    llm,\n    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,\n    verbose=True\n)\n```\n\n### Pattern 3: Multi-Step Chain\n```python\nfrom langchain.chains import LLMChain, SequentialChain\nfrom langchain.prompts import PromptTemplate\n\n# Step 1: Extract key information\nextract_prompt = PromptTemplate(\n    input_variables=[\"text\"],\n    template=\"Extract key entities from: {text}\\n\\nEntities:\"\n)\nextract_chain = LLMChain(llm=llm, prompt=extract_prompt, output_key=\"entities\")\n\n# Step 2: Analyze entities\nanalyze_prompt = PromptTemplate(\n    input_variables=[\"entities\"],\n    template=\"Analyze these entities: {entities}\\n\\nAnalysis:\"\n)\nanalyze_chain = LLMChain(llm=llm, prompt=analyze_prompt, output_key=\"analysis\")\n\n# Step 3: Generate summary\nsummary_prompt = PromptTemplate(\n    input_variables=[\"entities\", \"analysis\"],\n    template=\"Summarize:\\nEntities: {entities}\\nAnalysis: {analysis}\\n\\nSummary:\"\n)\nsummary_chain = LLMChain(llm=llm, prompt=summary_prompt, output_key=\"summary\")\n\n# Combine into sequential chain\noverall_chain = SequentialChain(\n    chains=[extract_chain, analyze_chain, summary_chain],\n    input_variables=[\"text\"],\n    output_variables=[\"entities\", \"analysis\", \"summary\"],\n    verbose=True\n)\n```\n\n## Memory Management Best Practices\n\n### Choosing the Right Memory Type\n```python\n# For short conversations (\u003C 10 messages)\nfrom langchain.memory import ConversationBufferMemory\nmemory = ConversationBufferMemory()\n\n# For long conversations (summarize old messages)\nfrom langchain.memory import ConversationSummaryMemory\nmemory = ConversationSummaryMemory(llm=llm)\n\n# For sliding window (last N messages)\nfrom langchain.memory import ConversationBufferWindowMemory\nmemory = ConversationBufferWindowMemory(k=5)\n\n# For entity tracking\nfrom langchain.memory import ConversationEntityMemory\nmemory = ConversationEntityMemory(llm=llm)\n\n# For semantic retrieval of relevant history\nfrom langchain.memory import VectorStoreRetrieverMemory\nmemory = VectorStoreRetrieverMemory(retriever=retriever)\n```\n\n## Callback System\n\n### Custom Callback Handler\n```python\nfrom langchain.callbacks.base import BaseCallbackHandler\n\nclass CustomCallbackHandler(BaseCallbackHandler):\n    def on_llm_start(self, serialized, prompts, **kwargs):\n        print(f\"LLM started with prompts: {prompts}\")\n\n    def on_llm_end(self, response, **kwargs):\n        print(f\"LLM ended with response: {response}\")\n\n    def on_llm_error(self, error, **kwargs):\n        print(f\"LLM error: {error}\")\n\n    def on_chain_start(self, serialized, inputs, **kwargs):\n        print(f\"Chain started with inputs: {inputs}\")\n\n    def on_agent_action(self, action, **kwargs):\n        print(f\"Agent taking action: {action}\")\n\n# Use callback\nagent.run(\"query\", callbacks=[CustomCallbackHandler()])\n```\n\n## Testing Strategies\n\n```python\nimport pytest\nfrom unittest.mock import Mock\n\ndef test_agent_tool_selection():\n    # Mock LLM to return specific tool selection\n    mock_llm = Mock()\n    mock_llm.predict.return_value = \"Action: search_database\\nAction Input: test query\"\n\n    agent = initialize_agent(tools, mock_llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)\n\n    result = agent.run(\"test query\")\n\n    # Verify correct tool was selected\n    assert \"search_database\" in str(mock_llm.predict.call_args)\n\ndef test_memory_persistence():\n    memory = ConversationBufferMemory()\n\n    memory.save_context({\"input\": \"Hi\"}, {\"output\": \"Hello!\"})\n\n    assert \"Hi\" in memory.load_memory_variables({})['history']\n    assert \"Hello!\" in memory.load_memory_variables({})['history']\n```\n\n## Performance Optimization\n\n### 1. Caching\n```python\nfrom langchain.cache import InMemoryCache\nimport langchain\n\nlangchain.llm_cache = InMemoryCache()\n```\n\n### 2. Batch Processing\n```python\n# Process multiple documents in parallel\nfrom langchain.document_loaders import DirectoryLoader\nfrom concurrent.futures import ThreadPoolExecutor\n\nloader = DirectoryLoader('.\u002Fdocs')\ndocs = loader.load()\n\ndef process_doc(doc):\n    return text_splitter.split_documents([doc])\n\nwith ThreadPoolExecutor(max_workers=4) as executor:\n    split_docs = list(executor.map(process_doc, docs))\n```\n\n### 3. Streaming Responses\n```python\nfrom langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler\n\nllm = OpenAI(streaming=True, callbacks=[StreamingStdOutCallbackHandler()])\n```\n\n## Resources\n\n- **references\u002Fagents.md**: Deep dive on agent architectures\n- **references\u002Fmemory.md**: Memory system patterns\n- **references\u002Fchains.md**: Chain composition strategies\n- **references\u002Fdocument-processing.md**: Document loading and indexing\n- **references\u002Fcallbacks.md**: Monitoring and observability\n- **assets\u002Fagent-template.py**: Production-ready agent template\n- **assets\u002Fmemory-config.yaml**: Memory configuration examples\n- **assets\u002Fchain-example.py**: Complex chain examples\n\n## Common Pitfalls\n\n1. **Memory Overflow**: Not managing conversation history length\n2. **Tool Selection Errors**: Poor tool descriptions confuse agents\n3. **Context Window Exceeded**: Exceeding LLM token limits\n4. **No Error Handling**: Not catching and handling agent failures\n5. **Inefficient Retrieval**: Not optimizing vector store queries\n\n## Production Checklist\n\n- [ ] Implement proper error handling\n- [ ] Add request\u002Fresponse logging\n- [ ] Monitor token usage and costs\n- [ ] Set timeout limits for agent execution\n- [ ] Implement rate limiting\n- [ ] Add input validation\n- [ ] Test with edge cases\n- [ ] Set up observability (callbacks)\n- [ ] Implement fallback strategies\n- [ ] Version control prompts and configurations\n","# LangChain Architecture\n\nMaster the LangChain framework for building sophisticated LLM applications with agents, chains, memory, and tool integration.\n\n## When to Use This Skill\n\n- Building autonomous AI agents with tool access\n- Implementing complex multi-step LLM workflows\n- Managing conversation memory and state\n- Integrating LLMs with external data sources and APIs\n- Creating modular, reusable LLM application components\n- Implementing document processing pipelines\n- Building production-grade LLM applications\n\n## Core Concepts\n\n### 1. Agents\nAutonomous systems that use LLMs to decide which actions to take.\n\n**Agent Types:**\n- **ReAct**: Reasoning + Acting in interleaved manner\n- **OpenAI Functions**: Leverages function calling API\n- **Structured Chat**: Handles multi-input tools\n- **Conversational**: Optimized for chat interfaces\n- **Self-Ask with Search**: Decomposes complex queries\n\n### 2. Chains\nSequences of calls to LLMs or other utilities.\n\n**Chain Types:**\n- **LLMChain**: Basic prompt + LLM combination\n- **SequentialChain**: Multiple chains in sequence\n- **RouterChain**: Routes inputs to specialized chains\n- **TransformChain**: Data transformations between steps\n- **MapReduceChain**: Parallel processing with aggregation\n\n### 3. Memory\nSystems for maintaining context across interactions.\n\n**Memory Types:**\n- **ConversationBufferMemory**: Stores all messages\n- **ConversationSummaryMemory**: Summarizes older messages\n- **ConversationBufferWindowMemory**: Keeps last N messages\n- **EntityMemory**: Tracks information about entities\n- **VectorStoreMemory**: Semantic similarity retrieval\n\n### 4. Document Processing\nLoading, transforming, and storing documents for retrieval.\n\n**Components:**\n- **Document Loaders**: Load from various sources\n- **Text Splitters**: Chunk documents intelligently\n- **Vector Stores**: Store and retrieve embeddings\n- **Retrievers**: Fetch relevant documents\n- **Indexes**: Organize documents for efficient access\n\n### 5. Callbacks\nHooks for logging, monitoring, and debugging.\n\n**Use Cases:**\n- Request\u002Fresponse logging\n- Token usage tracking\n- Latency monitoring\n- Error handling\n- Custom metrics collection\n\n## Quick Start\n\n```python\nfrom langchain.agents import AgentType, initialize_agent, load_tools\nfrom langchain.llms import OpenAI\nfrom langchain.memory import ConversationBufferMemory\n\n# Initialize LLM\nllm = OpenAI(temperature=0)\n\n# Load tools\ntools = load_tools([\"serpapi\", \"llm-math\"], llm=llm)\n\n# Add memory\nmemory = ConversationBufferMemory(memory_key=\"chat_history\")\n\n# Create agent\nagent = initialize_agent(\n    tools,\n    llm,\n    agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION,\n    memory=memory,\n    verbose=True\n)\n\n# Run agent\nresult = agent.run(\"What's the weather in SF? Then calculate 25 * 4\")\n```\n\n## Architecture Patterns\n\n### Pattern 1: RAG with LangChain\n```python\nfrom langchain.chains import RetrievalQA\nfrom langchain.document_loaders import TextLoader\nfrom langchain.text_splitter import CharacterTextSplitter\nfrom langchain.vectorstores import Chroma\nfrom langchain.embeddings import OpenAIEmbeddings\n\n# Load and process documents\nloader = TextLoader('documents.txt')\ndocuments = loader.load()\n\ntext_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)\ntexts = text_splitter.split_documents(documents)\n\n# Create vector store\nembeddings = OpenAIEmbeddings()\nvectorstore = Chroma.from_documents(texts, embeddings)\n\n# Create retrieval chain\nqa_chain = RetrievalQA.from_chain_type(\n    llm=llm,\n    chain_type=\"stuff\",\n    retriever=vectorstore.as_retriever(),\n    return_source_documents=True\n)\n\n# Query\nresult = qa_chain({\"query\": \"What is the main topic?\"})\n```\n\n### Pattern 2: Custom Agent with Tools\n```python\nfrom langchain.agents import Tool, AgentExecutor\nfrom langchain.agents.react.base import ReActDocstoreAgent\nfrom langchain.tools import tool\n\n@tool\ndef search_database(query: str) -> str:\n    \"\"\"Search internal database for information.\"\"\"\n    # Your database search logic\n    return f\"Results for: {query}\"\n\n@tool\ndef send_email(recipient: str, content: str) -> str:\n    \"\"\"Send an email to specified recipient.\"\"\"\n    # Email sending logic\n    return f\"Email sent to {recipient}\"\n\ntools = [search_database, send_email]\n\nagent = initialize_agent(\n    tools,\n    llm,\n    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,\n    verbose=True\n)\n```\n\n### Pattern 3: Multi-Step Chain\n```python\nfrom langchain.chains import LLMChain, SequentialChain\nfrom langchain.prompts import PromptTemplate\n\n# Step 1: Extract key information\nextract_prompt = PromptTemplate(\n    input_variables=[\"text\"],\n    template=\"Extract key entities from: {text}\\n\\nEntities:\"\n)\nextract_chain = LLMChain(llm=llm, prompt=extract_prompt, output_key=\"entities\")\n\n# Step 2: Analyze entities\nanalyze_prompt = PromptTemplate(\n    input_variables=[\"entities\"],\n    template=\"Analyze these entities: {entities}\\n\\nAnalysis:\"\n)\nanalyze_chain = LLMChain(llm=llm, prompt=analyze_prompt, output_key=\"analysis\")\n\n# Step 3: Generate summary\nsummary_prompt = PromptTemplate(\n    input_variables=[\"entities\", \"analysis\"],\n    template=\"Summarize:\\nEntities: {entities}\\nAnalysis: {analysis}\\n\\nSummary:\"\n)\nsummary_chain = LLMChain(llm=llm, prompt=summary_prompt, output_key=\"summary\")\n\n# Combine into sequential chain\noverall_chain = SequentialChain(\n    chains=[extract_chain, analyze_chain, summary_chain],\n    input_variables=[\"text\"],\n    output_variables=[\"entities\", \"analysis\", \"summary\"],\n    verbose=True\n)\n```\n\n## Memory Management Best Practices\n\n### Choosing the Right Memory Type\n```python\n# For short conversations (\u003C 10 messages)\nfrom langchain.memory import ConversationBufferMemory\nmemory = ConversationBufferMemory()\n\n# For long conversations (summarize old messages)\nfrom langchain.memory import ConversationSummaryMemory\nmemory = ConversationSummaryMemory(llm=llm)\n\n# For sliding window (last N messages)\nfrom langchain.memory import ConversationBufferWindowMemory\nmemory = ConversationBufferWindowMemory(k=5)\n\n# For entity tracking\nfrom langchain.memory import ConversationEntityMemory\nmemory = ConversationEntityMemory(llm=llm)\n\n# For semantic retrieval of relevant history\nfrom langchain.memory import VectorStoreRetrieverMemory\nmemory = VectorStoreRetrieverMemory(retriever=retriever)\n```\n\n## Callback System\n\n### Custom Callback Handler\n```python\nfrom langchain.callbacks.base import BaseCallbackHandler\n\nclass CustomCallbackHandler(BaseCallbackHandler):\n    def on_llm_start(self, serialized, prompts, **kwargs):\n        print(f\"LLM started with prompts: {prompts}\")\n\n    def on_llm_end(self, response, **kwargs):\n        print(f\"LLM ended with response: {response}\")\n\n    def on_llm_error(self, error, **kwargs):\n        print(f\"LLM error: {error}\")\n\n    def on_chain_start(self, serialized, inputs, **kwargs):\n        print(f\"Chain started with inputs: {inputs}\")\n\n    def on_agent_action(self, action, **kwargs):\n        print(f\"Agent taking action: {action}\")\n\n# Use callback\nagent.run(\"query\", callbacks=[CustomCallbackHandler()])\n```\n\n## Testing Strategies\n\n```python\nimport pytest\nfrom unittest.mock import Mock\n\ndef test_agent_tool_selection():\n    # Mock LLM to return specific tool selection\n    mock_llm = Mock()\n    mock_llm.predict.return_value = \"Action: search_database\\nAction Input: test query\"\n\n    agent = initialize_agent(tools, mock_llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)\n\n    result = agent.run(\"test query\")\n\n    # Verify correct tool was selected\n    assert \"search_database\" in str(mock_llm.predict.call_args)\n\ndef test_memory_persistence():\n    memory = ConversationBufferMemory()\n\n    memory.save_context({\"input\": \"Hi\"}, {\"output\": \"Hello!\"})\n\n    assert \"Hi\" in memory.load_memory_variables({})['history']\n    assert \"Hello!\" in memory.load_memory_variables({})['history']\n```\n\n## Performance Optimization\n\n### 1. Caching\n```python\nfrom langchain.cache import InMemoryCache\nimport langchain\n\nlangchain.llm_cache = InMemoryCache()\n```\n\n### 2. Batch Processing\n```python\n# Process multiple documents in parallel\nfrom langchain.document_loaders import DirectoryLoader\nfrom concurrent.futures import ThreadPoolExecutor\n\nloader = DirectoryLoader('.\u002Fdocs')\ndocs = loader.load()\n\ndef process_doc(doc):\n    return text_splitter.split_documents([doc])\n\nwith ThreadPoolExecutor(max_workers=4) as executor:\n    split_docs = list(executor.map(process_doc, docs))\n```\n\n### 3. Streaming Responses\n```python\nfrom langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler\n\nllm = OpenAI(streaming=True, callbacks=[StreamingStdOutCallbackHandler()])\n```\n\n## Resources\n\n- **references\u002Fagents.md**: Deep dive on agent architectures\n- **references\u002Fmemory.md**: Memory system patterns\n- **references\u002Fchains.md**: Chain composition strategies\n- **references\u002Fdocument-processing.md**: Document loading and indexing\n- **references\u002Fcallbacks.md**: Monitoring and observability\n- **assets\u002Fagent-template.py**: Production-ready agent template\n- **assets\u002Fmemory-config.yaml**: Memory configuration examples\n- **assets\u002Fchain-example.py**: Complex chain examples\n\n## Common Pitfalls\n\n1. **Memory Overflow**: Not managing conversation history length\n2. **Tool Selection Errors**: Poor tool descriptions confuse agents\n3. **Context Window Exceeded**: Exceeding LLM token limits\n4. **No Error Handling**: Not catching and handling agent failures\n5. **Inefficient Retrieval**: Not optimizing vector store queries\n\n## Production Checklist\n\n- [ ] Implement proper error handling\n- [ ] Add request\u002Fresponse logging\n- [ ] Monitor token usage and costs\n- [ ] Set timeout limits for agent execution\n- [ ] Implement rate limiting\n- [ ] Add input validation\n- [ ] Test with edge cases\n- [ ] Set up observability (callbacks)\n- [ ] Implement fallback strategies\n- [ ] Version control prompts and configurations\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002F_collections\u002Fplugins\u002Fllm-application-dev\u002Fskills\u002Flangchain-architecture",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill langchain-architecture",{"tool":62,"command":63},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill langchain-architecture",{"tool":65,"command":66},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill langchain-architecture","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Fplugins\u002Fllm-application-dev\u002Fskills\u002Flangchain-architecture\u002FSKILL.md",true,[],[71,88,119,144,166,186],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":80,"publishedAt":41},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[77],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[81,82,83,84,85,86,87],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":100,"publishedAt":41},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[94,95],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[90,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,24,116,117,118],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","code","unknown","generated",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":129,"publishedAt":41},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[125,126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":127,"categoryName":128,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000036","内容创作者",[121,130,131,132,133,134,135,136,109,137,138,139,36,29,140,141,142,143],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","auto","types","Video","创作",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":41},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[150],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[152,153,121,154,155,142,156,157,158,159,160,161,162,163,107,164,36,29,101,165],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":176,"publishedAt":41},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[172,173,174,175],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},{"categoryNo":127,"categoryName":128,"taxonomyType":98,"taxonomyTypeDesc":99},[177,86,178,179,180,181,116,36,29,182,183,184,185],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":194,"publishedAt":41},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[192,193],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":127,"categoryName":128,"taxonomyType":98,"taxonomyTypeDesc":99},[195,86,196,105,197,183,36,178,181,29,184],"Rules","writing rules","project rules"]