API、Agent、Embedding、RAGまで学ぶと、同じ部品が何度も出てくることに気づきます。
- ModelをCallする
- Promptを組み立てる
- Toolを実行する
- DocumentをRetrieveする
- Stateを保持する
- 前の結果を次のStepへ渡す
LangChainは、こうしたLanguage Model Applicationの部品を組み合わせるためのFrameworkです。
LangChain自体がLLMではありません。
標準Connectorで考える
Audio機器を組むとき、毎回Wireを自作する代わりに標準CableやAdapterを使えます。
Frameworkも似ています。
Common Interfaceを用意し、複数のComponentを組み合わせるBoilerplateを減らします。
便利な一方、Abstractionが増えると内部のDetailが見えにくくなります。
どんなComponentがある?
VersionによってAPIは変わりますが、概念としては、
- Model / Provider Wrapper
- Prompt Template
- Tool
- Document Loader
- Text Splitter
- Retriever
- Vector Store
- Structured Output
- Agent / Workflow
- Tracing / Evaluation
などがあります。
特定VersionのClass名を丸暗記するより、この役割を理解する方が長く使えます。
FrameworkがModelを賢くするわけではない
Underlying ModelがTaskを解けなければ、Frameworkで包んでもModel Capabilityは増えません。
Retrieverが悪ければ、ConvenientなClassを使ってもRetrievalは悪いままです。
LangChainの中心はComponentのIntegrationとOrchestrationです。
RAGとの関係
第023回のRAGでは、
- Document Load
- Chunk
- Embedding
- Vector Store
- Retrieve
- PromptへContextを追加
- Model Call
- Source付きAnswer
という複数Stepがあります。
Frameworkを使うと、各StepのInterfaceやIntegrationを再利用できます。
Agentとの関係
第020回のAgentでは、Tool、Model Call、State Transitionが必要です。
FrameworkはTool SchemaやOrchestrationを共通化できます。
複雑なStateful Workflowでは、Graph型のWorkflow Toolを使うこともあります。
Beginnerはいつ使う?
次のような場合に便利です。
- 複数Providerを切り替えたい
- RAGやTool Pipelineがある
- Built-in Integrationが大量の作業を減らす
- TraceやEvaluationを一緒に扱いたい
逆に、一回APIをCallするだけなら、Provider SDKを直接使った方がCodeもErrorも分かりやすい場合があります。
AbstractionにはCostがある
FrameworkのVersionが変わればAPI名も変わります。
Errorが何Layerも下から出てくることもあります。
だからこそ、HTTP API、Prompt、Tool Schema、Retrieval、Stateといった下のConceptを理解しておくことが重要です。
今日の一文
LangChainはLLMを作るModelではなく、LLM Applicationでよく使うModel、Tool、Retrieval、StateなどをつなぐFrameworkです。
次の第033回では、CursorやCodexのようなAI Coding Toolを見ます。
コメント
質問、感想、補足したいことがあれば、ここに残せます。
まだコメントはありません。1Fになってみませんか。