Skip to main content
LangChain and LangGraph are open-source agent libraries. LangSmith is LangChain’s commercial platform for tracing, evals, deployment, and Fleet, its no-code agent builder. Guild runs LangGraph v1 graphs natively: a Python LangGraph agent keeps its graph and swaps in Guild’s model and tools. JavaScript createAgent agents move to Guild TypeScript, and Fleet agents move to Guild Native.

Who this is for

Teams with LangGraph agents on LangSmith Deployment or their own servers, createAgent agents in Node services, or Fleet agents, who want them on a shared Hub. On Guild, credentials stay behind a proxy and every run shows in one workspace.

Concept map

Before you start

Upgrade to LangChain and LangGraph v1 first. AgentExecutor moved to langchain-classic in v1, which Guild’s LangGraph runtime doesn’t include. create_react_agent is deprecated in v1, so replace it with create_agent from langchain.agents.

Inventory

  • Graph entry points in langgraph.json and every node.
  • Every tool and MCP server (MultiServerMCPClient, or MCPAdapter from langchain.mcp), and the service it reaches.
  • Python dependencies beyond langchain, langchain-core, langchain-openai, and langgraph.
  • Interrupt or human-in-the-loop points.
  • Cron jobs, webhooks, and, for Fleet, triggers and connection identities (“Claws” use fixed credentials; “Assistants” and per-user connections act as the invoker).
  • Environment variables, by name only.

Steps

1

Scaffold a LangGraph agent

--category and --owner stop the CLI from prompting, which a script or coding agent can’t answer. List categories with guild agent categories.The scaffold contains langgraph.json, graph.py, guild.yaml, README.md, and .gitignore.
2

Swap model and tools

guild_tools() is async, so the graph target must be an async factory.
3

Declare tools in guild.yaml

Keep langgraph.json targets as relative file paths: { "dependencies": ["."], "graphs": { "agent": "./graph.py:graph" } }.
4

Test

guild agent test uploads only the files git tracks, so git add -A stages new files such as logic.ts first. Without it, the cloud build fails with “Cannot find module ’./logic.ts’”.
Then publish and wire triggers:
The first guild agent save --wait --publish after guild agent init fails with “No saved state… use —force” because of the .gitignore the scaffold writes. Add --force to that first save for now.
You can also publish with the Publish Agent to Guild GitHub Action instead of guild agent save --publish. The Action needs an account API key with the agents:write scope:

Credentials and policies

Remove provider API keys and LangSmith keys; Guild routes model calls through its own proxy. Recreate service tokens as credentials. Fleet “Claws” map to workspace- or agent-scoped credentials, and “Assistants” and per-user connections map to member-scoped credentials. Restrict operations with credential policies.

What doesn’t map 1:1

Guild’s LangGraph runtime provides Python 3.13 with langchain, langchain-core, langchain-openai, langgraph, and guildai_langchain only. A graph that needs other packages (vector store clients, requests, provider SDKs) must replace them with Guild integrations or move to TypeScript.
The container has no general network access. Every outside call must go through a Guild tool.
A LangGraph turn fails after 10 minutes without events. The clock pauses during Guild tool calls.
interruptOn and Fleet’s per-tool “Ask” map to two Guild controls. To control which agents can call the operation at all, add a credential policy rule scoped to the agent and workspace that allows or denies that operation. DENY wins. To have a person sign off on each call, have the agent confirm with ui_prompt first. The run pauses until someone answers.
LangSmith Deployment webhooks send a POST callback to your service when a run finishes. They notify, they don’t start runs, so they have no Guild trigger equivalent. To notify a service when a Guild run ends, have the agent call it through an integration as its last step.
LangSmith Deployment offers hybrid and self-hosted options. Guild is hosted only.
LangSmith datasets, evaluators, and Engine have no 1:1 equivalent. Port your key cases to Guild Evaluations.

Three ways to migrate

guild-migrate skill

Ask your coding agent: “Migrate this LangGraph project to Guild.” It picks the LangGraph or TypeScript path and writes MIGRATION.md.

Publish Agent to Guild Action

Commit the port to your repository, then publish it from GitHub Actions with an account API key.

Migration agent

Point Migrate to Guild at your repository; it opens a draft pull request. The guild-migrate skill ships in the same package.
A worked before/after example lives in examples/migrations/langchain/ in the guild-migrate repository.

LangGraph agents

The runtime, guild_model(), guild_tools(), and constraints.

guild.yaml

Models, integrations, sub-agents, and builtins.
Last modified on November 2, 2026