langchain-architecture は何をしますか?
LangChain 1.x と LangGraph を使用して、エージェント、メモリ、ツール統合を備えたLLMアプリケーションを設計します。LangChainアプリケーションの構築、AIエージェントの実装、または複雑なLLMワークフローの作成時に使用します。
概要
このスキルは、LangChain 1.x と LangGraph を用いたLLMアプリケーションの設計と実装を支援します。主な機能は以下の通りです:
- エージェント設計: 動的なツール選択と実行が可能なAIエージェントの構築方法
- メモリ管理: 会話履歴や状態を保持するメモリシステムの設計
- ツール統合: 外部APIやデータベースなどのツールとの連携方法
- ワークフロー設計: LangGraphを使用した複雑なマルチステップワークフローの定義
対象プラットフォーム
- Claude Code
- Cursor
- Codex
- その他LangChain対応AIエージェント
使用方法
1. 基本設計
from langchain import LLMChain, PromptTemplate
from langchain.memory import ConversationBufferMemory
from langchain.agents import AgentExecutor, Tool, create_react_agent
from langchain.tools import tool
# メモリを備えた基本的なチェーン
memory = ConversationBufferMemory()
prompt = PromptTemplate(
input_variables=["input", "history"],
template="""会話履歴:{history}
ユーザー入力:{input}
AI応答:"""
)
chain = LLMChain(llm=llm, prompt=prompt, memory=memory)
2. LangGraphワークフロー
from langgraph.graph import StateGraph, END
class AgentState(TypedDict):
messages: list
next_step: str
# 状態を管理するグラフを定義
workflow = StateGraph(AgentState)
workflow.add_node("agent", agent_node)
workflow.add_node("tools", tool_node)
workflow.set_entry_point("agent")
workflow.add_conditional_edges(
"agent",
should_continue,
{
"continue": "tools",
"end": END
}
)
3. ツール定義
@tool
def search_database(query: str) -> str:
"""データベースを検索して結果を返す"""
# 実装詳細
return results
ベストプラクティス
- メモリは必要最小限に保ち、長期記憶には外部ストレージを検討
- エージェントのツール選択は明確な名称と説明で最適化
- LangGraphでは状態遷移を明確に定義し、デバッグ可能性を確保
- エラーハンドリングとリトライロジックを組み込む