MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Langchain-Python

Langchain-Python是一款code方向的AI技能,核心价值是Instructions for using LangChain with Python,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Instructions for using LangChain with Python

Last verified on: 2026-05-30
mkdir -p ./skills/langchain-python && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/langchain-python/SKILL.md -o ./skills/langchain-python/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# LangChain Python Instructions


These instructions guide GitHub Copilot in generating code and documentation for LangChain applications in Python. Focus on LangChain-specific patterns, APIs, and best practices.


Runnable Interface (LangChain-specific)


LangChain's `Runnable` interface is the foundation for composing and executing chains, chat models, output parsers, retrievers, and LangGraph graphs. It provides a unified API for invoking, batching, streaming, inspecting, and composing components.


**Key LangChain-specific features:**


- All major LangChain components (chat models, output parsers, retrievers, graphs) implement the Runnable interface.

- Supports synchronous (`invoke`, `batch`, `stream`) and asynchronous (`ainvoke`, `abatch`, `astream`) execution.

- Batching (`batch`, `batch_as_completed`) is optimized for parallel API calls; set `max_concurrency` in `RunnableConfig` to control parallelism.

- Streaming APIs (`stream`, `astream`, `astream_events`) yield outputs as they are produced, critical for responsive LLM apps.

- Input/output types are component-specific (e.g., chat models accept messages, retrievers accept strings, output parsers accept model outputs).

- Inspect schemas with `get_input_schema`, `get_output_schema`, and their JSONSchema variants for validation and OpenAPI generation.

- Use `with_types` to override inferred input/output types for complex LCEL chains.

- Compose Runnables declaratively with LCEL: `chain = prompt | chat_model | output_parser`.

- Propagate `RunnableConfig` (tags, metadata, callbacks, concurrency) automatically in Python 3.11+; manually in async code for Python 3.9/3.10.

- Create custom runnables with `RunnableLambda` (simple transforms) or `RunnableGenerator` (streaming transforms); avoid subclassing directly.

- Configure runtime attributes and alternatives with `configurable_fields` and `configurable_alternatives` for dynamic chains and LangServe deployments.


**LangChain best practices:**


- Use batching for parallel API calls to LLMs or retrievers; set `max_concurrency` to avoid rate limits.

- Prefer streaming APIs for chat UIs and long outputs.

- Always validate input/output schemas for custom chains and deployed endpoints.

- Use tags and metadata in `RunnableConfig` for tracing in LangSmith and debugging complex chains.

- For custom logic, wrap functions with `RunnableLambda` or `RunnableGenerator` instead of subclassing.

- For advanced configuration, expose fields and alternatives via `configurable_fields` and `configurable_alternatives`.



- Use LangChain's chat model integrations for conversational AI:


- Import from `langchain.chat_models` or `langchain_openai` (e.g., `ChatOpenAI`).

- Compose messages using `SystemMessage`, `HumanMessage`, `AIMessage`.

- For tool calling, use `bind_tools(tools)` method.

- For structured outputs, use `with_structured_output(schema)`.


Example:

python
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage

chat = ChatOpenAI(model="gpt-4", temperature=0)
messages = [
    SystemMessage(content="You are a helpful assistant."),
    HumanMessage(content="What is LangChain?")
]
response = chat.invoke(messages)
print(response.content)

- Compose messages as a list of `SystemMessage`, `HumanMessage`, and optionally `AIMessage` objects.

- For RAG, combine chat models with retrievers/vectorstores for context injection.

- Use `streaming=True` for real-time token streaming (if supported).

- Use `tools` argument for function/tool calling (OpenAI, Anthropic, etc.).

- Use `response_format="json"` for structured outputs (OpenAI models).


Best practices:


- Always validate model outputs before using them in downstream tasks.

- Prefer explicit message types for clarity and reliability.

- For Copilot, provide clear, actionable prompts and document expected outputs.




- LLM client factory: centralize provider configs (API keys), timeouts, retries, and telemetry. Provide a single place to switch providers or

🎯 Best For

  • Claude users
  • GitHub Copilot users
  • Software engineers
  • Development teams
  • Tech leads

💡 Use Cases

  • Python code quality enforcement
  • Dependency management

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Langchain-Python to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Is Langchain-Python compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Langchain-Python?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Langchain-Python?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/langchain-python/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills