| What it is | A deployable product: standalone agent runtime you configure | A code framework: Python/JS libraries you import and build around |
| Creating an agent | Declarative config, Admin Dashboard, or plain-English AI builder — live without redeploy | Write code, then build, test, and redeploy your service for every change |
| Who can build | Engineers and non-engineers through the dashboard | Engineers in the framework itself; no-code authoring lives in Fleet, a module inside LangSmith (metered in LCUs, with a monthly free allowance on the $0 Developer tier) |
| Runtime | A managed runtime your product calls over REST and SSE — nothing to host or scale | Lives inside your Python/JS process — hosting, scaling, and hardening are on you; langgraph dev runs locally on a free LangSmith key, while the standalone self-hosted server needs a LangSmith licence key and the managed control plane sits in paid tiers |
| Ops layer (auth, admin, sessions, audit) | Included, on every plan: Ed25519 JWT auth, admin dashboard, session persistence, audit log | Available, but spread across the vendor’s surfaces — LangSmith for observability, evals, and the Fleet no-code builder (free Developer tier, paid above it), plus the LangGraph server for the API and custom auth (self-hosting needs a LangSmith licence key; managed tiers above that) |
| Framework coupling | None in your code — your product speaks plain REST + SSE | Your codebase inherits the framework’s abstractions and breaking changes |
| Structured grounding | Typed knowledge graphs: JSON Schema in, deterministic retrieval tools out | DIY from graph stores, extractors, and custom retrievers |
| GitOps | brewctl applies versioned config bundles atomically, with diff and drift detection | Your code is the config; agent changes ship like application releases |
| Customization ceiling | High via config, MCP tools, and plugins — less infinite than raw code | Practically unlimited — it is code |