Skip to content

回答节点

回答节点用于在工作流中向用户返回最终答案。它通常作为聊天流程或对话工作流的终点,将处理结果发送给用户。

使用场景

典型应用

  • 聊天机器人回复 - 在对话工作流中返回 AI 生成的回复
  • 问答系统 - 返回知识库检索或 LLM 生成的答案
  • 表单处理反馈 - 向用户返回提交成功的确认信息
  • 查询结果展示 - 显示数据查询或计算的结果
  • 工作流状态通知 - 告知用户操作的执行状态

节点配置

基础设置(参数面板)

回答内容

要返回给用户的内容。这是唯一的必填参数。

字段属性:

  • 必填字段
  • 支持表达式
  • 支持多行文本输入
  • 支持 Markdown 格式

配置示例:

javascript
// 1. 直接输入文本
"感谢您的提交,我们会尽快处理。"

// 2. 引用 LLM 节点的输出
$('LLM').output

// 3. 组合多个节点的数据
`您好 ${$('聊天触发器').userName}!

根据您的查询,我们找到了以下信息:
${$('知识检索').result}

如需进一步帮助,请随时联系我们。`

// 4. 使用条件表达式
$('AI分类器').class === '紧急'
  ? '我们已将您的问题标记为紧急,客服将在 10 分钟内联系您。'
  : '感谢您的反馈,我们会在 24 小时内回复。'

// 5. 格式化数据展示
`查询结果:

- 订单号:${$('HTTP请求').orderId}
- 状态:${$('HTTP请求').status}
- 金额:¥${$('HTTP请求').amount}
- 创建时间:${$('HTTP请求').createdAt}`

高级设置(设置面板)

节点描述

为节点添加自定义描述,帮助团队成员理解节点用途。

yaml
nodeDescription: "返回订单查询结果给用户"

输出数据

回答节点通常是工作流的终点,不会有后续节点。但在某些场景下,如果需要记录或处理返回的内容,可以访问其输出:

javascript
// 获取返回的答案内容
$('回答').answer

工作流示例

示例 1: 简单问答机器人

聊天触发器
  → LLM 节点
    系统提示词: "你是一个友好的客服助手"
    用户提示词: $('聊天触发器').userMessage
  → 回答节点
    回答: $('LLM').output

示例 2: 知识库问答系统

聊天触发器
  → 知识检索
    查询: $('聊天触发器').question
  → LLM 节点
    系统提示词: "根据以下知识库内容回答用户问题"
    上下文: $('知识检索').results
    用户问题: $('聊天触发器').question
  → 回答节点
    回答: $('LLM').output

示例 3: 分类后的差异化回复

聊天触发器
  → AI 分类器
    输入: $('聊天触发器').message
    类别: ["技术问题", "账户问题", "一般咨询"]
  → 条件分支
    → [技术问题] → LLM(技术专家角色)→ 回答
    → [账户问题] → 知识检索(账户文档)→ LLM → 回答
    → [一般咨询] → LLM(客服角色)→ 回答

示例 4: 多步骤任务完成通知

聊天触发器
  → HTTP 请求(创建订单)
  → HTTP 请求(发送确认邮件)
  → HTTP 请求(更新 CRM)
  → 回答节点
    回答: `您的订单已创建成功!

订单详情:
- 订单号:${$('HTTP请求').orderId}
- 总金额:¥${$('HTTP请求').totalAmount}
- 预计送达:${$('HTTP请求').estimatedDelivery}

确认邮件已发送到您的邮箱。`

示例 5: 错误处理和友好提示

聊天触发器
  → 条件分支(验证输入)
    → [有效] → 处理逻辑 → 回答(成功消息)
    → [无效] → 回答节点
      回答: "抱歉,您的输入格式不正确。请提供有效的订单号(格式:ORD-XXXXXX)。"

最佳实践

1. 内容清晰友好

使用结构化格式

javascript
// ✅ 好的回答 - 结构清晰
`查询完成!

您的账户信息:
- 用户名:${$('数据查询').username}
- 会员等级:${$('数据查询').level}
- 积分余额:${$('数据查询').points}

如需帮助,请输入 "帮助"`

