langchain-langgraph-coding-assistant

LangChain & LangGraph 编程助手

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "langchain-langgraph-coding-assistant" with this command: npx skills add 5zjk5/prompt-engineering/5zjk5-prompt-engineering-langchain-langgraph-coding-assistant

LangChain & LangGraph 编程助手

描述

本技能提供LangChain和LangGraph框架的编程辅助功能。当用户需要编写相关代码时,智能体将根据用户需求,参考resources文件夹中的示例代码,协助用户完成编码工作。resources文件夹包含了丰富的示例代码,涵盖RAG、Agent、工作流、工具定义、中间件、大模型调用等多个功能模块。

使用场景

当用户明确要求使用LangChain或LangGraph框架时,触发此技能:

  • 明确提到使用LangChain编写代码

  • 明确提到使用LangGraph编写代码

  • 明确要求使用LangChain的API(如文档加载器、向量存储、工具等)

  • 明确要求使用LangGraph的API(如StateGraph、函数式API、图API等)

  • 要求参考resources文件夹中的LangChain/LangGraph示例代码

  • 提到使用LangChain的特定功能(如Agent、RAG、中间件等)并暗示使用该框架

  • 提到使用LangGraph的特定功能(如工作流、子图、中断等)并暗示使用该框架

指令

  1. 需求分析
  • 仔细分析用户的具体需求,确定需要实现的功能模块

  • 识别用户使用的技术栈(LangChain、LangGraph或两者结合)

  • 确定需要参考的示例代码所在的resources子目录

  1. 查找相关示例

根据用户需求,在resources文件夹中查找对应的示例代码:

RAG相关需求

  • 文档加载:resources/RAG/document_loaders.py

  • 文本分割:resources/RAG/splitters.py

  • 向量存储:resources/RAG/vectorstores_retrievers.py

Agent相关需求

  • Agent创建:resources/agent/create_agent.py

  • 中间件实现:resources/agent/middleware.py

  • 自定义模型:resources/agent/ChatOpenAIModel_LangChian.py

工作流相关需求

  • 函数式API:resources/functional(workflow)_api/

  • 图API:resources/graph-api/

  • 工作流对比:resources/工作流_图_对比/

  • 链式提示:chain_prompt_graph.py / chain_prompt_workflow.py

  • 评估器-优化器:evaluator_optimizer_graph.py / evaluator_optimizer_workflow.py

  • 并行化:parallelization_graph.py / parallelization_workflow.py

  • 计划器-工作者:planner_worker_graph.py / planner_worker_workflow.py

  • ReAct智能体:react_agent_graph.py / react_agent_workflow.py

  • 路由工作流:routing_graph.py / routing_workflow.py

工具定义相关需求

  • 基本工具定义:resources/工具定义/tool_define.py

  • Command工具:resources/工具定义/tool_command.py

  • 内存存储:resources/工具定义/tool_memery_store.py

  • 运行时上下文:resources/工具定义/tool_runtime_context.py

  • 流式写入:resources/工具定义/tool_stream_writer.py

中间件相关需求

  • 基于类的中间件:resources/中间件/class_based_middleware.py

  • 基于装饰器的中间件:resources/中间件/decorator_based_middleware.py

  • 上下文编辑:resources/中间件/context_editing.py

  • 人工审核:resources/中间件/human_in_the_loop.py

  • LLM工具选择:resources/中间件/llm_tool_selector.py

  • 模型调用限制:resources/中间件/model_call_limit.py

  • 模型回退:resources/中间件/model_fallback.py

  • PII检测:resources/中间件/pii_detection.py

  • 规划:resources/中间件/planning.py

  • 摘要:resources/中间件/summary.py

  • 工具调用限制:resources/中间件/tool_call_limit.py

  • 工具重试:resources/中间件/tool_retry.py

大模型调用相关需求

  • OpenAI兼容模型:resources/大模型调用/ChatOpenAIModel_LangChian.py

  • Azure OpenAI:resources/大模型调用/Azure.py

  • Gemini:resources/大模型调用/Gemini.py

  • OpenAI官方API:resources/大模型调用/OpanAI.py

Embedding相关需求

  • 本地Embedding:resources/embedding模型调用/local_embedding.py

  • 云端Embedding:resources/embedding模型调用/cloud_embedding.py

  • OpenAI兼容Embedding:resources/embedding模型调用/opanai_embedding.py

上下文工程相关需求

  • 消息管理:resources/上下文工程/messages.py

  • 系统提示:resources/上下文工程/system_prompt.py

子图相关需求

  • 状态共享:resources/子图/share_state.py

  • 多级子图:resources/子图/father_son_grandson_noShareState.py

  • 持久化:resources/子图/add_persistence.py

LangGraph中断相关需求

  • 审批或拒绝:resources/langgraph中断/approve_or_reject.py

  • 工具中的中断:resources/langgraph中断/interrupts_in_tools.py

  • 审查和编辑状态:resources/langgraph中断/review_and_edit_state.py

  • 验证人工输入:resources/langgraph中断/validating_human_input.py

时间旅行相关需求

  • 时间旅行功能:resources/时间旅行/use_time_travel.py

MCP相关需求

  • 调用本地工具:resources/MCP/调用本地工具/

  • 调用远程MCP服务:resources/MCP/调用远程mcp服务/

