Skip to content

上下文工程方案

系统级文档:定义清海如何感知用户身份、组装对话上下文、管理数据权威性。所有产品功能共用此架构。


📌 概述

清海是多通道 AI 企业助理,需要在每次对话中「知道自己在和谁说话」。本文档定义从消息进入到回复输出的完整上下文链路,是所有业务功能的底层基础。


🔀 消息处理主链路


🪪 身份识别

识别方式

通道识别方式说明
飞书用户 ID 直接匹配飞书消息自带 open_id,直接查用户档案
Telegram管理员预配置 + /bind 自助绑定管理员后台配置,或员工通过 /bind 输入手机号自助关联飞书身份

识别结果分支

📩 收到消息
 ├── ✅ 已识别员工 → 加载完整组织上下文,正常对话
 ├── 🚫 离职员工 → 完全静默不回复,自动通知人事确认
 ├── ⚪ 未关联 TG 用户 → 正常对话,无组织上下文
 └── ⚪ 外部人员 → 正常对话,无组织上下文

「认识」的表现方式

清海不区分首次/后续对话,统一采用自然带入方式——需要时自然使用身份信息,不刻意问好或强调身份。

表现示例
需要时自然带入身份「我帮你同步给你们部门负责人张三」
不需要时不刻意提及正常对话,不强调对方身份

📂 数据权威性

数据源层级

📂 飞书通讯录(唯一权威数据源)

 ├── 组织字段 → 部门、职位、直属上级
 │   └── ⚠️ 始终以飞书为准,覆盖其他来源

 └── 同步到 ──┬── 用户档案(unified_users)
              └── 用户画像(PersonCard)
                   └── 其他字段(偏好、习惯等)由对话积累,保留不覆盖

核心原则

飞书通讯录是唯一权威数据源。组织相关字段(部门、职位、上级)始终以飞书为准。用户画像(PersonCard)作为补充——由对话积累的用户偏好、习惯等信息保留不覆盖,但组织字段发生冲突时以飞书为准。

数据同步机制

项目说明
🔄 同步频率每 30 分钟自动同步一次
📊 同步范围全部部门(多层级递归)+ 全部人员
🔎 数据自检每次同步后自动检查数据完整性
📬 缺失通知缺失信息通知管理员,每日最多一次

🧩 上下文组装

清海的 AI 对话上下文分层组装,从固定到动态:

┌─────────────────────────────────────────┐
│ 1️⃣  固定层(每次对话都有)                │
│    角色设定 + 技能列表 + 人格特征         │
├─────────────────────────────────────────┤
│ 2️⃣  身份层                               │
│    用户姓名 / 部门 / 职位 / 上级 / 角色   │
├─────────────────────────────────────────┤
│ 3️⃣  动态层                               │
│    会话简报 + 相关记忆检索结果             │
├─────────────────────────────────────────┤
│ 4️⃣  历史层                               │
│    近期完整对话 + 旧对话压缩摘要           │
├─────────────────────────────────────────┤
│ 5️⃣  当前消息                             │
│    用户本次发送的内容                      │
└─────────────────────────────────────────┘

身份层注入内容

对于已识别的员工,身份层包含:

字段来源示例
姓名飞书通讯录王五
部门飞书通讯录产品部
职位飞书通讯录产品经理
直属上级飞书通讯录张三
角色系统判定老板 / 管理者 / 普通员工
是否管理者飞书通讯录是 / 否

🔒 角色与权限

三级角色

角色判定规则信息可见范围
👑 老板配置文件指定(1-2 人)系统内全部信息
📋 管理者飞书通讯录中标记为部门主管本部门相关信息
👤 普通员工其他所有人仅自己相关 + 公司公开信息

权限影响范围

角色影响清海的以下行为:

  • 对话回复:根据角色动态调整可回答范围
  • 查询结果:返回前检查角色权限
  • 通知接收:不同角色收到不同级别的通知

🔔 通知上下文

通知升级链

MVP 阶段采用两层固定链路,不做 AI 自主判断。后续迭代引入智能升级。

防骚扰机制

规则说明
⏱️ 冷却机制同一任务的升级链共用 4 小时冷却
🌙 时段限制非工作时间不发送通知
📊 每日上限复用现有的每日通知上限控制

🔄 人员变动处理

事件系统行为
👋 新员工入职飞书录入 → 30 分钟内同步 → 对话时自然带入身份
🔀 人员调岗飞书修改 → 下次同步更新 → 清海无缝切换上下文
🚪 员工离职飞书标记 → 同步后标记 → 静默不回复 + 通知人事(后续迭代可增加交接期)
📝 信息不全正常对话 + 静默通知管理员补充

📏 上下文预算分配

定义各层上下文的 token 预算,确保总量可控、优先级清晰。

预算分配

内容预算上限优先级超限策略
1️⃣ 固定层角色设定 + 技能列表 + 人格~2,000 tokens最高,不裁剪
2️⃣ 身份层姓名/部门/职位/上级/角色~200 tokens最高,不裁剪
3️⃣ 动态层会话简报 + 记忆检索~3,000 tokens按相关性排序,截断尾部
4️⃣ 历史层近期对话 + 旧对话摘要~4,000 tokens近期保留完整,旧对话压缩摘要
5️⃣ 当前消息用户本次输入不限最高

总量控制

  • 总上下文预算:约 10,000 tokens(不含当前消息和模型回复)
  • 工具结果 Pruning:历史中的 tool_use 结果超过阈值后自动裁剪,只保留摘要
  • 旧对话 Compaction:超过保留窗口的历史对话自动压缩为摘要,释放 token 空间
  • 优先级裁剪顺序:历史层(最先压缩)→ 动态层(截断低相关性)→ 固定层/身份层(不裁剪)

设计原则

AI 的回复质量取决于上下文质量。预算分配的核心原则:宁可少放不相关的记忆,也不要挤掉近期对话。近期对话是连续性的基础,记忆检索是千人千面的基础,两者平衡,固定层和身份层永远保留。

Boss-AGI · 超级 AI 企业助理