// ❌ 不好的回答 - 信息堆砌
`${$('数据查询').username} ${$('数据查询').level} ${$('数据查询').points}`

使用友好的语气

javascript
// ✅ 友好
"感谢您的耐心等待!我已经为您找到了相关信息..."

// ❌ 生硬
"查询结果如下:"

2. 处理不同场景

成功和失败的不同反馈

javascript
$('HTTP请求').statusCode === 200
  ? `操作成功!您的请求已处理完成。`
  : `操作失败:${$('HTTP请求').error.message}

请稍后重试,或联系客服获取帮助。`

根据数据量调整回复

javascript
$('知识检索').results.length > 0
  ? `为您找到 ${$('知识检索').results.length} 条相关信息:

${$('知识检索').results.map(r => `- ${r.title}`).join('\n')}`
  : `抱歉,没有找到相关信息。

您可以:
- 尝试使用其他关键词
- 联系人工客服
- 访问帮助中心`

3. 保持简洁

避免过长的回复

javascript
// ✅ 简洁明了
`订单 ${$('查询').orderId} 状态:${$('查询').status}

预计 ${$('查询').eta} 送达。`

// ❌ 过于冗长
// 包含大量不必要的细节...

使用分步引导

javascript
// 对于复杂操作,分步引导用户
`第一步完成!✓

接下来,请提供您的联系方式以继续下一步。`

4. 支持多语言

javascript
// 根据用户语言返回不同内容
$('聊天触发器').language === 'zh'
  ? `您好!${$('LLM').output}`
  : `Hello! ${$('LLM').output_en}`

5. 添加后续引导

javascript
`${$('LLM').output}

---
💡 其他可能有用的命令:
- 输入 "菜单" 查看所有功能
- 输入 "客服" 联系人工支持
- 输入 "历史" 查看对话记录`

常见问题

Q1: 回答节点和 LLM 节点有什么区别?

A:

  • LLM 节点: 调用大语言模型生成内容,是中间处理步骤
  • 回答节点: 将最终结果返回给用户,是工作流终点

典型用法:

LLM 节点(生成内容)→ 回答节点(返回给用户)

Q2: 可以在一个工作流中使用多个回答节点吗?

A: 可以,在不同的条件分支中可以使用多个回答节点。

示例:

AI 分类器
  → 条件分支
    → [类型A] → 回答节点(回复A)
    → [类型B] → 回答节点(回复B)
    → [类型C] → 回答节点(回复C)

只有实际执行的分支中的回答节点会生效。

Q3: 回答节点支持哪些格式?

A: 回答节点支持:

  • 纯文本: 普通文字
  • Markdown: 支持格式化文本(根据前端支持情况)
  • 表达式: 动态内容和条件逻辑
  • 多行文本: 使用模板字符串

Q4: 如何在回答中包含换行?

A: 使用模板字符串(反引号):

javascript
`第一行内容
第二行内容
第三行内容`

或使用 \n

javascript
"第一行内容\n第二行内容\n第三行内容"

Q5: 回答内容过长会被截断吗?

A: 取决于前端展示的限制。建议:

  • 将长内容分段
  • 提供摘要 + 详情链接
  • 使用分页或"查看更多"的方式
javascript
// 提供摘要
`找到 ${$('搜索').total} 条结果,以下是前 5 条:

${$('搜索').results.slice(0, 5).map(r => r.title).join('\n')}

输入 "更多" 查看完整列表`

Q6: 如何处理回答中的特殊字符?

A: 在表达式中注意转义:

javascript
// 使用模板字符串避免转义问题
`价格:¥${$('产品').price}
折扣:${$('产品').discount}%
说明:${$('产品').description}`

Q7: 可以在回答中嵌入链接或按钮吗?

A: 取决于前端的支持情况。如果支持 Markdown:

javascript
`操作成功!

[查看详情](https://example.com/order/${$('订单').id})
[联系客服](https://example.com/support)`

如果不支持,可以使用纯文本链接:

javascript
`操作成功!

查看详情:https://example.com/order/${$('订单').id}
联系客服:https://example.com/support`

下一步

相关资源