交互式表单(structured_clarify)
Myrm 支持在对话内渲染结构化表单。Agent 调用 structured_clarify 工具(ask_question_tool schema)提交一个或多个问题,WebUI 在对话中渲染选项按钮、复选框与开放文本输入框,用户提交后同一个 run 会被答案唤醒继续执行。
开启或关闭
structured_clarify 在默认 profile 中默认开启。如需调整:
- 在对话中打开 Agent 设置。
- 按需开关 结构化澄清(
structured_clarify)。
ask_question_tool schema,用不到的能力不产生任何 token 开销。
能构建什么
闭环如何工作
- Agent 调用
structured_clarify,run 挂起等待。 - WebUI 在对话内渲染表单,不会阻塞聊天流。
- 用户提交后答案落库,同一个 run 携带答案自动续跑。
- 后端注册 900 秒超时守护:用户始终未回复则以
no_answer自动续跑,表单不会被永久遗忘而卡死会话。
ClarificationGuardMiddleware 保证每轮最多一个 ask_question_tool 调用并阻断并行工具,使表单与工具计划保持一致。
什么时候用
structured_clarify 用于澄清提问与显式确认——部署清单、破坏性操作确认、方案分支选择。仪表盘、图表、长生命周期面板请使用 Mermaid 工件或产物文件:表单用于「问」,不用于「展示数据」。
大文件内联保护
HTML/SVG/Mermaid 工件默认在对话流中自动展开渲染。当工件超过 1 MB(LARGE_FILE_THRESHOLD)时,内联渲染会优雅降级:
- 不发起内容 fetch,也不执行
srcDoc渲染(避免 OOM / 浏览器卡顿)。 - 显示精简回退卡片,展示文件大小与 「全屏查看」 按钮。
- 点击后由
ArtifactPortal通过隔离 URL 模式(iframe src)加载内容——无论文件多大都没有性能风险。
参见:Agent 配置 — 工具加载。