Documentation Index
Fetch the complete documentation index at: https://nvd-54.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Harness 和提供商配置文件仅限 Python,需要
deepagents>=0.5.4。它们是公开测试版 API,可能在未来版本中更新。create_deep_agent 调用处的情况下调整 harness 对特定模型行为的主要方式。在 Python 中构建配置文件时使用 HarnessProfile;在从配置文件加载或保存 YAML/JSON 文件时使用 HarnessProfileConfig。深度智能体为 OpenAI 和 Anthropic(Claude)模型附带内置 harness 配置文件。
提供商配置文件是用于模型构造关键字参数的更窄配套 API,不影响 harness。大多数调用者不需要它们;当你需要 init_chat_model 默认值、凭证检查或运行时派生的关键字参数作为提供商选择的默认值时使用(例如打包提供商集成时)。
Harness 配置文件
HarnessProfile 描述 create_deep_agent 在聊天模型构造之后应用的提示组装、工具可见性、中间件和默认子智能体调整:
覆盖单个工具描述,按工具名称为键。
从工具集中移除特定的 harness 级工具。按工具名称(字符串)匹配,作为后注入过滤器应用,因此可以删除用户提供的工具和 harness 中间件添加的工具。参见不使用默认文件系统工具运行获取实例。
从栈中剥离特定的中间件类。接受中间件类或字符串名称。
向此配置文件适用的每个栈追加中间件。
禁用、重命名或重新提示通用子智能体。当此字段的
system_prompt 与 base_system_prompt 一起设置时,通用子智能体特定的提示优先 — 参见通用子智能体提示。调用者提供的
system_prompt= 始终位于组装提示的前面,system_prompt_suffix 始终位于末尾 — 无论选择了哪个模型。相同的覆盖规则适用于子智能体:每个子智能体针对其自己的模型重新运行配置文件解析。参见提示组装了解完整的逐情况分解(主智能体、子智能体和通用子智能体)。excluded_middleware 中的条目接受两种形式:
- 中间件类(按精确类型匹配),或匹配
AgentMiddleware.name的普通字符串。对内置和公共别名如"SummarizationMiddleware"使用普通字符串。 module:Class导入引用(例如"my_pkg.middleware:TelemetryMiddleware")以从配置文件中定位精确的中间件类。导入引用延迟解析,因此仅用于受信任的本地配置 — 加载一个会导入 Python 代码。
预配置模型实例的查找顺序
预配置模型实例的查找顺序
当你传递预配置的聊天模型实例而非
provider:model 字符串时,harness 从实例合成规范的 provider:identifier 键并按以下顺序查找:- 精确
provider:identifier匹配 - 仅标识符(仅当标识符已包含
:) - 仅提供商回退
注册键
两种配置文件类型使用相同的键格式:- 提供商级 — 裸提供商名称如
"openai"适用于该提供商的每个模型。 - 模型级 — 完全限定的
provider:model键如"openai:gpt-5.4"仅适用于该特定模型。
没有匹配每个提供商的通配符键。要在任何地方应用相同的覆盖 — 例如无论选择哪个模型都删除
TodoListMiddleware — 在你使用的每个提供商键下注册配置文件。配置文件旨在用于取决于所选模型的调整。无论模型如何都应适用的全局调整应在 create_deep_agent 调用处进行。合并语义
| 字段 | 合并行为 |
|---|---|
base_system_prompt、system_prompt_suffix | 设置时新值获胜;否则继承 |
tool_description_overrides | 映射按键合并;共享键上新值获胜 |
excluded_tools、excluded_middleware | 集合并集 |
extra_middleware | 按具体类合并:新实例在其位置替换现有实例,新类追加 |
general_purpose_subagent | 逐字段合并(未设置字段继承) |
init_kwargs(提供商) | 字典按键合并;共享键上新值获胜 |
pre_init(提供商) | 可调用链接:现有的先运行,然后是新的 |
init_kwargs_factory(提供商) | 工厂链接,每次 resolve_model 调用时合并输出 |
提供商配置文件
ProviderProfile 声明深度智能体应如何为给定提供商或特定模型规范构造聊天模型。它仅在创建深度智能体时提供 provider:model 字符串时适用,而非传递使用 init_chat_model 的预配置模型时:
转发给
init_chat_model 的静态初始化参数。构造前运行的副作用(例如凭证验证)。
从运行时状态派生的关键字参数(例如从环境变量拉取的头部)。
从配置文件加载配置
对于 YAML/JSON 支持的工作流,使用HarnessProfileConfig。它镜像 HarnessProfile 的声明式子集(提示文本、工具描述覆盖、排除的工具和中间件、通用子智能体编辑)并拥有 to_dict / from_dict。运行时专有状态 — 中间件实例、工厂和类形式的 excluded_middleware 条目 — 保留在 HarnessProfile 上。
register_harness_profile 接受两种类型,因此配置支持的调用者不需要手动转换步骤:
HarnessProfileConfig.from_harness_profile(...) 当运行时配置文件仅使用可序列化功能时,将其导出回声明式形状:
- 类形式的
excluded_middleware条目序列化为公共别名(当类通过serialized_name: ClassVar[str]暴露时)或module:Class导入引用。 - 非空的
extra_middleware和在__main__或函数作用域内声明的中间件类无法序列化 — 导出会引发ValueError。
将配置文件作为插件发布
可分发的配置文件可以通过importlib.metadata 入口点注册自己,而不需要调用者手动运行 register_*_profile。加载顺序是先内置,然后入口点插件,然后用户代码中的任何直接 register_*_profile 调用;所有三条路径都通过相同的累加注册汇合,因此在同一键下的后续注册层叠在先前的之上。
在发行版自己的 pyproject.toml 中在适当的组下声明入口点:
deepagents.profiles 时执行注册:
相关
连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。

