LangGraph API¶
LangGraph agent builders over the shared sqldbagent services.
- sqldbagent.adapters.langgraph.agent.create_sqldbagent_agent(*, services, model, datasource_name, settings=None, schema_name=None, checkpointer=None, store=None, middleware=(), include_default_middleware=True, interrupt_before=None, interrupt_after=None, debug=False)[source]¶
Create a LangChain v1 agent compiled on LangGraph.
- Parameters:
services (
ServiceContainer) – Shared sqldbagent service container.model (
str|Any) – LangChain-compatible model instance or model identifier.datasource_name (
str) – Datasource identifier.settings (
AppSettings|None, default:None) – Optional application settings.schema_name (
str|None, default:None) – Optional schema focus.checkpointer (
Any|None, default:None) – Optional LangGraph checkpointer.store (
Any|None, default:None) – Optional LangGraph long-term memory store.middleware (
Sequence[Any], default:()) – Optional additional LangChain middleware chain.include_default_middleware (
bool, default:True) – Whether to prepend sqldbagent’s default middleware.interrupt_before (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.interrupt_after (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.debug (
bool, default:False) – Whether LangGraph debug mode should be enabled.
- Returns:
Compiled LangGraph agent.
- Return type:
- sqldbagent.adapters.langgraph.agent.create_sync_postgres_checkpointed_agent(*, services, model, datasource_name, settings=None, schema_name=None, middleware=(), include_default_middleware=True, interrupt_before=None, interrupt_after=None, debug=False)[source]¶
Create a sync LangGraph agent with Postgres-backed checkpointing.
- Parameters:
services (
ServiceContainer) – Shared sqldbagent service container.model (
str|Any) – LangChain-compatible model instance or model identifier.datasource_name (
str) – Datasource identifier.settings (
AppSettings|None, default:None) – Optional application settings.schema_name (
str|None, default:None) – Optional schema focus.middleware (
Sequence[Any], default:()) – Optional additional LangChain middleware chain.include_default_middleware (
bool, default:True) – Whether to prepend sqldbagent’s default middleware.interrupt_before (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.interrupt_after (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.debug (
bool, default:False) – Whether LangGraph debug mode should be enabled.
- Yields:
Any – Compiled LangGraph agent.
- Return type:
- sqldbagent.adapters.langgraph.agent.create_async_postgres_checkpointed_agent(*, services, model, datasource_name, settings=None, schema_name=None, middleware=(), include_default_middleware=True, interrupt_before=None, interrupt_after=None, debug=False)[source]¶
Create an async LangGraph agent with Postgres-backed checkpointing.
- Parameters:
services (
ServiceContainer) – Shared sqldbagent service container.model (
str|Any) – LangChain-compatible model instance or model identifier.datasource_name (
str) – Datasource identifier.settings (
AppSettings|None, default:None) – Optional application settings.schema_name (
str|None, default:None) – Optional schema focus.middleware (
Sequence[Any], default:()) – Optional additional LangChain middleware chain.include_default_middleware (
bool, default:True) – Whether to prepend sqldbagent’s default middleware.interrupt_before (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.interrupt_after (
list[str] |None, default:None) – Optional LangGraph interrupt hook points.debug (
bool, default:False) – Whether LangGraph debug mode should be enabled.
- Yields:
Any – Compiled LangGraph agent.
- Return type:
LangChain v1 middleware builders for sqldbagent agents.
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_middleware(*, datasource_name, settings=None, schema_name=None, services=None)[source]¶
Build the default middleware stack for sqldbagent agents.
The middleware stack is where LangChain v1’s
create_agent(...)contract becomes repo-specific. We use it for:dynamic prompt injection from stored snapshots
bounded model and tool call loops
structured tool error responses instead of raw exceptions
- Parameters:
datasource_name (
str) – Datasource identifier.settings (
AppSettings|None, default:None) – Optional application settings.schema_name (
str|None, default:None) – Optional schema focus.services (
ServiceContainer|None, default:None)
- Returns:
LangChain middleware instances in execution order.
- Return type:
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_state_middleware(*, datasource_name, settings=None, schema_name=None, services=None)[source]¶
Seed agent state with snapshot and dashboard-oriented context.
- Parameters:
datasource_name (
str) – Datasource identifier.settings (
AppSettings|None, default:None) – Optional application settings.schema_name (
str|None, default:None) – Optional schema focus.services (
ServiceContainer|None, default:None) – Optional shared services for first-run snapshot bootstrap.
- Returns:
LangChain middleware instance created via
@before_agent.- Return type:
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_dynamic_prompt_middleware(*, datasource_name, settings=None, schema_name=None)[source]¶
Create dynamic prompt middleware over stored snapshot context.
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_tool_error_middleware()[source]¶
Create tool middleware that converts tool exceptions into ToolMessages.
- Returns:
LangChain middleware instance created via
@wrap_tool_call.- Return type:
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_tool_digest_middleware(*, settings=None)[source]¶
Create middleware that compresses tool-call outputs into digest state.
- Parameters:
settings (
AppSettings|None, default:None) – Optional application settings.- Returns:
LangChain middleware instance created via
@after_agent.- Return type:
- sqldbagent.adapters.langgraph.middleware.create_sqldbagent_summarization_middleware(*, settings=None)[source]¶
Create context summarization middleware when configured.
- Parameters:
settings (
AppSettings|None, default:None) – Optional application settings.- Returns:
LangChain summarization middleware when configured.
- Return type:
LangSmith tracing helpers for LangGraph-backed surfaces.
- sqldbagent.adapters.langgraph.observability.is_langsmith_tracing_enabled(settings=None)[source]¶
Return whether LangSmith tracing is enabled and configured.
- Parameters:
settings (
AppSettings|None, default:None) – Optional application settings.- Returns:
Truewhen tracing is enabled and an API key is available.- Return type:
- sqldbagent.adapters.langgraph.observability.create_langsmith_client(settings=None)[source]¶
Create a LangSmith client when tracing is configured.
- Parameters:
settings (
AppSettings|None, default:None) – Optional application settings.- Returns:
LangSmith client instance, or
Nonewhen tracing is disabled.- Return type:
- sqldbagent.adapters.langgraph.observability.build_langsmith_metadata(*, surface, datasource_name, schema_name=None, thread_id=None, operation=None)[source]¶
Build standard LangSmith trace metadata for sqldbagent surfaces.
- Parameters:
surface (
str) – Calling surface name such asdashboardorruntime.datasource_name (
str) – Datasource identifier for the active run.schema_name (
str|None, default:None) – Optional schema focus.thread_id (
str|None, default:None) – Optional thread identifier.operation (
str|None, default:None) – Optional operation label.
- Returns:
Trace metadata payload.
- Return type:
- sqldbagent.adapters.langgraph.observability.langsmith_tracing_context(*, settings=None, tags=(), metadata=None)[source]¶
Apply a LangSmith tracing context around a surface operation.
- Parameters:
- Yields:
None – Control returns to the wrapped operation.
- Return type:
Iterator[None]
Runtime Entry Point¶
The LangGraph runtime entrypoint used by langgraph.json lives in sqldbagent.adapters.langgraph.runtime. It intentionally exposes a module-level agent object for LangGraph CLI and SDK loading, so the docs keep that module descriptive rather than importing it through autodoc.