Skip to main content
本教程将向您展示如何为 Agent Server 运行收集用户反馈,并自动将其关联到 LangSmith 中的 追踪记录。创建运行时,在请求体的 feedback_keys 字段中包含相应的键。响应将为每个键返回一个预签名 URL,您的客户端可以使用这些 URL 来收集 Agent Server 运行的用户反馈。 LangSmith 利用反馈持续改进您智能体的实现。要了解更多关于 LangSmith 中反馈的工作原理,请参阅 LangSmith 反馈

工作原理

  1. 创建运行时,在请求体中包含 feedback_keys。例如,调用 POST /threads/{thread_id}/runs/stream 时,将请求体中的 feedback_keys 设置为:
  2. 响应中的 feedback 对象包含每个键对应的预签名 URL。例如,feedback 对象为:
  3. 请求返回的 URL(例如 POST /api/v1/feedback/tokens/{token_id}),以将反馈键与 Agent Server 运行生成的追踪记录关联起来。更多详情,请参阅 LangSmith API 参考
  4. LangSmith 使用选定的反馈键(例如 user_likeduser_disliked)将提交的反馈与该运行关联起来。

调用带有 feedback_keys 的流式运行 API

创建一个运行,并从响应中解析 feedback 对象。

处理流式 feedback 事件

流会发出类似以下的 feedback 事件:
data 中的每个键都对应您传入 feedback_keys 的一个值。每个值都是一个生成的 URL,您的客户端可以调用该 URL 来提交该运行的反馈。

使用生成的 URL 提交反馈

当用户选择一个反馈选项时,向相应的 URL 发送 POST 请求。也支持 GET 请求。更多详情,请参阅 LangSmith API 参考 例如,如果用户点击了”踩”按钮,则调用 user_disliked URL:
此请求成功后,LangSmith 将使用键 user_disliked 在追踪记录上记录反馈。

优化反馈数据模型

user_likeduser_disliked 键也可以建模在单个键下,例如 user_score 例如:
  • 对于 user_liked,使用 key="user_score"score=1
  • 对于 user_disliked,使用 key="user_score"score=-1
这可以简化分析,因为所有用户偏好信号都分组在一个反馈键下。 反馈数据模型是灵活的,应根据您的用例进行设计。例如,某些应用程序可能更喜欢单独的布尔式键(user_likeduser_disliked),而其他应用程序可能更喜欢单个数字分数(user_score)或具有多个反馈键的更丰富的评估标准。

在客户端 UI 中实现生产化

生产化的解决方案将通过您的前端暴露生成的反馈 URL,而不是手动调用它们。 示例高级实现:
  1. 从您的后端或前端创建运行。
  2. 捕获 feedback 对象并存储返回的 URL。
  3. 渲染反馈控件,例如”赞/踩”按钮和反馈表单。
  4. 提交反馈时,根据用户的反馈意图,向相应的反馈 URL 发送 POSTGET 请求。
  5. 提交后,可选择禁用反馈控件并向用户显示确认信息。