简要总结
Session Binding Channel Agnostic Plan
这页说明书在讲一个“会话绑定”的新计划。你可以把它想成是给一个聪明的机器人助手定规矩,让它知道该把回话送到哪里去。现在,机器人有时会把一句话说两遍,或者忘记自己说过话,这个计划就是要修好这些小问题。它先从一个叫 Discord 的聊天软件开始改,改的时候会非常小心,不会影响其他正在正常使用的小朋友。
五岁小孩版解释
这个计划就像是在给一个送信员定新规矩。以前,这个送信员(也就是我们的机器人)有点糊涂,有时候会把一封信送到两个地方,或者用了旧钥匙打不开门。我们现在要教他变得更聪明、更可靠。
第一步:定下新的核心规矩 我们要先写下一些新的规则和工具,让送信员知道怎么工作。这就像给他一本新的工作手册。
- 我们定义一些新词,比如“绑定目标”(要送信给谁)和“会话状态”(信是不是正在送)。
- 我们创建一个“会话绑定服务”,这是送信员的总指挥部。它负责记住要把信和哪个对话绑在一起,还能查名单、更新状态和解开绑定。
第二步:为一种特定的信规划新路线 我们现在只先处理一种叫做“任务完成”的信。我们增加一个“绑定投递路由器”,它只负责决定这种信该送到哪里。
- 当“任务完成”这种信需要送时,就由这个新路由器来决定目的地。
- 其他种类的信(比如“任务开始确认”信)还走原来的老路,先不改变。
第三步:让 Discord 软件来当助手 Discord 就像一个具体的邮局大楼。新规矩下,它还是我们的主要助手,但只负责它自己大楼里的事。
- 它要负责创建或找到正确的聊天线程(就像大楼里的小房间)。
- 它要用正确的方式(比如用“Webhook”这种快速通道)把绑定的信息送出去。
- 它要检查小房间是不是还开着,没有上锁或消失。
第四步:修好现在知道的几个小毛病 我们要趁这次机会,把几个已经发现的问题修好。
- 更新钥匙:当送信员重复使用一个旧的“线程绑定管理器”(就像一把旧钥匙)时,要记得给他换上新钥匙(最新的令牌),这样他才能开门。
- 记得打卡:当通过“Webhook”快速通道送信后,一定要记得更新频道的活动时间戳,告诉大家这里刚有人说过话。
- 不要送错门:当一个会话已经绑定到一个小房间(线程)时,回话就必须送到那个小房间,不能再偷偷送到主大厅去。
第五步:保证大家的安全 我们改规矩时会非常小心,不会影响到不想参加的小朋友。
- 有一个叫
channels.discord.threadBindings.spawnSubagentSessions的开关,默认是关着的(false)。 - 只要这个开关关着,所有在 Discord 里玩的小朋友就感觉不到任何变化,一切照旧。
- 只有当我们特意打开这个开关时,新的送信规矩才会生效。
一些重要的提醒和约定
- 这次先不改什么:这次我们不会增加新的聊天软件(比如 Slack),也不会改动更底层的通信协议。一个叫“ACP”的更大计划也留到以后再做。
- 必须遵守的规矩:
- 选目的地和写信内容是两件分开的事。
- 如果已经绑定了小房间,信就必须送到那里。
- 不能从绑定的小房间偷偷改道去主大厅。
- 如果实在送不到,要明确地告诉大家“我送不到,现在换条路”,不能偷偷换。
- 怎么开始用:我们会像搭积木一样,一点点把新东西加进去,同时用很多小测试来检查它是不是工作正常,保证不会把原来的东西弄坏。