跳到主要内容

steamharness resolve-params

resolve-params 供 CLI Web 调用,也可用于本地调试参数联动。Workflow 使用 --entrypoint <id> 选择入口的 resolveParams,省略时使用默认入口;Conversation 使用 executor resolveParams,并拒绝非空入口参数。请求 JSON 从 stdin 读取,避免输入正文出现在命令行参数中。

printf '%s' '{"draftText":"查询文档","args":["--tone","balanced"],"inputMode":"form","trigger":{"kind":"input"}}' \
| steamharness resolve-params ./workspace/workflow/example --entrypoint search

成功时 stdout 返回 ParamResolveResult:

{"params":{"tone":{"value":"precise","resolvedOptions":[{"value":"precise","label":"精确"},{"value":"creative","label":"创意"}],"options":{"creative":{"disabled":true}}}}}

所选入口或 Conversation executor 没有定义 resolveParams 时返回 {"params":{}}。resolvedOptions 数组会替换参数当前的完整选项列表,null 恢复静态列表,options 只补充单个选项的显示或禁用状态。--entrypoint 必须放在 CLI 参数区;显式 -- 后的同名参数不会被 CLI 读取。请求格式、入口或回调结果非法时退出码为 1,错误写入 stderr。

Studio 与 CLI Web 中,Conversation 的静态参数立即可用,不启动参数解析进程。动态参数在当前页面按项目、会话和入口缓存;切回未变化的会话复用已有选项。参数修改会合并连续请求,后续刷新在后台完成,保留已加载选项和输入内容,不阻塞参数菜单或 Slash 菜单。切换会话或重新打开页面会保留尚未发送的参数修改与重置;已确认的用户交互效果按版本更新对应参数,包括清除值。

普通消息输入不触发参数解析。仅当参数声明 resolveOnInput: true 时,主输入停顿 350 毫秒后才重新解析;输入法组合输入结束前不触发。运行期间暂停后台参数解析,确有待更新内容时在运行结束后更新。配置、登录身份或连接变化会使缓存失效;参数工具栏的刷新图标可手动更新选项,加载失败也可重试。发送消息时始终使用最新配置重新解析并校验,缓存不会跳过服务端校验。初次加载尚未完成或加载失败时仍可发送,由服务端解析动态默认值并校验必填项;选项列表为空时不能沿用旧选择。