本页内容
本页内容
开始使用
对话记录所有权
对话记录所有权
提案,部分实现。 聊天的模型可见记录是聊天显示内容的日志。一位所有者为每条出站消息写入该日志。预定作业可以在聊天中运行,也可以在后台运行;他们从不两者兼而有之。第 1 步以 #168996 形式发货。
问题
用户回复他们可以看到的消息。在 #168996 之前,聊天显示的许多消息并不在该聊天的模型历史记录中,并且模型历史记录中的某些条目从未显示:
- 发送到另一个聊天的 Cron 结果仅作为仅转录的镜像或
System:意识注释到达收件人。发送到创建聊天的 Cron 结果使用了单独的规范编写器。 - 作业使用
message工具发送的消息作为仅转录镜像存储在接收聊天中。提供程序重播会跳过它们 (#168683)。 - 故障警报已发送,但未写入任何记录 (#168684)。
- A 作业与
sessionTarget: "session:<key>"传递到不同的聊天,将其整个运行添加到<key>对话中,但没有显示任何内容。
每条路径都有自己的规则,因此每种边缘情况都需要自己的修复。
决定
规则1:文字记录与聊天内容相符
当且仅当 C 显示消息时,该消息才处于对话 C 的模型可见历史记录中。在通道确认传送后,它会被写入一次,与显示的消息相同。
允许的异常,每个异常记录为 warn 运行诊断:
- 目标聊天绑定到不同的座席。消息已发送;没有智能体的成绩单得到它。
- 有效负载仅是本机的(例如,没有文本的 Discord 嵌入)。消息已发送;没有诚实的文字可写。
规则 2:作业在聊天中或在后台运行
| 模式 | 用户意图 | 运行住在 | 结果显示在 |
|---|---|---|---|
| 在聊天 | “每天都到我这里来查看” | 聊天中的正常转折 | 仅限同一个聊天 |
| 背景 | “每天给我发送一份预算报告” | 它自己的作业会话(允许内存) | 一次目标聊天 |
聊天中的作业无法交付给另一个聊天。后台作业永远不会将其运行情况写入聊天记录中;只有其结果通过规则1到达目标。 今天的目标图如下: main 正在聊天; isolated和current是背景(current添加了创建聊天的快照); session:<key> 在向 <key> 投递时处于聊天状态,而在向其他地方投递时必须成为具有自己会话的后台作业。
一位业主
出站发送所有者为每个已确认的可见发送写入脚本条目:自动化结果、故障警报、message-tool 发送和子代理公告。仅当发送是同一对话中运行的回合的回复时,它才会跳过写入,因为该回合已经写入了它。这个跳过是 #99470 中的传递镜像变成仅转录的原因:没有它,重播会显示每个答案两次。 Cron 不保留自己的转录代码。
考虑的选项
- 选择继续,如 Hermes Agent。 Hermes 在新会话中运行每个作业,并默认提供“即发即忘”功能。
cron.mirror_delivery或每个作业attach_to_session将带标签的用户消息添加到目标会话。默认拒绝:对已传递消息的回复无需配置即可工作,并且每个作业的切换是用户必须发现的设置。 - 也始终写入创建聊天。 已拒绝:创建聊天将保留从未显示的消息,因此代理可以引用用户没有看到的内容。运行历史记录已经回答“该作业发送了什么?”。
- 保留收件人镜像和意识注释。 被拒绝:多个作者,尽力而为,无需等待主动转向,无幂等性,并且模型看到有关消息的注释而不是自己的消息。
状态和订单
- Done (#168996). Cron结果去目标聊天一次,通过规范编写器(
src/sessions/background-session-result.ts),确认交付后。镜子和意识笔记被移除。 - 将写入器移至出站发送所有者。 Cron、
message工具、警报和子代理公告使用它;删除 cron 特定路径。关闭 #168683 和 #168684。 - 两种作业模式。 Doctor迁移现有作业。在其他地方交付的
session:<key>作业将成为具有自己的会话的后台作业。该作业丢失了<key>对话作为上下文,因此 Doctor 报告了每个迁移的作业。 - 向模型显示发布作业 (#168685),因此在已传递的消息上“停止此”不需要查找。
在步骤2之前检查的风险
- 重复助理轮流。 在聊天的最后一个助理回复后附加的结果创建两个相邻的助理消息。自 #126860 以来,这已经为
current作业发货,没有已知的故障,但 Hermes 打破了相同的模式(hermes-agent#2221)。为每个受支持的提供程序系列添加提供程序重放测试。 - Session key parity. 写入必须位于入站回复使用的确切会话中。 X 存在已知的不匹配 (#168686)。
- 创建聊天的重置。 重置后隐式路由结果仍然无法关闭(#169258)。根据规则 1,重置聊天是相同的聊天;这需要一个产品决策。
- Prompt 缓存。 条目附加在末尾,并且不会重写早期历史记录,因此缓存的前缀保持有效。
本页有帮助吗?