Appearance
应用编排
应用编排负责把模型、提示词、业务资料和外部能力组合成可运行的应用。第一次搭建只配置模型和提示词;遇到明确需求后,再增加变量、知识库、技能、工具、文件或记忆。
一、先按问题选择配置
| 当前问题 | 优先处理 | 本页位置 |
|---|---|---|
| 应用无法运行,或生成能力不合适 | 模型 | 模型 |
| 回答偏离任务、格式不稳定或越界 | 提示词 | 提示词 |
| 每次运行需要传入不同内容 | 变量 | 变量 |
| 应用不了解院内制度和资料 | 知识库 | 知识库 |
| 需要复用一套任务方法 | 技能 | 技能 |
| 需要查询系统或调用外部服务 | 工具 | 工具 |
| 需要读取或处理文件 | 文件管理 | 文件 |
| 应用忘记前文 | 记忆 | 记忆 |
| 用户不知道怎样开始,或需要语音 | 设置 | 应用体验设置 |
二、模型

如果模型列表为空,先前往模型管理配置模型。
选择时只检查当前任务需要的能力:
- 识别图片或报告截图:模型需要支持视觉输入;
- 调用插件、MCP 或工作流:模型需要支持工具调用;
- 结果要供系统继续处理:模型需要稳定输出所需结构;
- 输入材料较长:上下文长度需要容纳提示词、资料和对话内容。
2.1 模型参数

第一次搭建先使用默认参数。发现明确问题后再调整:
| 表现 | 检查方向 |
|---|---|
| 同一输入的结果波动过大 | 降低生成多样性相关参数 |
| 输出频繁重复 | 检查频率惩罚、存在惩罚等参数 |
| 输出经常中途截断 | 检查最大输出长度及模型限制 |
每次只改一项,并用相同测试输入比较修改前后的结果。
2.2 自由模型

开启后,调用方可以在运行时选择模型。普通应用应固定使用已经测试过的模型;只有接入方确实需要动态选择,并能承担不同模型带来的效果差异时才开启。
三、提示词
提示词至少应写清五件事:
- 角色:应用以什么身份服务谁;
- 任务:必须完成什么;
- 步骤:任务按照什么顺序执行;
- 边界:禁止做什么,遇到高风险请求如何处理;
- 输出:结果需要包含哪些字段,使用什么格式。
| 实际问题 | 优先检查 |
|---|---|
| 回答偏离业务目标 | 核心任务是否明确 |
| 一次询问很多问题 | 是否规定每次只问一个问题 |
| 输出结构不稳定 | 是否给出明确格式和示例 |
| 输出了诊断、处方等越界内容 | 是否写明禁止行为和替代处理方式 |
| 语气不适合目标用户 | 是否写明服务对象和表达要求 |
“专业、智能、准确”不能代替具体要求。模型不知道医院内部规则时,应添加知识库或工具,不要把大量可能变化的业务资料塞进提示词。
已经验证稳定的提示词可以提交到提示词库,或从提示词库中复用。复用后仍需检查变量名称、模型能力和业务边界,参见提示词管理。自动优化提示词当前正在开发,暂不可用。
四、变量
变量用于接收应用每次运行时才确定的输入。提示词负责规定应用长期不变的任务,变量负责把本次任务的实际内容传给应用。
例如:
| Agent 应用 | 可以设置的变量 |
|---|---|
| 报告解读 | 报告内容、报告类型、解读对象 |
| 院内服务助手 | 所在院区、目标科室、用户身份 |
| 病历整理 | 原始病历、输出模板、整理要求 |
| 工作助手 | 任务内容、截止时间、输出语言 |
| 预问诊 | 患者姓名、就诊科室、已有症状信息 |
不应把这些内容直接写死在提示词里,否则每更换一次任务内容都要修改并重新发布应用。
4.1 创建变量

创建变量时,重点确认:
- 变量名称:应用内部引用的标识,例如
report_content。发布后可能被提示词或调用方使用,应保持稳定; - 显示名称:用户在输入表单中看到的名称,例如“报告内容”,应使用业务人员能理解的文字;
- 变量类型:决定应用接收到的数据结构,例如 String、Integer、Object 或 Array;
- 控件类型:决定用户怎样填写,例如输入框、文本域、下拉选择器或日期选择器;
- 是否必填:缺少该输入就无法完成任务时开启;
- 默认值:仅用于大多数任务都相同、且不会造成误用的内容。患者信息、报告内容等不得使用虚构默认值代替真实输入;
- 是否可写:只有变量需要在 Workflow 或 ChatFlow 中通过变量赋值节点改写时才开启,普通 Agent 提示词变量通常保持关闭;
- 是否加密:敏感变量需要在导出时避免直接暴露明文时开启。
变量名称应表达业务含义。使用 report_content、target_department 等名称,不要使用 input1、text2 这类后续难以维护的名称。
4.2 选择变量类型

