AI主动访谈与问题引擎
个人智能 技术代码 interview
根据数据缺口、矛盾、时间和重要度主动提出高价值问题。
模块职责
- 根据数据缺口、矛盾、时间和重要度主动提出高价值问题。
- 维护“AI主动访谈与问题引擎”内部对象的生命周期与隐私边界。
- 通过稳定公共接口与其他模块协作,禁止跨模块直接修改数据表。
明确不负责
- 不直接处理其他模块的领域规则。
- 不把用户原文静默替换为AI生成内容。
- 不在浏览器或移动端复制服务端权限判断。
已接入的领域规则(当前仍非完整模块验收)
- 保存原始回答时生成带“待确认”标记的候选摘要。
- 候选不会自动写入长期记忆或个人模型。
结构化字段
| 字段 | 中文名 | 编辑类型 | 必填 | 敏感性 | 业务说明 |
|---|---|---|---|---|---|
question | 访谈问题 | textarea | 是 | 普通 | 用于记录“访谈问题”的业务值。 |
theorySource | 理论来源 | text | 否 | 普通 | 用于记录“理论来源”的业务值。 |
priorityScore | 优先级分数 | number | 是 | 普通 | 用于记录“优先级分数”的业务值。 |
answer | 用户原始回答 | textarea | 否 | 敏感 | 用于记录“用户原始回答”的业务值。 |
followUp | 追问内容 | textarea | 否 | 普通 | 用于记录“追问内容”的业务值。 |
proposal | 结构化候选 | textarea | 否 | 敏感 | 用于记录“结构化候选”的业务值。 |
interviewStatus | 会话状态 | select | 是 | 普通 | 用于记录“会话状态”的业务值。 |
askedAt | 提问时间 | datetime | 否 | 普通 | 用于记录“提问时间”的业务值。 |
八项可执行功能
| 编号 | 功能 | 规划版本 | 完成状态 | 独立外部边界 | 执行策略 |
|---|---|---|---|---|---|
INT-001 | 理论问题库 | V1.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
INT-002 | 问题候选生成 | V1.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | generate |
INT-003 | 优先级评分 | V1.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
INT-004 | 主动访谈会话 | V1.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
INT-005 | 上下文追问 | V2.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
INT-006 | 原始回答保存 | V2.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
INT-007 | 结构化候选确认 | V2.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | verify |
INT-008 | 禁问与降频 | V3.0 | 部分实现:领域闭环尚未完成,功能入口失败关闭 | 无独立外部边界注记 | record |
本模块状态:partial 8。状态由专用规则、聚合持久化、PC/移动行为和自动测试共同决定;外部 blocker 与历史 Provider 记录只作独立注记,不提升完成度。
HTTP 与数据生命周期
该模块使用 Record Kernel /api/v2/records/interview 统一提供创建、列表、详情、修改、归档、恢复、修订历史、执行历史和功能入口;POST/GET /api/v2/records/:moduleCode、GET/PATCH /api/v2/records/:moduleCode/:recordId、POST /archive、POST /restore、GET /revisions、GET /executions、POST /features/:featureId;共 9 条获批路由,无 DELETE。Identity typed 快照的通用写入失败关闭,typed 读取也必须使用 v2 专用接口;非 typed legacy core 仅保留只读兼容。 v2 不提供永久销毁,旧 v1 兼容链不从新页面调用。创建和更新先经 SystemRecordPolicyPort,由内核外的 SystemRecordPolicyRegistry 依次执行专用规范化、跨字段规则和 Catalog 字段规则;带键 cache miss 先取得事务内幂等预占,再执行无副作用策略;策略失败会让预占与数据库、审计副作用共同回滚,成功 cache hit 则直接精确恢复首次 revision。功能地址会先校验目录归属;partial 功能统一返回 HTTP 501 FEATURE_NOT_IMPLEMENTED,且不新增修订、执行、审计或幂等记录。迁移维护 active 时普通写返回 HTTP 503 SYSTEM_MAINTENANCE,读接口继续可用。MEM-001 至 MEM-008 的通用功能地址均返回对应专用地址错误,必须改用各自的 /api/v2/memory/... 专用入口。
参数化代码入口
apps/api/src/kernel/recordsapps/api/src/record-policiesapps/api/src/feature-registryapps/web/app/pages/modules/[moduleCode]apps/web/app/composables/useRecordKernel.tsapps/mobile/src/pages/module/index.vueapps/mobile/src/pages/recorddocs-site/modules/interview.htmlMobile 使用 /pages/module/index?module=... 与 /pages/record/* query 容器;MEM-001 使用 /pages/memory/text/create,MEM-002 至 MEM-008 使用 /pages/memory/text/detail 专用治理详情,TAX-001 至 TAX-008 共用 /pages/taxonomy/tags/index 的标签、分类、合并、编号、标题、AI 候选和审计专用交互。 旧 24×5 包装页和 descriptor 副本不属于当前架构。
设计原因
模块目录提供稳定业务语义和白名单;RecordAggregate 只负责公共记录生命周期,不解释 payload。SystemRecordPolicyRegistry 在内核外精确覆盖 Catalog 24 个模块,保留 Routine、Decision、Memory、Interview 的专用规范化,并拒绝未登记模块。Batch 003 固定规范大写 ULID、标题 200/摘要 1000 字符合同、payload 顶层覆盖与 payloadRemove 删除语义、受控 JSON 资源上限、递归敏感字段治理、幂等最小引用和精确 revision/execution 回放。0009 只追加 summary CHECK 与 owner/module[/status] + id DESC 匹配索引。 该等价层与公共加固仅保持普通记录合同,不代表领域功能完成;领域完成仍必须由专用规则、类型化持久化、PC/Mobile 行为和当前自动测试共同证明。
R08 标签与时间修复(2026-09-21)
移动访谈工作台补充持续可见的字段标签;候选记忆仍须人工确认,禁用话题和 Provider 门禁保持不变。双端类型检查通过,真实操作与持久化验收仍为 not_run。
R08 访谈执行与禁问分层(编码阶段)
首页优先会话列表与新建入口;新建表单仅在新建模式展示,详情不重复空白新建。当前会话、实际隐私、当前问题与原始回答先展示,取题策略及题库/隐私管理按需展开并保留输入。状态动作对应现有领域状态机,结束和取消需要确认,均不自动接受候选。切换会话或回答目标前阻止非空回答误绑定;严格回读重试实际调用原回读函数。
已核实 TOPIC 合同使用主题文本而非摘要,按去除首尾空白和大小写折叠后的全名匹配。页面可从已授权读取的主题中选择,并从当前会话准备禁问草稿,仍需明确保存。QUESTION_HASH 为精确问题摘要,保留专家配置与旧规则,不生成随机摘要、不把问题原文写入规则原因。解除或恢复禁问需确认。主题改名不会扩展旧规则,近义主题不被推断为同一对象。
当前未新增跨端问题摘要计算或旧摘要到原文映射;历史原始回答读取后的提案恢复能力仍以现有接口为限。模板检查仅为编码证据,连续回答、暂停回读、已禁问题/同主题/改名/重复规则、取消解除、权限与持久化均待统一业务验收。
R08 当前问题精确禁问
双端从已授权读取的当前回合准备禁问草稿,再由用户确认保存。服务端 current 回合读取附带可选 forbiddenQuestionHash,严格使用现有 question.trim().toLocaleLowerCase()、稳定 JSON 和 SHA-256 算法;不依赖手机或浏览器语言,不采用候选 contentHash。该字段不进入持久化内容摘要和历史 revision,既有存储与匹配规则保持原样。旧服务缺少该字段时明确禁止准备,不在客户端猜测。
规则列表只使用当前已读取且实际携带服务端摘要的回合映射问题;未知历史摘要不还原原文。准备绑定会话、回合、版本与问题,确认前后复核;切换规则类型清理旧摘要。保存前读取已有规则,相同有效规则提示无需创建,已解除规则提示用户明确恢复。确认前冻结输入,弱网沿用原请求;回读仅清理当前上下文中未被后来编辑的规则草稿,回答不受影响。服务端语言变化会继续影响既有匹配,这是原合同边界,本次未迁移历史规则。定向测试不替代真实双端业务验收。
可选降频策略与读取异常
未配置降频策略与读取异常分开;只有专用策略请求404且稳定码INTERVIEW_NOT_FOUND显示未配置,其他错误明确提示并可重试,未确认配置时禁止以新建修订提交。禁问规则与策略分别处理读取结果,不再用空值吞掉权限、网络或服务异常;GET 不会创建默认策略。
2026-10-02 逐图审计后的界面修复候选
第二批主内容地标复核:PC 访谈工作台在默认布局的 main 内,将多余内层 main 改为普通 div;保留既有属性、指令、标题、路由与鉴权,不把容器语义修正视为领域能力实现。
第二批真实浏览器截图、焦点与读屏验收仍为 not_run;仅此语义标记修正不提高业务完成状态。
2026-10-03 新建访谈可选设置与填写精简
双端新建首屏保持标题、主题和隐私可见,将最大回合数移入默认收起的可选设置,并始终展示默认 10 轮或有效自定义上限摘要。展开和收起保留草稿;草稿仍初始化为 10 并按原合同提交,用户主动清空时省略 maxTurns,由服务端沿用原默认 10。显式非法值必须展开设置、提示错误并阻止提交,不能静默回落默认值;合法值仍为 1–100 的整数。
本次只调整 INT-004 新建交互,不改变会话类型、后端合同、数据库、状态机、原请求冻结/幂等重试及严格回读。既有会话详情与禁问治理保留。新增定向组件行为证据不替代真实 HTTP、数据库、浏览器、原生设备或 Provider 验收;上述运行态本批为 not_run,Interview 仍为 partial 8,Catalog 仍为 24 项 implemented_local、168 项 partial。
2026-10-03 追问来源选择与填写精简
Mobile 将手填上一回合编号改为当前会话已读取的 ANSWERED 回合选择,使用回合序号与问题作为选项;Web 保留既有选择器并补足保护。初始为空,由用户明确选择,不自动选择第一项或最新项,不为选择器追加下载原始回答。加载中、读取失败与真正没有已回答回合分别提示,不能用手填编号绕过有效来源集合。
新 FOLLOW_UP 提交校验所选回合仍属于当前会话且已回答;无效选择阻止 POST,NEXT 继续省略 previousTurnId。Mobile 拒绝空值、非整数、负数和越界索引;旧上下文事件不改写新选择。局部读取代次避免旧响应、失败或 finally 覆盖新会话;不同会话成功载入清除追问来源,同会话刷新保留仍有效的选择。保留非空回答切换保护及无关草稿,读取或既有 mutation、回执对账、不确定重试期间锁定来源修改。
原冻结请求、原幂等键重试与已受理后的仅 GET 回读不从后来选择重建。服务端仍校验 owner、同会话、已回答、原始回答、revision、隐私、禁问、限流与 Provider。仅此客户端输入切片不改变 API、DTO、数据库、Provider 或自动接受候选,不提高 INT-001~008 的 partial 状态。INT-004 可选回合上限章节保持原样;真实 HTTP、PostgreSQL、runtime、浏览器、设备与 Provider 本批为 not_run。证据:docs/验证/2026-10-03-访谈追问来源选择证据.md。
2026-10-11 Web 候选行优先级按钮修复
“计算优先级”明确调用命名行处理器,检查读取完成、请求锁、当前行对象和路由会话归属后,再选择实际点击的候选并进入原优先级命令。重复点击、失效行、跨会话、读取中或失败后旧列表均不能改变目标或发送新命令。
原候选修订、输入冻结、原键重试、严格 current/revision 回读及原会话刷新保持不变;已受理失败只重试读取。评分算法、后端合同、权限、数据库、Provider、候选接受与原始回答不变。证据:docs/验证/2026-10-11-Web访谈优先级按钮修复证据.md。组件与内存传输测试不代表真实浏览器、HTTP、数据库、设备或 Provider 验收,模块仍为 partial。
截至 2026-10-11 17:08 UTC 本说明的证据截止时点,五批合并源码尚未执行组合验证(NOT_RUN);此前完整 Web 的两次失败仍为 FAILED。独立候选的局部通过、历史全量数字和旧累计 GO 均不能代表当前合并版本通过。真实浏览器、认证 HTTP、数据库、设备与部署仍未验收,领域状态保持 partial。
2026-10-11 Mobile 候选优先级动作修复
移动端候选行的“计算优先级”改为命名处理器实际调用原计算流程,保留原生按钮及既有 click/触摸映射。先检查读取、写入、待回执与未知发送锁,以及当前候选对象、会话和路由,再更新选择;旧行、读取失败后的旧列表及跨会话事件不能发送新计算。
候选编号与修订仍在原流程冻结;弱网沿用原输入和原幂等键,已受理后仅重试评分 current、revision 和父候选回读,回答与上下文草稿保留。不修改 Web、API、DTO、算法或存储。本局部候选的负控、定向测试及未运行项见 docs/验证/2026-10-11-Mobile-INT003优先级动作证据.md;真实浏览器、原生设备、数据库与 Provider 本批仍为 not_run,INT-001~008 仍为 partial。
截至 2026-10-11 17:08 UTC 本说明的证据截止时点,五批合并源码尚未执行组合验证(NOT_RUN);此前完整 Web 的两次失败仍为 FAILED。独立候选的局部通过、历史全量数字和旧累计 GO 均不能代表当前合并版本通过。真实浏览器、认证 HTTP、数据库、设备与部署仍未验收,领域状态保持 partial。
2026-10-12 Web 既有问题编辑持续标签
普通访谈总览经“题库与隐私管理”展开并选择问题后,既有编辑表单为问题、主题、重要度、优先级和修改原因补上原生持续可见标签,沿用原表单样式。原字段顺序、绑定、必填、长度、数值范围、选项和保存处理器保持;折叠与技术显示切换不重置草稿。
PATCH 继续使用所选问题编号、当前修订、修改原因与原保留理论来源;原冻结输入、幂等键和严格 current/revision 回读不变。未修改 API、默认值、权限、隐私、Provider 或数据库。完整 SFC 与内存传输新回归 21/21、原六套 Interview 回归 89/89 通过,共 110 个不重复测试用例;基线 H0 3 项通过、五标签精确 RED 成立。原 Nuxt 类型、共享构建与六项静态检查通过;两条既有共享包装器警告保留。最终文档的链接检查、双次幂等生成与镜像核对通过,源码包内容核对见交付摘要。浏览器、读屏、认证 HTTP、数据库、设备和部署仍未验收,模块维持 partial。证据:docs/验证/2026-10-12-Web访谈问题编辑持续标签证据.md。
2026-10-13 Mobile 访谈待确认提示主题(源码候选)
两个恢复面板只把固定浅色背景/边框改为既有 warning-soft、warning 和 text 令牌;尺寸、间距、控件、文案和工作台脚本模板保持。详情根沿用列表与新建的 MobileThemeProvider,使显式偏好同时提供 Wot、普通元素与标题栏颜色,不依赖相反的系统主题。
已受理后仍只严格 GET 回读,不确定发送仍沿用原输入和原幂等键;锁、会话归属、原始回答、隐私、Provider 与 API 不变。新增计划 126 与旧相关 139 共 265 例全部 not_run;源码纯色计算不代表真实 SSR、像素或设备。高对比预设按既有规则强制启用 highContrast;80 个实际 Provider 计划组合保留,其中两个 false 输入验证该归一化。四十纯色配对及公式完整列于配套证据文档。运行、生成镜像、独审与发布 pending;模块仍 partial。证据:docs/验证/2026-10-13-Mobile访谈待确认主题证据.md。
实际离线验证终态
准备检查点之后,基于 b841c1f 的新副本执行:基线 H0 122 通过/2 跳过;完整主题基线 122 通过/2 精确 RED,分别为详情缺少 Provider 与固定 pending 配色。候选新 126 与旧 139 共 265/265 通过,80 个 Provider 组合及 40 个纯色计算完整保留。原共享构建、Mobile 生产类型、六项静态门禁和 H5 生产构建退出 0;生产类型不涵盖测试类型。
初轮相对导入门禁将测试预期 import 字符串误判为导入而退出 1,已保留;仅改等值字符串拼接,重新执行全部上述验证,生产与断言值不变。真实性检查 JSON 报告的两条历史包装器警告保留;H5 的 Sass 弃用及 interview/api.ts 与 health/api.ts 混合动态/静态导入警告保留。最终文档生成/镜像/包核对另由冻结交付记录绑定;浏览器像素、键盘、设备、真实服务与部署未验收,领域状态不提高。
2026-10-16 Mobile 题库维护列表续页
维护区复用原首屏GET,之后显式刷新或一次加载最多100条更早问题,保留草稿、原行对象与已选详情。第101条已在完整SFC事件专项中实际选择、修改、归档及恢复,沿用原幂等键、命令与严格current/revision回读;写后首页刷新不丢弃有效详情修订。后续页不扩充INT-002 picker或knownTopics。
新维护事件与迟到请求受登录、可见、路由和读写锁代次保护;显式登记所属Page并精确解绑。候选19套977项全过,新题库54、原Interview233、资源486、编译204全部保留;原类型、严格声明合同及MP/H5生产构建通过。宿主采用真实Vue树与明确的Uni生命周期桥替身,真实平台页面、设备、认证网络与数据库未运行。旧候选picker实时index及全Interview写恢复auth/visibility仍是残留,模块保持partial;完整文档门以最终交付回执限定。
2026-10-22 Web 回答保存后未提交草稿恢复
保存期间的不同后输入(包括纯空白)不再随 ASKED 表单消失而成为不可处理的草稿。原严格回读成功后,独立恢复区保存原会话、回合与问题归属,明确区分“原回答已保存”和“本段未提交”,使用只读文本框供选择复制;不调用剪贴板、不新增浏览器持久化,也不自动追加到已回答回合或下一题。
写入、待回执及未知发送期间原输入只读,但已排队后输入仍精确保留。恢复区存在时阻止新回答、切题、切会话与新回合;用户明确确认放弃后才解除。放弃按钮和确认均复核原文、归属与锁,旧事件、取消或后来原文变化不能清除草稿。未提交草稿仅在当前页面内存保留,离开或刷新会丢失,页面明确提示此边界。
API、数据库、Provider、权限、幂等身份和严格回读不变,Mobile 未改。证据:docs/验证/2026-10-22-Web访谈回答后输入恢复证据.md;真实浏览器、输入法、HTTP、数据库、设备与部署未验收,Interview 保持 partial。
提示模板消费与失败事实
问题候选Provider保留可信Prompt拒绝的固定原因,原答案、会话与候选生成前事务边界保持;普通Provider错误仍按原领域合同处理。领域受控HTTP/服务回归不替代真实Provider验收。
详细证据见正式十四批阶段记录及batch01-settings-prompt-consumption-20261026各源冻结/测试报告。当前完整70项验收未完成。