Skip to main content

交互式表单(structured_clarify)

Myrm 支持在对话内渲染结构化表单。Agent 调用 structured_clarify 工具(ask_question_tool schema)提交一个或多个问题,WebUI 在对话中渲染选项按钮、复选框与开放文本输入框,用户提交后同一个 run 会被答案唤醒继续执行。

开启或关闭

structured_clarify 在默认 profile 中默认开启。如需调整:
  1. 在对话中打开 Agent 设置。
  2. 按需开关 结构化澄清(structured_clarify)。
关闭时 Turn1 不会下发 ask_question_tool schema,用不到的能力不产生任何 token 开销。

能构建什么

闭环如何工作

  1. Agent 调用 structured_clarify,run 挂起等待。
  2. WebUI 在对话内渲染表单,不会阻塞聊天流。
  3. 用户提交后答案落库,同一个 run 携带答案自动续跑。
  4. 后端注册 900 秒超时守护:用户始终未回复则以 no_answer 自动续跑,表单不会被永久遗忘而卡死会话。
Harness 的 ClarificationGuardMiddleware 保证每轮最多一个 ask_question_tool 调用并阻断并行工具,使表单与工具计划保持一致。

什么时候用

structured_clarify 用于澄清提问与显式确认——部署清单、破坏性操作确认、方案分支选择。仪表盘、图表、长生命周期面板请使用 Mermaid 工件或产物文件:表单用于「问」,不用于「展示数据」。

大文件内联保护

HTML/SVG/Mermaid 工件默认在对话流中自动展开渲染。当工件超过 1 MB(LARGE_FILE_THRESHOLD)时,内联渲染会优雅降级:
  1. 不发起内容 fetch,也不执行 srcDoc 渲染(避免 OOM / 浏览器卡顿)。
  2. 显示精简回退卡片,展示文件大小与 「全屏查看」 按钮。
  3. 点击后由 ArtifactPortal 通过隔离 URL 模式(iframe src)加载内容——无论文件多大都没有性能风险。
这样可避免用户因为内联预览卡住或空白,而把大型生成文件(数据看板、复杂 SVG 信息图)误判为「任务失败」。 参见:Agent 配置 — 工具加载。