参数 作用
model 用哪个模型
system_prompt agent 的系统提示词
tools 业务工具
middleware 额外中间件
subagents 子 agent
skills skills 目录
memory AGENTS.md 这类记忆/规则文件
permissions 文件系统权限
backend 文件系统 backend,比如 State/Store/Filesystem
interrupt_on 工具调用前是否人工确认
response_format 结构化输出
context_schema 运行时 context 的 schema
checkpointer 保存 会话thread 状态,比如多轮对话
store 保存长期数据/记忆/文件,store 是可选持久化存储,如果 backend 使用 StoreBackend,就需要传
debug 调试模式
name graph/agent 名称
cache 缓存
一、backend
1.backend是什么
在 DeepAgent 里,backend 可以理解成:agent 的虚拟文件系统后端(所有文件)。
也就是:agent 读文件、写文件、加载 skills、加载 memory、保存中间产物时,这些文件到底存在哪里,由 backend 决定。
2.backend 有什么用
主要有 4 个作用:
2.1 存 skills
agent 需要时读取 /skills/.../SKILL.md。
2.2 存 memory
比如 /AGENTS.md,长期说明、用户偏好、项目规则。
2.3 存工作文件
agent 生成的草稿、代码、报告、中间结果。
2.4 做隔离
多用户时,防止 A 用户读到 B 用户的文件。
3.backend对比
| 需求 | 适合的 backend |
|---|---|
| 临时对话里保存文件 | 默认 StateBackend(内存) |
| 读写真机本地项目 | FilesystemBackend |
| 多用户长期记忆 | StoreBackend(数据库等) |
| 不想自己配 Redis/Postgres | ContextHubBackend |
| 安全执行代码 | 沙盒 backend |
| 直接在本机跑 shell 命令 | LocalShellBackend |
| 不同目录用不同存储策略 | CompositeBackend |
virtual_mode=True 的意思是:
把 root_dir 当成 agent 的虚拟根目录 /,agent 只能在这个根目录里面读写文件。
3.1 StoreBackend
store.put(
namespace=("users", "u001", "filesystem"),
key="/AGENTS.md",
value=file_data,
)
namespace = 存储分区
key = 文件路径 /AGENTS.md
value = 文件内容
二、memory
启动时加载 AGENTS.md 文件,"从文件加载的长期说明",也是存储在虚拟文件系统的
|-----|-------------------|-------------------------|
| 第一个 | 默认 StateBackend | 通过 "files" 塞进 state |
| 第二个 | FilesystemBackend | 直接从真实磁盘读取 |
三、permissions
给 虚拟文件系统 用的路径级权限控制。
backend 决定文件存在哪里;
permissions 决定 agent 对哪些路径能读、能写、能不能编辑。
agent = create_deep_agent(
model=model,
backend=FilesystemBackend(
root_dir="D:/deepagent",
virtual_mode=True,
),
permissions={
"/skills/**": "read",
"/memory/**": "read",
"/workspace/**": "read_write",
},
)
意思是:
/skills/ 只能读,不能改
/memory/ 只能读
/workspace/ 可以读写
四、subagents