Commit Graph

5 Commits

Author SHA1 Message Date
Mason Daugherty e5094037f9 docs(repo): add architecture and development onboarding guides (#3983)
New-contributor onboarding currently requires stitching knowledge
together from `AGENTS.md`, per-package `Makefile`s, and external docs,
and neither the cross-layer request flow nor the `libs/code` process
model is mapped anywhere in the repo.

This adds:
- Root `ARCHITECTURE.md` (the three-layer `deepagents` → `create_agent`
→ LangGraph stack and request flow) and `DEVELOPMENT.md` (a single
bootstrap + command reference), cross-linked from `README.md` and
`libs/README.md`.
- `libs/code/ARCHITECTURE.md` (process model, interactive/headless
request lifecycles, module map, and a "where do I change X" cheat
sheet), linked from `DEV.md` and `AGENTS.md`.

Made by [Open SWE](https://openswe.vercel.app)

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-20 03:04:04 -04:00
Mason Daugherty f2d955ebc5 docs(repo): refresh README.md resources and install commands (#3933)
`README.md` guidance now points readers toward the shared LangChain
learning and community resources across the repo. Python install
snippets also use `uv add` consistently instead of `pip install` or `uv
pip install`.

## Changes
- Added LangChain Academy and Code of Conduct links across package and
example READMEs, using existing Resources sections where available and
adding a short Resources section where needed.
- Updated partner package quick-install snippets for Daytona, Modal, and
Runloop to use `uv add`.
- Updated example setup instructions to use `uv add deepagents-cli` and
`uv add --editable .` for local installs.
- Refreshed the root README intro so the JavaScript/TypeScript library
link sits in the main overview and the Deep Agents Code install callout
appears before Quickstart.
2026-06-12 18:18:36 -04:00
Victor Moreira 72aef52542 feat(cli)!: migrate deepagents deploy to use managed deep agents api [AB-2470] (#3609)
## ⚠ Breaking changes

`deepagents-cli` `0.1.x` → `0.2.0`. The deploy CLI is a private-preview
beta, but
this rewrites the command surface, config format, and deploy backend, so
existing
projects and scripts will not work unchanged.

| What broke | Before (`0.1.x`) | After (`0.2.0`) |
| --- | --- | --- |
| **`deepagents dev` removed** | `deepagents dev --port 2024` ran a
local `langgraph dev` server off the bundle | No replacement. Local
bundling/serving is gone; the project is now a managed agent. |
| **Deploy backend** | `deepagents deploy` bundled the project and
shipped via `langgraph deploy` to LangSmith Deployment | `deepagents
deploy` patches agent metadata + syncs source files through the Managed
Deep Agents API (`/v1/deepagents/*`) |
| **Config file** | `deepagents.toml` (auto-discovered or `--config`) |
`agent.json` (metadata, top-level `backend`, `runtime.model`,
permissions) + `AGENTS.md`, `tools.json`, `skills/`, `subagents/` |
| **`--config` / `--dry-run` flags** | accepted on `deploy`/`dev` |
removed |
| **MCP tool wiring** | prior tool-config shape (deployed an agent with
**no tools**) | `tools.json` with `tools[].mcp_server_url`; servers must
be registered and `can_invoke == true` or deploy fails fast |
| **Deploy state** | derived from the bundle | tracked user-local in
`~/.deepagents/deployments/`, keyed by project root + endpoint (not
committed) |

### Migration

1. **Re-scaffold or convert the project.** Run `deepagents init` to
generate the
   canonical layout (`agent.json`, `AGENTS.md`, `tools.json`, `skills/`,
   `subagents/`), then port settings out of your old `deepagents.toml`:
   - system prompt → `AGENTS.md`
   - model / permissions → `agent.json` (`runtime.model`, `permissions`)
- runtime/sandbox config → top-level `backend` block (`init` scaffolds
`thread_scoped_sandbox`; the legacy value `"sandbox"` is still accepted
as a
     local alias)
2. **Register MCP servers and attach tools.** Use `deepagents
mcp-servers add`
(then `connect` for OAuth servers), and reference them from `tools.json`
via
`tools[].mcp_server_url`. The old tool-config shape silently deployed an
agent
   with no tools.
3. **Replace `deepagents dev`.** There is no local dev-server equivalent
in this
   release; iterate via `deepagents deploy` against your workspace.
4. **Drop removed flags.** Remove `--config` and `--dry-run` from any
deploy
   scripts.

New commands: `deepagents agents` (`get`, `--include-files`, …) and
`deepagents mcp-servers` (`create`/`list`/`get`/`update`/`delete` +
OAuth
`connect`). `get` redacts stored header values.

## Overview

Migrates `deepagents deploy` from the legacy `langgraph deploy` path to
the new
Managed Deep Agents API (`/v1/deepagents/*`). Instead of bundling and
shipping a
deployment, the CLI now treats a project as a managed agent: agent
**metadata**
lives on the agent record and **source files** live in Hub-backed
directory
state. On redeploy, the CLI patches only metadata and syncs the managed
file tree
via Hub directory commits, rather than re-uploading everything.

The CLI surface is now `init` / `deploy` / `agents` / `mcp-servers`,
operating on
the canonical project layout:

```
agent.json              # name, description, top-level backend, runtime.model, permissions
AGENTS.md               # system prompt
tools.json              # MCP tool references (tools[].mcp_server_url) + interrupt_config
skills/<name>/SKILL.md  # frontmatter-tagged skills
subagents/<name>/       # delegated subagent definitions
```

Bumps `deepagents-cli` to `0.2.0`. The deploy flow is gated behind a
beta warning
while Managed Deep Agents is in private preview.

## What changed

**Deploy model**
- Source files are kept in Hub-backed directory state; redeploy patches
agent
metadata only and reconciles files through directory commits (create →
first
  deploy, patch + directory delta → subsequent deploys).
- Deploy state is tracked **user-local** (`~/.deepagents/deployments/`),
keyed by
  project root + endpoint — not committed to the repo.

**Runtime / backend config**
- Managed runtime config moved to a **top-level `backend`** block;
`init` scaffolds
  `thread_scoped_sandbox` by default.
- Backend/sandbox config is validated at load time; legacy `"sandbox"`
is accepted
  as a local alias for `thread_scoped_sandbox`.

**MCP server flows**
- Consistent dotenv loading across all commands (project `.env`
discovered upward,
  then `~/.deepagents/.env`).
- `mcp-servers` supports create/list/get/update/delete plus OAuth
connect; `get`
  redacts stored header values.
- Deploy fails fast when a referenced server is unregistered or the
caller
`can_invoke == false`, with actionable hints (including OAuth
`connect`).

**Tooling docs/examples** (also in this branch)
- `tools.json` (`tools[].mcp_server_url`) is the supported way to attach
MCP tools;
fixed the `deploy-content-writer` example and README quickstart, which
previously
  implied a tool config shape that deploys an agent with no tools.

## Checked with
```bash
uv run --group test python -m pytest tests/unit_tests/deploy -v
uv run --group test ruff check .
uv run --group test ty check
```
Also ran the flow end to end against a live workspace: `init` →
`mcp-servers add`
→ `tools.json` → `deploy` (create + redeploy) → `agents get
--include-files`,
confirming metadata patch, directory sync, and MCP health check.

## Related
- Linear:
https://linear.app/langchain/issue/AB-2470/mda-wrap-apis-in-deepagents-deploy
- Docs PR: `langchain-ai/docs` `vic/mda-cli-update` (reconciles the
Managed Deep
  Agents guide with this behavior)



BREAKING CHANGE: `deepagents deploy` now targets the Managed Deep Agents
API; `deepagents dev`, `deepagents.toml`, and the `--config`/`--dry-run`
flags are removed. Run `deepagents init` to re-scaffold (`agent.json` +
`tools.json`). See
[PR](https://github.com/langchain-ai/deepagents/pull/3609) for the full
migration guide.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Mason Daugherty <mason@langchain.dev>
2026-06-01 18:28:53 -04:00
Sydney Runkle 101a47fb11 docs(examples): add READMEs for all deploy examples + Supabase auth to content writer (#2863)
## Summary

- Adds READMEs to all four `deploy-*` examples (`deploy-coding-agent`,
`deploy-content-writer`, `deploy-mcp-docs-agent`, `deploy-gtm-agent`) —
each had none before
- Adds `[auth] provider = "supabase"` to
`deploy-content-writer/deepagents.toml` + updates `.env.example` with
Supabase keys, showcasing the new custom auth feature alongside per-user
memory
- Adds `deploy-gtm-agent` to the examples index README (it was missing)
and refreshes the content-writer description

## README format

Each README is intentionally lightweight for deploy examples
(config-only, no `uv sync`):
- What it does + what's notable
- Prerequisites table (env vars)
- One-line deploy command
- Example prompts to try
- Directory structure

## Test plan

- [ ] Verify all four README links render correctly on GitHub
- [ ] Confirm `.env.example` in `deploy-content-writer` matches the keys
validated by `[auth] provider = "supabase"`
- [ ] Check examples index table looks right

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-21 10:27:08 -04:00
Sydney Runkle 01dc60e394 feat(cli): deepagents deploy (#2491)
# deepagents deploy

## Project layout

```
src/
  AGENTS.md        # required — system prompt + read-only /memories/AGENTS.md
  skills/          # optional — seeded under /skills/
  mcp.json         # optional — HTTP/SSE MCP servers
  deepagents.toml
```

## `deepagents.toml`

```toml
[agent]
name = "my-agent"
model = "anthropic:claude-sonnet-4-6"

# [sandbox] is optional — omit to run tools in-process.
[sandbox]
provider = "langsmith"   # none | langsmith | daytona | modal | runloop
scope    = "thread"      # thread | assistant
# template = "deepagents-deploy"
# image    = "python:3"
```

That's the entire surface. Skills, MCP servers, and model deps are
auto-detected.

## CLI

```bash
deepagents init                         # scaffold deepagents.toml in cwd
deepagents dev    --config src/deepagents.toml [--port 2024]
deepagents deploy --config src/deepagents.toml [--dry-run]
```

## Runtime

- **System prompt:** `src/AGENTS.md` verbatim, baked in at build time.
- **Memories:** `/memories/AGENTS.md` in the LangGraph store, namespace
`(assistant_id, "memories")`. Read-only at runtime — edit the source
file and redeploy.
- **Skills:** `/skills/<skill>/...` in the store, namespace
`(assistant_id, "skills")`. Also read-only.
- **Sandbox:** default backend. Per-thread cache by default; set
`[sandbox].scope = "assistant"` to share one sandbox across all threads
of an assistant. Omit `[sandbox]` entirely to fall back to an in-process
`StateBackend`.
- **MCP:** HTTP/SSE only. Stdio is rejected at bundle time.

## Gotchas

- `/memories/` and `/skills/` are read-only. Edit source files and
redeploy.
- `deepagents deploy` creates a new revision on every invocation (full
cloud rebuild). Use `deepagents dev` for iteration.
- The in-process sandbox cache does not survive process restarts;
thread-scoped sandboxes get re-provisioned if the server recycles.
- Custom Python tools are not supported — use MCP servers.

---------

Co-authored-by: Mason Daugherty <github@mdrxy.com>
Co-authored-by: Mason Daugherty <mason@langchain.dev>
2026-04-09 11:08:15 -04:00