# 01_老板 AI 秘书与 AI 草稿 ## 1. 模块目标 老板 AI 秘书负责接收老板在飞书机器人私聊或平台输入的一句话,判断意图,并整理成可人工确认的草稿。第一版 AI 只生成草稿或回答,不直接创建事项、不直接创建提醒、不直接发送通知。 ## 2. 第一版做什么 1. 支持老板在平台输入文本。 2. 支持老板通过飞书机器人私聊输入文本。 3. 判断意图类型:`task`、`reminder`、`qa`、`realtime_qa`、`note`、`unknown`。 4. 对 `task` 生成事项草稿。 5. 对 `reminder` 生成提醒草稿。 6. 对 `qa` 直接用大白话回答,不生成草稿。 7. 对 `realtime_qa` 提示第一版暂不支持正式实时查询,不创建草稿、不通知、不做交易判断。 8. 对 `unknown` 追问关键缺失信息,最多 3 个补充项。 9. 支持老板确认、补充/重说、取消草稿。 10. 支持补充/重说 30 分钟上下文,超时后按新输入处理。 11. 支持复杂事项转程经理确认。 12. AI 调用时加载公司背景摘要、老板大白话风格和第一版业务规则版本。 ## 3. 第一版不做 1. 不做老板独立 App。 2. 不做语音、图片、文件上传或多模态输入。 3. 不做员工通用 AI 工作台。 4. 不让 AI 自动替代程经理拆复杂任务。 5. 不让 AI 未经确认直接通知别人。 6. 不做实时天气、新闻、股价、行情查询的正式能力。 7. 不把老板解释中的游戏化表达写进事项标题、接收人、时间、反馈要求等结构化字段。 ## 4. 核心流程 平台入口: ```text 老板输入一句话 -> POST /api/ai-drafts/parse -> 后端加载 prompt_contexts -> 调用 ai_client -> 校验模型 JSON -> 写入 model_call_logs -> 生成 ai_drafts -> 前端展示草稿 ``` 飞书机器人入口: ```text 老板私聊机器人 -> 飞书事件回调 -> 后端验签 -> 匹配平台用户 -> 校验 boss 角色 -> 检查 bot_contexts 是否等待补充 -> 调用 AI 生成或重写草稿 -> 发送飞书确认卡片 -> 写入 feishu_events、ai_drafts、operation_logs ``` 非老板私聊机器人: ```text 收到机器人私聊 -> 匹配用户 -> 发现不是 boss -> 不调用 AI -> 不生成草稿 -> 回复进入平台处理 -> 写入未授权访问失败记录 ``` ## 5. 数据对象 本模块主要使用: 1. `users` 2. `person_mappings` 3. `bot_contexts` 4. `prompt_contexts` 5. `ai_drafts` 6. `model_call_logs` 7. `feishu_events` 8. `failure_records` 9. `operation_logs` 字段以 `docs/contracts/数据对象约定.md` 为准。 ## 6. 接口需求 主要接口: 1. `POST /api/ai-drafts/parse` 2. `GET /api/ai-drafts` 3. `GET /api/ai-drafts/{id}` 4. `PATCH /api/ai-drafts/{id}` 5. `POST /api/ai-drafts/{id}/confirm` 6. `POST /api/ai-drafts/{id}/cancel` 7. `POST /api/ai-drafts/{id}/convert` 8. `POST /api/ai-drafts/{id}/follow-up` 9. `POST /api/feishu/events` 10. `POST /api/feishu/card-callback` 接口格式以 `docs/contracts/API接口约定.md` 为准。 ## 7. 权限规则 1. 飞书机器人私聊入口第一版只允许老板使用。 2. 非老板私聊机器人时,不调用模型、不生成草稿,只记录未授权访问。 3. 老板可以确认、补充/重说、取消自己发起的草稿。 4. 程经理只能确认转给自己的复杂事项草稿。 5. 管理员 / AI 团队只能协助排查,不代替老板或程经理做业务确认。 ## 8. 状态流转 草稿状态以 `docs/contracts/状态流转约定.md` 为准。核心约束: 1. `pending_confirmation` 只能等待确认、取消、补充或转程经理。 2. 未确认草稿不得创建事项、提醒或通知。 3. `parse_failed` 不得继续转换。 4. `converted` 草稿不得重复转换。 5. 补充/重说会生成新草稿,并通过 `parent_draft_id` 指向上一版草稿。 ## 9. 失败和日志 必须记录: 1. 原始输入和 AI 输出摘要。 2. 模型调用使用的背景摘要版本、老板风格版本和业务规则版本。 3. AI JSON 解析失败。 4. 缺少人员映射。 5. 非老板机器人访问。 6. 补充/重说上下文过期。 7. 人工确认、修改、取消、转程经理确认。 不得记录: 1. API Key。 2. 飞书 token。 3. 完整手机号。 4. 完整邮箱。 5. 飞书 App Secret。 ## 10. 给 AI 的测试样例 1. 老板输入“明天上午提醒东东给我订会议室”,应生成 `reminder` 草稿,不直接创建提醒。 2. 老板输入“让剑楠下周给我看一下期货策略风险”,应生成 `task` 草稿,并倾向 `manager_confirm`。 3. 老板输入“今天杭州天气怎么样”,应识别为 `realtime_qa`,不生成事项或提醒。 4. 普通员工私聊机器人,应返回未开放提示,并写入未授权访问记录。 5. 老板点击补充/重说后 30 分钟内再发消息,应关联上一版草稿。 6. AI 输出 JSON 缺少 `draft_type` 时,应写入解析失败,不创建草稿闭环对象。 ## 11. Review 重点 1. 是否严格保证 AI 只生成草稿。 2. 是否所有关键动作都需要人工确认。 3. 是否避免将游戏化表达写入结构化字段。 4. 是否记录模型版本和 prompt_contexts 版本。 5. 是否对非老板机器人访问做了后端权限校验。 6. 是否对模型 JSON 做了结构校验和失败记录。