文档索引
在以下地址获取完整的文档索引:https://docs.langchain.org.cn/llms.txt
在进一步探索之前,请使用此文件发现所有可用页面。
Harness 和提供商配置仅支持 Python,并且需要
deepagents>=0.5.4。它们目前处于公开测试阶段,未来版本可能会有变动。create_deep_agent 调用点的情况下,针对特定模型调整 Harness 行为的主要方式。在 Python 中构建配置时使用 HarnessProfile;在 加载或保存 YAML/JSON 文件 时使用 HarnessProfileConfig。Deep Agents 内置了针对 OpenAI 和 Anthropic (Claude) 模型的 Harness 配置。 提供商配置 是一个较窄的配套 API,用于 模型构建 参数(kwargs),这些参数不会影响 Harness。大多数调用者不需要它们;当您想要设置 init_chat_model 默认值、进行凭证检查或在选择提供商时将运行时派生的关键字参数作为默认值(例如,在打包提供商集成时)使用时,可以考虑使用它。能力框架配置文件
HarnessProfile 描述了 create_deep_agent 在构建聊天模型后应用的提示词组装、工具可见性、中间件和默认子代理的调整
根据工具名称覆盖单个工具描述。
从工具集中移除特定的 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"这样的纯提供商名称适用于该提供商的所有模型。 - 模型级别 — 像
"openai:gpt-5.4"这样的完全限定provider:model键仅适用于该特定模型。
没有匹配所有提供商的通配符键。要随处应用相同的覆盖(例如,无论选择哪个模型都删除
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 声明了 Deep Agents 应如何为给定的提供商或特定模型规范构建聊天模型。它仅在创建深度代理时提供 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 等,以获得实时答案。

