从用户输入,到有依据的 AI 回答
CareerWeave 的 Wiki 不是把 PDF 切块后直接交给模型,而是一套有来源、有状态、有版本和权限边界的职业事实编译系统。
01用户输入
02原始材料
03候选事实
04本人确认
05发布快照
06权限过滤
07LLM 回答
四个知识空间,只有一个人物事实源
职业模型、写作规范和缺口追问。只帮助整理,不能回答候选人做过什么。
来源支持或本人确认的职业事实。招聘方 AI 唯一可使用的人物事实源。
公司、岗位和公开材料。只能用于岗位理解与匹配上下文。
访客当前对话。用于指代消解,但不能反写候选人事实。
用户输入什么,系统存什么
输入原始层结构层初始状态
PDF / WordR2 原件、页面预览区块、坐标、候选事实
extracted编辑器写作文档版本、文本区间内容块与事实映射
draft引导式回答问题、回答、模板版本结构化 Claim
user_asserted用户确认确认事件、操作者、时间Fact Revision
user_confirmed一个事实如何存储
“2024 年主导企业知识助手试点,把首次价值时间从 14 天缩短到 5 天。”
{
"entity": "project:knowledge_assistant",
"predicate": "reduced_time_to_value",
"value": {
"before": { "value": 14, "unit": "day" },
"after": { "value": 5, "unit": "day" },
"scope": "pilot_customers"
},
"attribution": "individual_claim",
"status": "user_confirmed",
"evidence": ["source:block_4"]
}结构化值用于冲突检测、筛选和评测;display_text 用于简历展示与 LLM 阅读。抽取置信度只表示映射把握,不表示内容真实性。
存储分工
关系与控制面
租户、实体、事实修订、证据关联、文档版本、发布快照、权限、访问请求、检索记录和知识缺口。
不可变材料
PDF / Word 原件、解析 JSON、页面预览、导出 PDF、HTML 包和删除清单。
召回索引
按事实修订或项目故事片段索引;命中后必须回 D1 校验快照与权限,永远不作为真相源。
异步编译
解析、抽取、嵌入、导出、到期提醒和删除。任务使用来源 checksum 或 fact revision 做幂等。
LLM 读取链路
- 解析访问权把 private link 解析为 publication、snapshot、scope 和 expiry。
- 理解问题识别是在问人物事实、岗位要求、匹配判断还是隐私信息。
- 结构化 + 语义召回先查 predicate / entity,再用语义检索补充相关项目事实。
- D1 回源校验验证 fact revision 属于该 snapshot 且允许当前 channel 使用。
- 组装 Evidence Bundle提供事实、状态、引用、已知缺口和明确回答策略。
- 受约束生成LLM 输出 answered / partial / not_known,并逐项绑定 fact IDs。
- 输出验证数字与人物断言找不到引用时丢弃答案,降级为“不知道”。
为什么发布必须是 Snapshot
招聘方不读取候选人的实时草稿。每次发布生成不可变快照;公开概要、私密详情、PDF 和候选人 AI 各自拥有事实清单。旧链接不会因候选人继续编辑而悄悄改变。
publication = snapshot_id
+ channel_scope
+ audience_constraint
+ expires_at
+ revoked_at没有答案时:记录 Knowledge Gap,不是 Memory
若招聘方问“她直接管理过多少人”,而资料只有“与 7 人小组协作”,AI 必须明确区分两者并回答不知道。系统只记录归一化缺口、频次和关联快照,待候选人选择是否补充;访客说法不会成为人物事实。
六个会影响实现的产品决策
- 招聘方端是否明确区分“本人确认”和“有文件来源”?
- 直接写作产生草稿事实,是否统一在发布前集中确认?
- Private link 默认固定版本,还是自动跟随最新版本?
- 候选人看到招聘方原始问题,还是只看匿名化的知识缺口?
- 默认删除周期采用 3 个月还是 6 个月;活跃使用是否重置?
- Company Wiki 只用官方来源,还是允许标注清楚的可信第三方?