面试过程不卡顿,
评估结果有证据。
ProView 并不是把候选人塞进一个巨大的聊天窗口。系统巧妙地将一次面试拆分为两层:前端负责低延迟的自然连续对话;后端异步链路(Sidecars)则默默沉淀结构化数据、评估证据和长期记忆。
不是给模型喂入无限的上下文,而是给模型当前最有用、最可控、可恢复的结构化特征。RAG 在此不仅是 QA,更是控制 Token 预算的精细阀门。
候选人只看到自然语言问题;评分、Rubric、隐藏记忆和 Checkpoint 均通过严谨的 Schema 留在底层数据库,避免复杂 JSON 破坏前台对话体验。
小林:3 年前端,简历写了 React 后台、权限模块和大表格性能优化。
这页后面的每个模块,都围绕同一场面试解释:系统不是泛泛聊天,而是一步步验证小林是否真的做过性能优化、能否说清定位过程、有没有量化指标,以及权限模块理解到什么深度。
核心业务流转流水线
点击下方节点查看模块底层流转机制。体验优先的实线主链路与负责繁重计算的虚线旁路做异步隔离。
系统分层架构图
这部分按一次面试的处理链路拆层,回答“从配置输入到最终报告,中间每一层各负责什么”。它比基础设施分层更适合面试讲解,也能和上面的核心流水线直接对应。
核心组件选型与测评矩阵
这部分回答“为什么有这些组件、怎么评估它们是否有效、失败时如何兜底”。每张卡片都区分当前状态和下一步,不把未来生产化能力说成已经完成。
Prompt Context Builder
每轮提问前负责组装角色、任务、RAG 证据、对话状态和输出约束。
避免把完整 JD、简历、题库和历史都塞进 prompt,让模型只看当前最有用上下文。
token usage、prompt latency、metadata completeness、follow-up relevance、fallback usage。
RAG miss 时走关键词和上一轮继承;下一步补 context packing 日志和 prompt version 对比。
RAG Context Selector
不是普通问答库,而是给面试官选择当前轮相关证据和评分口径。
降低 token 成本、减少召回噪声,让同类问题复用更稳定的 rubric。
precision、recall、faithfulness、context relevance、latency、token cost、RAG hit/miss/failure。
关键词归类、弱追问继承、综合表现兜底;下一步建立评估集、query log、rerank 和 context packing。
Interview Agent
唯一直接面对候选人的主链路,负责自然提问、追问和节奏控制。
把候选人可见输出和 hidden metadata 分离,避免复杂 JSON 影响对话体验。
SSE latency、visible question quality、JSON leakage count、duplicate question rate、fallback question count。
metadata 失败时仍可输出纯文本问题;下一步用真实短面试 smoke 验证体验。
Evaluation Agent
按 turn_id + dimension 异步评分,最多两个主维度,不阻塞候选人看到下一问。
评分耗时且需要结构化输出,放在主链路会增加等待和解析风险。
evaluation.coverage_rate、failure_rate、latency、JSON parse failure、evidence completeness。
记录 turn_evaluation_failed,报告阶段使用已有 evidence 或模板 fallback;下一步补真实流程延迟监控。
Memory / Summary Agent
把长面试历史压缩成 hidden memory card 和 context checkpoint。
不用完整历史拼接,也不只依赖进程内记忆,兼顾 token、延迟和重启恢复。
context_compacted_event_count、latest_context_version、summary failure count、open_thread_count、estimated_tokens。
Summary Agent 默认关闭或短超时,失败回退确定性 memory card;下一步做长面试 compaction smoke。
Report Agent
聚合 turns、metadata、evaluations、memory checkpoint 和 RAG evidence 生成最终报告。
报告不能只凭最后印象总结,需要能回到具体轮次和过程证据。
report success rate、fallback success rate、evidence coverage、dimension completeness、format repair count。
主 LLM 失败时用 turn_evaluations 生成模板报告;下一步持续验证 evidence schema。
Monitoring
只观察系统健康和聚合信号,发现异步 Agent 静默失败。
多 Agent 可能后台退化但前台仍可对话,必须用聚合指标发现问题。
health summary、agent-events rollup、evaluation coverage、context compaction、RAG retrieval、report generation。
不返回候选人回答、问题原文、报告正文、evidence 原文、hidden memory、checkpoint payload、RAG query 或文档内容。
Learning LLM
读取安全聚合投影,输出需要人工审核的改进建议。
学习闭环要先做建议和审核,不能让模型自动修改 Prompt、Rubric、RAG 或题库。
signal-summary HTTP 200、suggestions fallback rate、requires_human_review、unsafe field leakage count。
默认关闭,异常不 500;下一步做 staging smoke 和审核队列设计。
Database / SSOT
结构化事实源,保存 turn、metadata、evaluation、event、checkpoint 和 report snapshot。
多 Agent 协作必须围绕同一事实源,否则会轮次错乱、重复评分或恢复失败。
断线恢复、幂等 upsert、checkpoint rehydrate、报告 evidence 追溯、structured route smoke。
派生结果失败时保留原始 turn 可重试;下一步设计 PostgreSQL / Supabase structured migration。
Redis Future Layer
云端阶段的缓存、队列和协调层,不作为权威事实源。
本地优先阶段不引入 Redis,避免运维复杂度;多 worker 场景再用它削峰和协调。
cache hit rate、queue latency、lock conflict count、worker retry rate、SSE session recovery。
Redis 丢失不影响数据库事实;未来用于 session cache、prompt cache、agent queue 和 distributed lock。
自然对话抛给前台候选人;Rubric 与隐藏状态机下沉至后端。消除长 JSON 引发的响应卡顿与泄露风险。
避免全量资料灌装模式。RAG 在系统内负责精细裁剪,只把当前轮次迫切需要的评估口径塞入 Prompt。
Interview Agent 负责候选人可见主链路,评估与压缩放在异步旁路,保证对话体验不断线。
主报告 LLM 失败时,报告系统可以检索 turn_evaluations 里的过程证据,生成一份基础但可用的保底报告。
专题深度架构图解
探索模块间的流转契约与防线设计 (Architecture Deep Dive)
小林的大表格优化,Prompt 到底怎么组装?
当前阶段是项目深挖,小林刚说“我用了虚拟滚动,页面不卡了”,但没有提供指标。系统不会把完整简历和题库都塞给模型,而是只组装这轮需要的信息。
💡 Context Selector,而非 QA 库
这里的 Context Builder 可以理解成“每一轮提问前帮 AI 面试官翻笔记”。它不是直接回答问题,而是先判断这一轮该问什么,再从 JD、简历、题库和历史记录里挑出最相关的几条材料。比如聊到性能优化,就只给模型大表格优化经历、JD 的性能要求、题库里的评分标准,以及“上一轮没说指标”这个状态。
🛡️ DeepSeek 柔性防线
如果主模板总是问“可以再展开讲讲吗?”这种泛问题,DeepSeek 只作为 prompt assistant 生成候选修复稿,例如要求追问瓶颈、定位方法和量化指标。它不能接管主流程,生成结果必须经过字段校验、版本记录和 Output/Metadata 边界检查。
新岗位没命中题库时,面试也不能停
如果用户填“AI Agent 应用工程师”,知识库暂时没有匹配题库,系统记录 rag_retrieval_missed,但仍用 JD 关键词和通用工程能力继续问。
同一句回答,不只考一个能力
小林回答:“三万行数据直接渲染会卡,我用 Chrome Performance 看到 DOM 节点太多和滚动重排,后来用虚拟滚动和接口分页,首屏从 2.8s 降到 900ms。”
异步隔离与降级
复杂的大模型网络请求可能带来级联延迟。这里把打分、总结等计算较重的逻辑放到 Sidecar 异步执行。即使 Evaluation 链路异常,主链路也可以基于短期记忆和数据库里的结构化状态继续生成下一问,降低候选人等待风险。
🤝 基于 Schema 的静默契约
Agent 群并不通过自由长文本进行高风险通讯,而是通过数据库里的 turn_id、turn_evaluations 和 agent_events 等结构化键完成交接。
后台评分悄悄变成下一句自然追问
如果小林第一版只说“我用了虚拟滚动,页面就不卡了”,Evaluation Agent 后台判断缺少瓶颈和指标。
第 3 轮说过的权限模块,第 25 轮还能接回来
第 3 轮小林说:“我做过 React 后台系统,主要负责权限模块和表格性能优化。”如果只看最近几轮,第 25 轮可能已经忘记权限模块还没深挖。
📉 拒绝“无限填鸭”神话
动辄几万 Token 的全量投喂会增加延迟和注意力噪声。这里通过 Memory Compaction 管线,把传递给模型的上下文尽量控制在留有输出余量的预算区间。
🤖 Summary Agent 的降级边界
如果配置允许,Summary Agent 才会参与梳理,生成语义更自然的卡片。但如果该 Agent 超时或输出异常,系统不等待,直接回退到底层的确定性 memory card,降低主链路中断风险。
checkpoint 不能只放内存
面试进行到第 18 轮,系统把压缩后的上下文写入 agent_events。后端重启后,内存没了,但可以从最新的 context_compacted event 恢复。
候选人还在正常面试,但后台评分已经坏了
AI 面试官还能继续问问题,小林也没有感觉异常。但 Evaluation Agent 因为 JSON 解析失败,连续多轮没有写入 turn_evaluations。
👁️🗨️ 看健康,不看隐私
监控层只向上游 API 暴露 rag_missed_count 或 fallback_success_rate,帮助工程师发现“静默失败”,但不返回候选人简历文本、聊天内容、报告正文或 hidden memory。
🗄️ 为什么不用 Redis?
在核心架构选型上,如果把 checkpoint 只存在易失性 Redis 中,实例重启或缓存丢失后就可能无法恢复关键上下文。所以 ProView 当前将关键变迁写入 agent_events 作为 Single Source of Truth,保证关键状态可追溯。未来 Redis 会作为缓存、队列和协调层接入,但不替代数据库。
没命中题库,不等于系统失败
用户填写“AI Agent 应用工程师”,知识库暂时没有匹配题库。系统记录 missed,但仍用 JD 关键词和通用工程能力继续问。
报告不是总结聊天,而是整理全过程证据
面试结束后,Report Agent 聚合每轮沉淀下来的事实和评分,而不是把完整聊天记录交给模型凭印象写。
报告基于证据聚合
报告不走“把完整聊天记录发给大模型自由总结”的路径。关键结论会尽量关联到中途记录的 turn_evaluations。证据不足时,系统标记“信息不足”,避免给出过度判断。
🛬 主报告失败时的保底路径
假设最终写报告时大模型 API 异常,系统不会只返回报错。依赖前期的 Evaluations 数据结构,Fallback 机制可以利用预设模板,通过查表生成一份基础但可用的数据指标报告。
主报告 LLM 失败,也能拿到基础报告
如果最终报告生成时云端 LLM 失败,系统基于 turn_evaluations 生成模板化报告。
高并发、高可用、高稳定性演进计划
这部分明确区分当前本地优先架构、Backend V1 Freeze 后增强,以及未来 Cloud / SaaS 生产化目标。当前版本不宣称已经完成高并发云端部署。
当前本地优先架构
- Electron + Flask + SQLite,适合本地桌面端和单用户场景。
- Direct SQLite structured source 保存 turns、metadata、evaluations、agent_events。
- 进程内上下文缓存只做加速,agent_events 是 checkpoint 恢复事实源。
- Evaluation、Memory、Report、Monitoring 作为 sidecar 增强链路,失败不阻塞下一问。
Backend V1 Freeze 后增强
- 真实短面试 smoke:确认 structured turns、metadata、evaluations、final report evidence。
- 长面试 compaction smoke:验证 context_compacted event、latest mirror、rehydrate 和去重写入。
- Monitoring / Learning endpoints smoke:只返回聚合指标和人工审核候选建议。
- Learning LLM staging smoke:默认关闭,异常 fallback,不影响面试。
Cloud / SaaS 生产化目标
- Flask API 无状态化,PostgreSQL 作为云端权威事实源。
- Redis 承担 session cache、prompt cache、agent queue、distributed lock。
- Agent Worker Pool 处理 Evaluation、Summary、Report,配合 retry 和 dead letter queue。
- 模型 provider fallback、限流、熔断、超时、健康检查、备份和恢复演练。
高并发规划
- API 无状态化,SSE 连接治理。
- Redis 缓存 session context、prompt context 和 RAG top chunks。
- Agent 任务队列削峰,worker pool 水平扩展。
- LLM 调用并发限制,同一 session_id 使用分布式锁避免重复生成下一问或报告。
高可用规划
- PostgreSQL 是权威事实源,Redis 只做缓存和协调层。
- 数据库备份、恢复演练和 API health check。
- 多模型 provider fallback,报告生成 fallback。
- Summary Agent 默认关闭或短超时,Monitoring 失败不影响主流程。
高稳定性规划
- timeout、retry、idempotent upsert、fallback report。
- context checkpoint rehydrate,避免后端重启后丢关键上下文。
- evaluation coverage、RAG hit/miss/failure、report success/fallback 监控。
- 全量 unittest、真实流程 smoke、长面试故障演练。
隐私与安全边界
- Candidate UI 不展示 hidden metadata、score、evidence 或 checkpoint。
- Monitoring 只返回 counts、rates、categories、status、alerts。
- Learning suggestions 必须 human review,不自动改 Prompt / Rubric / RAG / 题库 / HR script。
不返回候选人回答、问题原文、报告正文、evidence 原文、suggestion 原文、hidden memory、checkpoint payload、RAG query 或 RAG document content。它们只读安全聚合投影,用来诊断系统健康和生成可审核的改进建议。
按架构层拆分的下一步 Roadmap
这里不照搬升级计划的 Phase,而是映射到架构层,方便面试时说明“当前已完成什么、下一步为什么做这些”。
数据事实层
- Backend V1 freeze,完成真实短面试 smoke。
- 验收 structured turns / metadata / evaluations 和 final report evidence schema。
- 设计 Supabase / PostgreSQL structured migration。
- 远程表主键、唯一约束、索引、隐私字段隔离和 Direct SQLite 返回 shape 对齐。
RAG 层
- 建立 100 到 300 条评估 query,覆盖面试出题和报告场景。
- 记录 RAG query log、retrieved items 和 context packing 结果。
- 建立多策略实验框架:规则 rerank -> cross-encoder rerank -> offline LLM rerank。
- 控制 token、去重、保留 source id,低质 chunk 标记 suspicious / quarantine。
Memory 层
- 长面试 context compaction smoke,验证 context_compacted event 和 latest.json 镜像。
- 验证后端重启后 rehydrate,同一 latest answered turn 不重复写 checkpoint。
- Summary Agent staging,评估独立 client/config 的生产化必要性。
- 未来引入 memory chunk embedding,并按当前回答召回相关 memory chunks。
Monitoring / Learning 层
- Monitoring endpoints smoke,Learning signal-summary smoke。
- Learning suggestions staging,Operator UI 可选。
- 只展示 aggregate monitoring / learning,建议进入审核队列。
- 维护 approved / rejected / archived 状态和 prompt / rubric / RAG change proposal tracking。
生产化层
- PostgreSQL 云端权威事实源,Redis session cache / prompt cache / queue / lock。
- Agent worker pool、retry queue、dead letter queue。
- 模型 provider fallback、限流、熔断、SSE 连接治理。
- 压测、告警、灰度发布、数据库备份和恢复演练。