Deep Agent provides:
- perfect Skills integration (just like Claude)
- planning/task-decomposition
- long-term memory
- context management
- sub-agent spawning
- customizable backend (state/file-based)
- human-in-the-loop support
- self-improving/modifying instructions/prompting
Deep Agent Architecure:
Todolist, Fileystem, and subagent are provided customizable middleware.docs
They inject their default messages onto your system prompt, and you cannot change them (which is a giant pain)
Tools: Built in and supported by Langchain. The middleware for this is perfect and completely handled.
Skills: For langchain/graph not Deep Agent: We'd have to build our own middleware. It'd be confusing for us to differentiate what we turn into a tool vs skill. A decent amount of intellectual overhead and would probably lead to bloat. I made an early attempt
MCP Server: Can have multiple MCP servers. Use langchain mcp adapter and it allows langchain to just see/use/call them as regular langchain tools.
It seems like an agent can't add/initialize new MCP servers during runtime, as the MCP servers are loaded and transformed into tools and then passed to the agent during the agent's intitialization.
- Can force structured output
- Prompt chaining/states for predetermined workflows. Can also add parallel nodes/states
- Routing for smart routing of queries/text via structured output
- Orchestrator+worker can force orchestrator to follow a strict planning schema and then can pass subsections onto specific workers
- Evaluator+optimizer by using structured output + nodes
Useful docs on their multi-agent techniques
Now it's just the default Deep Agent architecture + new tools + skills.
Added tools:
curl: As named
Manually added skills:
get-weather: a claude skill which I copied/downloadedskill-creator: as named, taken from link (made by langchain)
Conda environment for clean local dev environments
conda create -n "agents_ucsd" python==3.11
conda activate agents_ucsd
pip install -r requirements.txt
# ask the agent to construct a skill from prompts/download_video_input.txt
python main.py