| 输入内容 | 变量类型 | 推荐控件 | 示例 |
|---|---|---|---|
| 简短、单行的内容 | String | 输入框 | 姓名、科室、标题、语言 |
| 较长的自由文本 | String | 文本域 | 症状描述、报告正文、病历内容 |
| 只能从固定范围单选 | String | 单选框或下拉选择器 | 院区、报告类型、输出格式 |
| 需要从固定范围多选 | Array<String> | 复选框组或多选下拉选择器 | 症状标签、关注项目 |
| 需要按整数处理 | Integer | 数字输入框 | 次数、序号、数量 |
| 可能包含小数的数值 | Number | 数字输入框 | 评分、金额、比例 |
| 是或否的状态 | Boolean | 开关或复选框 | 是否需要摘要、是否隐藏敏感字段 |
| 日期或时间 | Time | 日期选择器或输入框 | 截止时间、预约日期 |
| 结构化对象或数组 | Object / Array | 代码编辑器 | 表单对象、结构化明细列表 |
| 文件或文件列表 | File / Array<File> | 上传框 | 报告、图片、附件列表 |
变量类型应根据应用怎样处理数据选择,控件再根据用户怎样填写选择。例如 String 可以同时使用输入框、文本域或下拉选择器,但提交给应用的值始终是字符串;多选内容应使用 Array<String>,不能因为界面上也是“选择”就继续使用 String。
4.3 在提示词中引用变量
变量通过 {{变量名称}} 引用。例如,报告解读 Agent 创建了 report_content 和 target_audience 两个变量,可在提示词中写:
text
请解读以下报告:
{{report_content}}
解读对象:{{target_audience}}运行时,系统会用本次输入替换对应位置。变量的显示名称只用于界面展示,提示词中必须填写变量名称。例如显示名称是“报告内容”、变量名称是 report_content,应引用 {{report_content}},不能引用 {{报告内容}}。
patient_name 只是同一种用法:创建该变量后,可以在提示词中写“当前服务对象为 {{patient_name}}。”
4.4 验证变量
保存变量后,在预览区域使用一组容易识别的测试值运行应用,并检查:
- 输入区域是否显示正确的名称和填写方式;
- 必填变量为空时,是否阻止运行或给出提示;
- 提示词中的所有变量是否被实际值替换;
- 下拉、数字、复选框等控件提交的值是否符合变量类型,并被应用按预期处理;
- 通过网页、API 等正式渠道调用时,变量名称是否与编排页面一致。
变量没有替换时,依次检查变量是否保存、引用名称是否完全一致、是否误用了显示名称,以及本次运行是否真正传入了值。
五、知识库
需要回答医院制度、诊疗规范、科室服务等内部资料时,先在知识库管理创建知识库并完成文档处理,再返回应用选择并启用。

验证时提出一个答案确实存在于资料中的问题,并同时测试一个资料中没有答案的问题。前者用于确认知识能被检索,后者用于确认应用不会编造内部规定。
六、技能
技能适合封装可重复使用的任务方法、脚本或模板。先在技能管理准备技能,再由 Agent 或 AgentLite 应用选择并启用。

只有多次复用或需要独立维护的方法才值得拆成技能。Agent 和 AgentLite 均支持配置技能,文本生成当前不提供技能配置。
七、工具
应用需要查询业务系统、调用第三方服务或执行工作流时,应添加工具。

工具可能来自插件管理、MCP 管理、工作流管理、平台内置工具或三方服务。

添加并开启不等于配置正确。至少测试一次必须调用该工具才能回答的问题,并检查工具返回失败时,应用是否停止编造结果并给出合理提示。
八、文件
Agent 可以点击 预览与调试 区域顶部的文件按钮展开左侧文件列表,并在文件列表中管理当前应用的文件和目录。测试时使用测试或脱敏文件,并验证应用能否找到、读取和处理目标文件。
AgentLite 和文本生成当前不提供 Agent 的文件管理与文件处理能力。报告截图是否可以直接作为输入,还取决于应用入口和所选模型是否支持视觉能力。
九、记忆

- 上下文轮数:决定应用参考多少轮近期对话。轮数增加会扩大参考范围,也会增加 Token 消耗;
- 全局记忆:让同一用户在不同应用之间共享记忆。医疗场景启用前,应确认数据权限、保存范围和隐私要求。
应用忘记前文时,先确认关键信息是否真的在上下文范围内,再决定是否增加轮数。不要用全局记忆代替业务系统中的正式患者档案。
十、应用体验设置

10.1 对话开场白与问题建议
开场白应说明应用身份、服务范围和用户如何开始。开场白问题出现在新对话开始时;用户问题建议出现在对话过程中,内容不得超出应用已经配置的能力范围。
配置后新建一次对话,检查变量是否替换、服务边界是否清楚、建议是否与当前上下文相关。
10.2 语音
文字转语音需要选择音色,语音转文字需要选择服务商。开关打开但功能不可用时,先检查对应模型、音色或服务商是否已配置。
10.3 最大步数与中断重连
- 最大步数:任务中途停止时,先检查是否达到限制或出现重复调用;
- 中断重连:开启后,连接失败时最多重试 5 次。
不要通过盲目提高最大步数掩盖无效循环。ChatFlow 的流程范围和异常处理主要由画布与节点控制,参见编排画布。
十一、排查回答错误的顺序
- 检查输入:变量、文件和用户内容是否完整;
- 检查事实来源:知识库是否检索到正确内容,工具是否返回成功;
- 检查任务要求:提示词是否明确写出步骤、边界和输出格式;
- 检查模型能力:模型是否支持视觉、工具调用或结构化输出等必要能力;
- 复现并对比:只修改一项配置,用同一组测试问题重新运行。
需要查看某次运行实际使用了什么输入、知识或工具时,进入日志与分析;复杂调用可继续进入链路追踪查看节点输入输出。
十二、编排完成的最低标准
- 模型能够正常调用;
- 提示词能够稳定完成核心任务,并阻止明确禁止的行为;
- 必填变量可以正确传入;
- 已添加的知识库、技能或工具在测试中确实被使用;
- 正常、缺失、越界和异常输入均已测试;
- 修改后已重新测试,准备发布时再执行调试与发布。
