LangChain Agent API
create_agent() 完全なパラメータ
| パラメータ | 型 | デフォルト値 | 説明 |
|---|---|---|---|
| model | str または BaseChatModel | なし(必須) | 言語モデル |
| tools | Sequence または None | None | ツールリスト。@tool 関数、Pydantic モデル、dict をサポート |
| system_prompt | str または SystemMessage または None | None | システムプロンプト |
| middleware | Sequence[AgentMiddleware] | () | ミドルウェアリスト |
| response_format | ResponseFormat または type または dict または None | None | 構造化出力設定 |
| state_schema | type[AgentState] または None | None | カスタム状態構造 |
| context_schema | type または None | None | ランタイムコンテキスト構造 |
| checkpointer | Checkpointer または None | None | 会話の永続化 |
| store | BaseStore または None | None | セッション間ストレージ |
| interrupt_before | list[str] または None | None | これらのノードの前に一時停止 |
| interrupt_after | list[str] または None | None | これらのノードの後に一時停止 |
| debug | bool | False | 詳細ログを出力するかどうか |
| name | str または None | None | Agent 名 |
| cache | BaseCache または None | None | キャッシュ設定 |
CompiledStateGraph メソッド
| メソッド | 説明 |
|---|---|
| invoke(input, config=None) | 同期実行し、最終状態を返す |
| ainvoke(input, config=None) | 非同期実行し、最終状態を返す |
| stream(input, config=None, stream_mode="updates") | 同期ストリーミング実行 |
| astream(input, config=None, stream_mode="updates") | 非同期ストリーミング実行 |
| get_state(config) | 現在の状態スナップショットを取得 |
| update_state(config, values) | 状態を手動で更新 |
AgentState 構造
| フィールド | 型 | 必須かどうか | 説明 |
|---|---|---|---|
| messages | list[AnyMessage] | である | メッセージ履歴(add_messages reducer) |
| jump_to | "tools" または "model" または "end" または None | 否 | フロー遷移(ephemeral) |
| structured_response | Any | 否 | 構造化出力結果(OmitFromInput) |
一般的な使用例
実例
from langchain.agents import create_agent
# 基本的な使い方
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="こんにちは")]})
# 完全な設定
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="あなたはアシスタントです。",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# ストリーミング実行
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# 状態の取得
state = agent.get_state({"configurable": {"thread_id": "1"}})
# 基本的な使い方
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="こんにちは")]})
# 完全な設定
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="あなたはアシスタントです。",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# ストリーミング実行
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# 状態の取得
state = agent.get_state({"configurable": {"thread_id": "1"}})