惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Recent Announcements
Recent Announcements
Vercel News
Vercel News
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
G
Google Developers Blog
罗磊的独立博客
爱范儿
爱范儿
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research

LangChain Forum - Latest topics

Seeking help regarding the connection between Websocket and tool calls Tool invocation error with empty error message when using `InjectedState` + `Command` return in async tool How to use @langchain/react FileSystem middleware Using ChatSnowflake with agents Built llmsessioncontract on AgentMiddleware: runtime enforcement of tool-call protocols — feedback wanted DeltaChannelHistory not found in langgraph-api:3.12 Improving citation accuracy and reducing hallucinations in custom Parent-Child RAG pipeline (Gemma3:4B + FAISS+BM25 + Cross-encoder reranker) Built a live autonomous AI agent network using LangGraph-style economics — looking for feedback How are you validating LangChain agent output before it executes shell commands? Cross-site pattern pool for production agent failures — looking for 5 pilot teams (open spec, CC-BY-4.0) Metadata filter not filtering for alerts Using custom MCP servers with assistants How to use tool calling using ChatLlamaCpp and Gemma 4 E4B with create_agent? CLI - No Longer Sending traces to Langsmith Connecting the Slack integration fails with invalid_team_for_non_distributed_app The Docs says open router can be used with init_chat_model but throws an error Interested to contribute to langgraph postgre checkpointer for multiple adapter support Modal Inference Trouble understanding and editing experiment summary evaluators feedbacks SSL certificate error from httpx with LangGraph server [Feature Request] Wire allowed_msgpack_modules in langgraph.json Serving an agent with the LangGraph CLI dev command Proposal: implement delete_for_runs for SQLite checkpoint savers WikipediaLoader endup in JSONDecodeError Human-in-the-loop approval dashboard for LangGraph agents — open source, free to deploy Ombre — open source security and audit layer for LangChain apps Should interrupt() be split into two primitives — one for human input, one for s2s data fetching? Unable to delete runs from annotation queue First Bedrock call after idle is slow on TTFT (follow-ups in the same trace are fast)
How should I provide an agent to a LangGraph server?
@pawel-tward · 2026-04-23 · via LangChain Forum - Latest topics
hi @wigging How to Provide an Agent to a LangGraph Server The user’s concern is valid - their global caching is necessary with a plain async factory function, because the server calls the factory for every request , including schema introspection (Studio refresh, get_graph , get_schema ), state reads, and actual execution. Without caching they’d pay the Azure OpenAI + MCP initialization cost on every introspection call. However, there’s a better, officially documented pattern. How the server loads your graph From langgraph_cli/schemas.py , the graphs field supports three forms: Module-level compiled object - imported once at server startup, never called again Async context manager factory - called per-request, receives RunnableConfig (legacy) or ServerRuntime (modern) Async function factory - same as above, but returns instead of yielding The server calls your factory in 4 contexts : threads.create_run (actual execution), threads.update , threads.read (state history, used by Studio’s useStream ), and assistants.read (schema introspection). This is why the caching is needed with a plain factory. The recommended modern pattern: ServerRuntime (server v0.7.30+) From langgraph_sdk/runtime.py : import contextlib from langchain.agents import create_agent from langchain_openai import AzureChatOpenAI from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph_sdk.runtime import ServerRuntime llm = AzureChatOpenAI( azure_deployment="your-deployment", azure_endpoint="https://...", api_version="2024-02-01", ) # Lightweight agent for introspection - no MCP connection needed _base_agent = create_agent(llm, tools=[]) @contextlib.asynccontextmanager async def get_agent(runtime: ServerRuntime): if runtime.execution_runtime: # Only connect to MCP during actual runs async with MultiServerMCPClient({...}) as mcp: tools = await mcp.get_tools() yield create_agent(llm, tools=tools) else: # Schema reads, Studio refresh - skip expensive MCP setup yield _base_agent langgraph.json : { "graphs": { "joker_agent": { "path": "./src/joker_agent.py:get_agent", "description": "Joker agent with Azure OpenAI and MCP tools" } } } Why this is better than the global cache Concern Global cache ServerRuntime factory Avoids re-init on every call Yes (cached) Yes ( execution_runtime guard) Handles MCP disconnects No (connection held forever) Yes (fresh per run, teardown after yield) Skips MCP during introspection No Yes Proper cleanup No Yes (code after yield ) The global caching pattern is fragile for MCP specifically: connections can time out while the server keeps running, and the cached agent won’t reconnect. The ServerRuntime context manager solves this by connecting fresh per execution and tearing down cleanly. When to use each pattern Scenario Recommended pattern No async init (sync tools only) Module-level object: graph = create_agent(...) MCP tools, async resources ServerRuntime async context manager (v0.7.30+) Older server, async resources RunnableConfig async context manager Per-user graph customization ServerRuntime factory using runtime.ensure_user()