LangChain
Installation
SKILL.md
LCEL Basics
|pipes output to next —prompt | llm | parserRunnablePassthrough()forwards input unchanged — use in parallel branchesRunnableParallelruns branches concurrently —{"a": chain1, "b": chain2}.invoke()for single,.batch()for multiple,.stream()for tokens- Input must match expected keys —
{"question": x}not justxif prompt expects{question}
Memory Gotchas
- Memory doesn't auto-persist between sessions — save/load explicitly
ConversationBufferMemorygrows unbounded — useConversationSummaryMemoryfor long chats- Memory key must match prompt variable —
memory_key="chat_history"needs{chat_history}in prompt return_messages=Truefor chat models —Falsereturns string for completion models
RAG Chunking
- Chunk size affects retrieval quality — too small loses context, too large dilutes relevance
- Chunk overlap prevents cutting mid-sentence — 10-20% overlap typical
RecursiveCharacterTextSplitterpreserves structure — splits on paragraphs, then sentences- Embedding dimension must match vector store — mixing models causes silent failures