Skip to main content

General purpose 'deep agent' with sub-agent spawning, todo list capabilities, and mock file system. Built on LangGraph.

Project description

🧠🤖 Deep Agents Enhanced by Soothe

PyPI - Version PyPI - License PyPI - Downloads Twitter

Looking for the JS/TS version? Check out Deep Agents.js.

To help you ship LangChain apps to production faster, check out LangSmith. LangSmith is a unified developer platform for building, testing, and monitoring LLM applications.

Quick Install

uv add soothe-deepagents

🤔 What is this?

Deep Agents is an open source agent harness — an opinionated agent that runs out of the box. Extend, override, or replace any piece.

Principles:

  • Opinionated — defaults tuned for long-horizon, multi-step work
  • Extensible — override or replace any piece without forking
  • Model-agnostic — works with any LLM that supports tool calling: frontier, open-weight, or local
  • Production-ready — built on LangGraph (streaming, persistence, checkpointing) with first-class tracing, evaluation, and deployment via LangSmith

Features include:

  • Sub-agents — delegate tasks to agents with isolated context windows
  • Filesystem — read, write, edit, or search over pluggable local, sandboxed, or remote backends
  • Context management — summarize long threads and offload tool outputs to disk
  • Shell access — run commands in your sandbox of choice
  • Persistent memory — pluggable state and store backends for cross-session recall
  • Human-in-the-loop — approve, edit, or reject tool calls before they run
  • Skills — reusable behaviors the agent can load on demand
  • Tools — bring your own functions or any MCP server
from soothe_deepagents import create_deep_agent

# Legacy imports remain supported:
# from soothe_deepagents import create_deep_agent

agent = create_deep_agent(
    model="openai:gpt-5.5",
    tools=[my_custom_tool],
    system_prompt="You are a research assistant.",
)
result = agent.invoke({"messages": "Research LangGraph and write a summary"})

The agent can plan, read/write files, and manage its own context. Add your own tools, swap models, customize prompts, configure sub-agents, and more. For a full overview and quickstart of Deep Agents, the best resource is our docs.

Acknowledgements: This project was primarily inspired by Claude Code, and initially was largely an attempt to see what made Claude Code general purpose, and make it even more so.

❓ FAQ

How is this different from LangGraph or LangChain?

LangGraph is the graph runtime. LangChain's create_agent is a minimal agent harness on top of it. Deep Agents is a more opinionated harness on top of create_agent — same building blocks, but with filesystem, sub-agents, context management, and skills bundled in. For how the three relate, see the LangChain ecosystem overview.

Does this work with open-weight or local models?

Yes. Any model that supports tool calling works — frontier APIs (OpenAI, Anthropic, Google), open-weight models hosted on providers like Baseten or Fireworks, and self-hosted models via Ollama, vLLM, or llama.cpp. Use any LangChain chat model.

Can I use this in production?

Yes! Deep Agents is built on LangGraph, designed for production agent deployments. Pair it with LangSmith for tracing, evaluation, and monitoring. See Going to production for the full guide.

When should I use Deep Agents vs. LangChain or LangGraph directly?

All three are layers in the same stack — see the LangChain ecosystem overview for how they relate. Use Deep Agents when you want the full harness — planning, context management, delegation — out of the box. Use LangChain's create_agent when you want a lighter harness without the bundled middleware. Drop to LangGraph when the agent loop itself isn't the right shape and you need a custom graph.

The layers compose: any LangGraph CompiledStateGraph can be passed in as a sub-agent to a Deep Agent, so custom orchestration plugs in alongside the harness's defaults.

📖 Resources

📕 Releases & Versioning

See our Releases and Versioning policies.

🔒 Security

Deep Agents follows a "trust the LLM" model. The agent can do anything its tools allow. Enforce boundaries at the tool/sandbox level, not by expecting the model to self-police. See the security policy for more information.

💁 Contributing

As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.

For detailed information on how to contribute, see the Contributing Guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soothe_deepagents-0.7.22.tar.gz (278.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soothe_deepagents-0.7.22-py3-none-any.whl (306.7 kB view details)

Uploaded Python 3

File details

Details for the file soothe_deepagents-0.7.22.tar.gz.

File metadata

  • Download URL: soothe_deepagents-0.7.22.tar.gz
  • Upload date:
  • Size: 278.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for soothe_deepagents-0.7.22.tar.gz
Algorithm Hash digest
SHA256 800513856d207d9c84b8992b4cee83ff8d1e67a9d80b2674898813f36f940415
MD5 7b02325498c600fbae6ff9c5eb1d9058
BLAKE2b-256 1f9cb5a6a8609af8272c4dbba8d37ac2589fe86f494eef7a18d805f31e028297

See more details on using hashes here.

Provenance

The following attestation bundles were made for soothe_deepagents-0.7.22.tar.gz:

Publisher: release.yml on mirasoth/soothe-deepagents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soothe_deepagents-0.7.22-py3-none-any.whl.

File metadata

File hashes

Hashes for soothe_deepagents-0.7.22-py3-none-any.whl
Algorithm Hash digest
SHA256 94b61b643073d8f83e32e41298d43b91767bb7f8cdb6e84686be9d7c357ea367
MD5 5b140a42755cc99c19d2bb41d603d492
BLAKE2b-256 325881ffceb08031ff80ff86ebc6d805ff37929743a6dd8af42ea9fe8d4f9d4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for soothe_deepagents-0.7.22-py3-none-any.whl:

Publisher: release.yml on mirasoth/soothe-deepagents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page