langchain-development — скилл для Claude Code: LangChain и LangGraph
Задаёт агенту правила разработки на LangChain и LangGraph: композиция цепочек, агенты, память, RAG. Пригодится, когда проект на Python растёт и код надо держать в одном стиле.
npx skills add Mindrally/skills --skill langchain-development -a claude-codeЧто делает langchain-development
Скилл превращает ассистента в эксперта по LangChain, LangGraph и приложениям на LLM с Python. Он требует писать короткие технические ответы с рабочими примерами на Python, держаться функционального и декларативного стиля и обходиться без классов там, где можно. Имена переменных — описательные, с вспомогательными глаголами вроде is_active или has_context, стиль — строго PEP 8.
Внутри — набор правил по структуре проекта и по ключевым частям стека. Код раскладывается по папкам chains/, agents/, tools/, memory/, prompts/, retrievers/, callbacks/, utils/, tests/ и config/. Для композиции цепочек скилл настаивает на LCEL с оператором |, для одиночных вызовов — invoke(), для пачки входов — batch(), для потоковой выдачи — stream(). Отдельные блоки посвящены инструментам через декоратор @tool со схемой на Pydantic, памяти разговора, состоянию LangGraph на TypedDict с редьюсерами и чекпоинтами, а также RAG: сплиттеры, размер чанка с перекрытием, векторные хранилища, multi-query и реранкинг.
Есть разделы про LangSmith, обработку ошибок и тесты. Трассировка включается переменной LANGCHAIN_TRACING_V2=true, для критичных путей предлагаются fallback-цепочки, для I/O — асинхронные методы ainvoke и abatch. Скилл рассчитывает на установленные langchain, langchain-core, langchain-community, langgraph, langsmith, python-dotenv и pydantic — без них примеры из правил просто не запустятся.
Какие задачи решает
- собрать цепочку из ретривера, промпта и модели через LCEL
- описать инструмент агента со схемой аргументов на Pydantic
- вынести состояние графа LangGraph в TypedDict с редьюсерами
- настроить разбиение документов на чанки с перекрытием для RAG
- включить трассировку LangSmith и разложить код по модулям
Примеры запросов агенту
- Собери retrieval-цепочку на LCEL: ретривер, промпт, модель, парсер вывода
- Опиши инструмент поиска по базе через @tool со схемой на Pydantic
- Задай состояние агента в LangGraph через TypedDict и добавь чекпоинты
Как установить langchain-development
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill langchain-development -a claude-code2Вручную: положить файлы
~/.claude/skills/langchain-development/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/langchain-development/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill langchain-development -a codex2Вручную: положить файлы
.agents/skills/langchain-development/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill langchain-development -a cursor2Вручную: положить файлы
.cursor/skills/langchain-development/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills langchain-development2Вручную: положить файлы
.github/skills/langchain-development/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill langchain-development -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path langchain-developmentВручную: положить файлы
.devin/skills/langchain-development/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill langchain-development -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о langchain-development
Как установить langchain-development в Claude?
Выполните npx skills add Mindrally/skills --skill langchain-development -a claude-code. Файл скилла окажется в ~/.claude/skills/langchain-development/SKILL.md.
Что делает langchain-development?
Даёт агенту правила разработки на LangChain и LangGraph с Python: композиция цепочек, агенты и инструменты, память, состояние графа, RAG, трассировка и тесты.
Что нужно для работы скилла?
Правила опираются на пакеты langchain, langchain-core, langchain-community, langgraph, langsmith, python-dotenv и pydantic. Без них примеры из скилла не запустятся.
Исходный текст
SKILL.md · Apache-2.0
---
name: langchain-development
description: Expert guidance for LangChain and LangGraph development with Python, covering chain composition, agents, memory, and RAG implementations.
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# LangChain Development
You are an expert in LangChain, LangGraph, and building LLM-powered applications with Python.
## Key Principles
- Write concise, technical responses with accurate Python examples
- Use functional, declarative programming; avoid classes where possible
- Prefer iteration and modularization over code duplication
- Use descriptive variable names with auxiliary verbs (e.g., is_active, has_context)
- Follow PEP 8 style guidelines strictly
## Code Organization
### Directory Structure
Organize code into logical modules based on functionality:
```
project/
├── chains/ # LangChain chain definitions
├── agents/ # Agent configurations and tools
├── tools/ # Custom tool implementations
├── memory/ # Memory and state management
├── prompts/ # Prompt templates and management
├── retrievers/ # RAG and retrieval components
├── callbacks/ # Custom callback handlers
├── utils/ # Utility functions
├── tests/ # Test files
└── config/ # Configuration files
```
### Naming Conventions
- Use snake_case for files, functions, and variables
- Use PascalCase for classes
- Prefix private functions with underscore
- Use descriptive names that indicate purpose (e.g., `create_retrieval_chain`, `build_agent_executor`)
## LangChain Expression Language (LCEL)
### Chain Composition
- Use LCEL for composing chains with the pipe operator (`|`)
- Prefer `RunnableSequence` and `RunnableParallel` for complex workflows
- Implement proper error handling with `RunnableLambda`
```python
from langchain_core.runnables import RunnableParallel, RunnablePassthrough
chain = (
RunnableParallel(
context=retriever,
question=RunnablePassthrough()
)
| prompt
| llm
| output_parser
)
```
### Best Practices
- Always use `invoke()` for single inputs, `batch()` for multiple inputs
- Use `stream()` for real-time token streaming
- Implement `with_config()` for runtime configuration
- Use `bind()` to attach tools or functions to runnables
## Agents and Tools
### Tool Development
- Define tools using the `@tool` decorator with clear docstrings
- Include type hints for all tool parameters
- Implement proper input validation
- Return structured outputs when possible
```python
from langchain_core.tools import tool
from pydantic import BaseModel, Field
class SearchInput(BaseModel):
query: str = Field(description="Search query string")
@tool(args_schema=SearchInput)
def search_database(query: str) -> str:
"""Search the database for relevant information."""
# Implementation
return results
```
### Agent Configuration
- Use `create_react_agent` or `create_tool_calling_agent` based on model capabilities
- Implement proper agent executors with max iterations
- Add callbacks for monitoring and debugging
- Use structured chat agents for complex tool interactions
## Memory and State Management
### Conversation Memory
- Use `ConversationBufferMemory` for short conversations
- Implement `ConversationSummaryMemory` for long conversations
- Consider `ConversationBufferWindowMemory` for fixed-length history
- Use persistent storage backends for production (Redis, PostgreSQL)
### LangGraph State
- Define explicit state schemas using TypedDict
- Implement proper state reducers for complex state updates
- Use checkpointing for resumable workflows
- Handle state persistence across sessions
```python
from typing import TypedDict, Annotated
from langgraph.graph import StateGraph
from operator import add
class AgentState(TypedDict):
messages: Annotated[list, add]
context: str
next_step: str
graph = StateGraph(AgentState)
```
## RAG (Retrieval-Augmented Generation)
### Document Processing
- Use appropriate text splitters (RecursiveCharacterTextSplitter, MarkdownTextSplitter)
- Implement proper chunk sizing with overlap
- Preserve metadata during splitting
- Use document loaders appropriate for file types
### Vector Stores
- Choose vector stores based on scale requirements
- Implement proper embedding caching
- Use hybrid search when available (dense + sparse)
- Configure appropriate similarity metrics
### Retrieval Strategies
- Implement multi-query retrieval for complex questions
- Use contextual compression to reduce noise
- Consider parent document retrieval for better context
- Implement re-ranking for improved relevance
## LangSmith Integration
### Monitoring
- Enable tracing with `LANGCHAIN_TRACING_V2=true`
- Add run names for easy identification
- Implement custom metadata for filtering
- Use tags for categorization
### Debugging
- Review traces for performance bottlenecks
- Analyze token usage patterns
- Monitor latency across chain components
- Set up alerts for error rates
## Error Handling
- Implement retry logic with exponential backoff
- Handle rate limits from LLM providers gracefully
- Use fallback chains for critical paths
- Log errors with sufficient context
```python
from langchain_core.runnables import RunnableWithFallbacks
chain_with_fallback = primary_chain.with_fallbacks(
[fallback_chain],
exceptions_to_handle=(RateLimitError, TimeoutError)
)
```
## Performance Optimization
- Use async methods (`ainvoke`, `abatch`) for I/O-bound operations
- Implement caching for expensive operations
- Batch requests when possible
- Use streaming for better user experience
## Testing
- Write unit tests for individual chain components
- Implement integration tests for full chains
- Use mocking for LLM calls in unit tests
- Test edge cases and error conditions
## Dependencies
- langchain
- langchain-core
- langchain-community
- langgraph
- langsmith
- python-dotenv
- pydantic
© Mindrally · Apache-2.0 · Mindrally/skills