
dcode 如何在会话中切换模型并持久化模型配置【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents在 deepagents 仓库的终端编码产品deepagents-code命令名为dcode里模型不只是启动时定死的一次性选择你既可以在一次交互会话中随时切换主模型、临时附加请求级参数也可以把某个模型持久化为config.toml里的默认值让后续会话直接沿用。本文针对这个场景给出操作路径会话内切换、会话级参数、默认模型持久化以及切换后如何确认生效。前提是你已经能运行 dcode。文档给出的安装方式是该命令会从官方脚本安装 dcode请自行确认脚本来源后再执行curl -LsSf https://langch.in/dcode | bash dcode如果需要使用非内置的模型提供方安装时可以用环境变量选择 extrasOpenAI、Anthropic、Gemini 默认已包含在安装器中DEEPAGENTS_CODE_EXTRASnvidia,ollama curl -LsSf https://langch.in/dcode | bash用 /model 在会话中切换模型/model是 dcode 的公开斜杠命令描述为 Switch models or edit model settings见 COMMANDS.md。在 TUI 交互界面中直接输入/model会打开模型选择界面Model Selector也可以用 CtrlN 在“显示名称”和“原始 spec”两种展示模式之间切换。如果已经知道目标模型的 spec可以直接指定而不经过选择界面/model provider:model-name源码注释中的直接切换示例是/model claude-sonnet-4-5app.py。create_model会接受显式的限定 specprovider:model也可以对裸模型名自动检测 provider都没有时回落到默认值见 profiles-models.md。切换会经过 allowlist 校验被拒绝的模型不会复制已存储凭据到环境变量也不会触发 provider profile 的副作用。切换目标提供方需要凭据时先通过/auth别名/connect连接并管理提供方凭据各 provider 对应的 API key 环境变量名定义在 model_config.py 的PROVIDER_API_KEY_ENV中。附加 --model-params只对当前会话生效/model支持在切换命令里附加请求级参数参数是一个 JSON 对象app.py 中的_extract_model_params_flag负责解析非法 JSON 或未闭合括号会报对应错误/model provider:model-name --model-params {key: value}这些参数按请求浅合并进model_settings不会改动共享的模型对象profiles-models.md。注意它的生效范围仅限当前会话源码对同时使用两个标志的报错文案是 Model params are applied per-session, not persistedapp.py。持久化默认模型/model --default会话内的直接切换不会写入配置文件想跨会话固定某个模型使用--default标志。命令用法源码给出的提示文案Usage: /model --default provider:model /model --default --clear/model --default provider:model把该模型持久化为默认模型同时切换当前会话使用的模型/model --default --clear清除已持久化的默认值。从实现看--default作用域持久化的是[models].default配置项即 agent 自身运行的默认模型app.py 的注释。该配置写入用户级配置文件~/.deepagents/config.toml该路径见 EXTENSIONS.md、THREAT_MODEL.md。约束--model-params不能与--default组合使用因为前者只按会话生效、不会持久化。如何确认切换和持久化已生效当前会话切换成功后TUI 底部footer的/model区域显示当前模型按 CtrlN 可在名称与原始 spec 之间切换展示用于核对切到的具体是哪个 provider 的哪个模型。持久化值/model --default的写入作用于默认配置路径写入会刷新进程内的配置代config generation当前进程即可读到新值如果你之后手动编辑了~/.deepagents/config.toml在运行中的 TUI 里用/reload重新加载配置config-layering.md 说明了对默认路径的写入与/reload都会推进配置代解析失败的候选值会保留上一次可用快照并给出提示。恢复会话时每次父 agent 模型调用成功后ConfigurableModelMiddleware会把解析出的模型 spec 和当次会话的运行时model_params写入 checkpoint供恢复线程如/threads恢复、-r续接沿用profiles-models.md 的 Runtime switching and session state 一节。也就是说会话内切换的模型在恢复同一线程时会被记住但会话级--model-params属于运行时覆盖新开线程不会继承它。限制与回退行为运行时通过runtime.context请求的模型替换走create_model解析如果解析失败默认回落到构造时的模型设置strict_model_resolution时不回退失败的那次调用不会产生 checkpoint 更新profiles-models.md。--model-params是会话级的无法通过--default持久化需要跨会话固定的参数应写入config.toml中 provider/model 层级的配置生效优先级为SDK provider profile 默认值 config.toml的 provider/model 参数与凭据接线 --model-paramsprofiles-models.md 的 dcode construction and precedence。/model --default只能持久化主模型默认值rubric/goal 评分模型/rubric model、/goal model的选择写入线程状态文档中明确说明它们目前没有持久化配置键app.py不属于本场景的持久化范围。下一步可以阅读 openwiki/concepts/profiles-models.md 了解 provider profile、harness profile 与重试预算在模型解析中的完整职责划分以及 openwiki/workflows/run-dcode-session.md 了解线程恢复resume与 SQLite checkpoint 的行为细节。【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考