完整案例参考

  • 计算器Agent:resources/案例/Calculator_Agent/

  • 深度研究:resources/案例/Deep_Research/

  • RAG Agent:resources/案例/RAG_Agent/

  1. 代码实现
  • 阅读相关示例代码的readme.md文件(如果存在),理解功能和使用方法

  • 参考示例代码的实现方式和代码结构

  • 根据用户的具体需求,编写符合要求的代码

  • 确保代码风格与示例代码保持一致

  • 如需要使用自定义模型,参考ChatOpenAIModel_LangChian.py的实现

  1. 必要导入(重要)

在编写代码时,必须确保包含所有必要的导入语句。以下是常用导入说明:

通用基础导入

  • typing: TypedDict, List, Any, Dict, Optional

  • typing_extensions: TypedDict(用于更复杂的类型定义)

LangChain核心导入

  • langchain_core.messages: AIMessage, HumanMessage, SystemMessage, ToolMessage

  • langchain_core.prompts: ChatPromptTemplate

  • langchain_core.output_parsers: StrOutputParser

  • langchain_core.runnables: RunnablePassthrough

  • langchain.tools: tool

  • langchain.agents: create_agent

LangGraph图API导入

  • langgraph.graph: StateGraph, START, END, MessagesState

  • langgraph.graph.message: add_messages

  • langgraph.checkpoint.memory: InMemorySaver

  • langgraph.types: interrupt

LangGraph函数式API导入

  • langgraph.func: entrypoint, task

LangChain Agent中间件导入

  • langchain.agents.middleware: before_model, after_model, wrap_model_call, wrap_tool_call, AgentState, ModelRequest, ModelResponse, dynamic_prompt

  • langgraph.runtime: Runtime

LangChain文档加载器导入

  • langchain_community.document_loaders.csv_loader: CSVLoader

  • langchain_community.document_loaders: JSONLoader, BSHTMLLoader

  • langchain_docling.loader: DoclingLoader

LangChain文本分割器导入

  • langchain_text_splitters: RecursiveCharacterTextSplitter, CharacterTextSplitter, MarkdownHeaderTextSplitter, RecursiveJsonSplitter

LangChain向量存储导入

  • langchain_chroma: Chroma

  • langchain_core.vectorstores: VectorStore

  • langchain_core.embeddings: Embeddings

LangChain Embedding导入

  • langchain_openai: OpenAIEmbeddings

  • langchain_community.embeddings: HuggingFaceEmbeddings

LangChain模型导入

  • langchain_openai: ChatOpenAI

  • langchain_azure_chat_models: AzureChatOpenAI

  • langchain_google_genai: ChatGoogleGenerativeAI

LangChain RAG导入

  • langchain.chains: RetrievalQA

  • langchain_core.runnables: RunnablePassthrough

自定义模型导入

  • ChatOpenAIModel_LangChian: ChatOpenAIModel(如果使用resources中的自定义模型)

可视化导入

  • IPython.display: Image, display

其他常用导入

  • asyncio, uuid, time, os, pathlib.Path

导入注意事项

  • 在提供代码时,必须包含所有使用的导入语句

  • 如果代码中使用了某个类或函数,必须在导入部分包含对应的导入

  • 对于自定义的类或函数,需要明确说明其来源或提供完整定义

  • 建议将导入语句按照功能分组,便于阅读和维护

  • 如果使用了第三方库,需要提醒用户安装相应的依赖包

  1. 代码说明
  • 提供清晰的代码注释,说明关键逻辑

  • 解释代码的工作原理和使用方法

  • 指出代码中使用的LangChain/LangGraph核心概念和API

  • 如涉及复杂功能,提供使用示例

  1. 注意事项
  • 不要修改resources文件夹中的任何示例代码

  • 参考示例代码时,理解其设计思路和实现方式

  • 根据用户实际需求进行适配和调整

  • 确保代码的正确性和可运行性

  • 如涉及API密钥等敏感信息,提醒用户自行配置

常见错误及解决方案

缺少导入语句

  • 错误:NameError: name 'AIMessage' is not defined

  • 解决:确保导入了 from langchain_core.messages import AIMessage, HumanMessage, SystemMessage, ToolMessage

缺少类型定义

  • 错误:NameError: name 'TypedDict' is not defined

  • 解决:确保导入了 from typing import TypedDict 或 from typing_extensions import TypedDict

缺少工具装饰器

  • 错误:工具函数无法被识别

  • 解决:确保导入了 from langchain.tools import tool 并使用 @tool 装饰器

缺少状态定义

  • 错误:NameError: name 'State' is not defined

  • 解决:确保定义了状态类,例如 class State(TypedDict): ...

缺少图API导入

  • 错误:NameError: name 'StateGraph' is not defined

  • 解决:确保导入了 from langgraph.graph import StateGraph, START, END

缺少中间件导入

  • 错误:NameError: name 'before_model' is not defined

  • 解决:确保导入了 from langchain.agents.middleware import before_model, after_model, ...

自定义模型未导入

  • 错误:ModuleNotFoundError: No module named 'ChatOpenAIModel_LangChian'

  • 解决:确保自定义模型文件在正确路径,或提供完整的模型实现代码

第三方库未安装

  • 错误:ModuleNotFoundError: No module named 'langchain_chroma'

  • 解决:提醒用户安装相应的依赖包,例如 pip install langchain-chroma

代码质量保证

  • 在提供代码前,检查所有导入是否完整

  • 确保所有使用的类和函数都有对应的导入

  • 对于自定义的类或函数,提供完整的实现或明确说明来源

  • 建议用户在运行代码前安装必要的依赖包

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review
General

prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review