feat: split group and direct context enhancement

This commit is contained in:
xmanrui 2026-09-01 02:06:22 +08:00
parent 38096d1589
commit 75ebaebf2e
21 changed files with 1423 additions and 873 deletions

View file

@ -194,13 +194,13 @@ HR 机器人
→ 告诉模型希望怎样理解和使用这些事实
```
当前功能方案把“上下文增强”设计为机器人卡片上的设置入口。点击后打开弹窗,从上到下设置三个维度:
当前功能方案把“上下文增强”设计为机器人卡片上的设置入口。点击后打开弹窗,群聊与私聊各自设置三个维度:
- **在哪些会话中使用**:群聊和私聊两个独立开关,默认均关闭。
- **提供哪些来源事实**:五个字段中默认只选 `senderId`,也可按当前入口增加或取消字段。
- **如何使用这些事实**:增强提示词默认留空,可从问号查看使用说明和示例,也支持一键填入示例或清空。
- **是否在当前场景使用**:群聊和私聊两个独立开关,默认均关闭。
- **为当前场景提供哪些来源事实**:每个场景都可从五个字段中选择,默认只选 `senderId`。
- **当前场景如何使用这些事实**:群聊与私聊各有一份增强提示词,默认留空,可分别查看说明、填入示例或清空。
群聊与私聊共用字段选择和提示词正文,分别决定是否启用。例如提示词可以是:
群聊与私聊不共用字段选择或提示词正文。例如群聊提示词可以是:
```text
有 senderId 时用它区分发言人;
@ -208,7 +208,7 @@ HR 机器人
不要在普通回复中展示 senderId 和 botId。
```
用户只编辑增强提示词正文;非空时,`<dsh_im_source_guidance>` 和 `</dsh_im_source_guidance>` 由 dsh-im 自动添加。清空并保存后不再附加提示词块,也不会自动填入示例;所选来源字段仍按会话开关发送。
私聊可以另行配置更轻松或更详细的表达策略。用户只编辑各场景的增强提示词正文;非空时,`<dsh_im_source_guidance>` 和 `</dsh_im_source_guidance>` 由 dsh-im 自动添加。清空并保存某一场景后,该场景不再附加提示词块,也不会自动填入示例;另一场景不受影响。
以当前会话已开启、五个字段全选且均可用、正文非空为例,dsh-im 最终发送:
@ -231,11 +231,11 @@ HR 机器人
这项扩展已经超出原 Issue“传递五个字段”的最小范围。若实施,应该明确区分:
- 来源字段语义和真实值由 dsh-im 维护;用户可以选择发送哪些字段,不能手工改写来源事实;
- 增强提示词按机器人保存正文,非空时由插件添加外围标签;首次未配置时保持为空,可选择填入示例;
- 群聊、私聊独立控制启用范围;当前会话类型关闭时,两个增强块都不附加;
- 增强提示词按机器人、按群聊/私聊场景分别保存正文,非空时由插件添加外围标签;首次未配置时保持为空,可选择填入对应示例;
- 群聊、私聊分别保存启用开关和来源字段;当前会话类型关闭时,两个增强块都不附加;
- 所选字段无可用值时省略来源块,提示词为空时省略提示词块;两者都为空则保持原消息;
- 使用说明属于用户提示词增强,不是系统提示词,也不是完整 Agent Preset;
- 本方案共用一份提示词;若未来需要分场景的不同模板,可以另行扩展,不等同于当前的两个启用开关。
- 接收消息时只读取其真实会话类型对应的字段和提示词,不允许另一场景的配置串入。
这让“上下文增强”从一次性的数据附加,进一步成为用户可以明确配置的上下文策略:哪些场景需要增强、提供哪些信息,以及希望模型怎样使用,三者各有独立的选择空间。