外观
需求与证据覆盖矩阵
这张表建立简历主张与本次实现的对应关系;“已实现”不代表历史代码如此,也不代表真实服务已在线验证。测试名称以system/tests/为准,实际结果见验收报告。
| 简历主张/需求 | 本次功能 | 学习章节 | 代码位置(system/app/) | 验证证据 | 面试题 |
|---|---|---|---|---|---|
| 双Agent与上下文隔离 | 角色化模型节点、服务端工具白名单 | 章节 | graph.py:context / tools.py:ToolSession | test_context_and_tool_permissions | 题目 |
| LangGraph流程编排 | StateGraph、条件边、修订循环、PostgresSaver | 章节 | graph.py:build_graph / run_workflow | test_new_process_resumes_checkpoint | 题目 |
| JSON Schema教材与报告 | Pydantic、严格工具Schema、有限修复 | 章节 | schemas.py / providers.py:run_model | test_schema_error_separate_from_business_error | 题目 |
| Function Calling | 模型请求、参数校验、执行结果回传 | 章节 | tools.py:execute / providers.py:run_model | test_real_model_tool_roundtrip_and_usage(Mock) | 题目 |
| pgvector按元数据检索 | 精确余弦、等级/语言/地区/namespace过滤 | 章节 | retrieval.py:retrieve | test_empty_and_region_mismatch | 题目 |
| Embedding与资料处理 | 切分、向量生成、入库、来源offset | 章节 | retrieval.py:split_text / embeddings | test_source_version_and_offsets | 题目 |
| RAG来源追踪与更新 | 文档/片段版本、来源快照、active管理 | 章节 | retrieval.py:import_document / conflicts | test_source_version_and_offsets / test_source_conflict | 题目 |
| 术语与地区文化 | 显式规则、不可随检索遗漏的配置 | 章节 | retrieval.py:get_rules / content.py:business_review | test_cross_chapter_fact_conflict;固定评测culture | 题目 |
| 跨章节一致性 | 角色facts与同book已批准版本比较 | 章节 | content.py:book_facts / business_review | test_cross_chapter_fact_conflict(结构facts) | 题目 |
| 生成评审局部修订 | 稳定block ID、Patch限制、版本差异 | 章节 | content.py:apply_patch / graph.py:review | test_complete_revision_approval_delivery / test_patch_cannot_change_unreviewed_or_unknown_blocks | 题目 |
| 人工通过退回终止恢复 | interrupt/Command、版本校验、审核覆盖记录 | 章节 | graph.py:human / api.py:decide | test_revision_limit_and_manual_edit / test_stale_decision_and_termination_recovery | 题目 |
| 图片与TTS真实适配 | 配置化原生HTTP协议、禁止模拟兜底 | 章节 | media.py:external_bytes | test_image_and_tts_contract(Mock);在线未验证 | 题目 |
| 视频合成 | FFmpeg图片+音频+可选字幕轨 | 章节 | media.py:make_video | test_complete_revision_approval_delivery(真实FFmpeg) | 题目 |
| 任务依赖与重试 | SKIP LOCKED、租约/心跳、失败分类 | 章节 | worker.py:claim / run_once | test_media_timeout_bounded_retry / test_expired_lease_and_fencing | 题目 |
| 进程中断与未知结果 | checkpoint、节点缓存、回执、人工核对 | 章节 | graph.py:cache_node / media.py:reconcile | test_killed_worker_resumes_after_generation / test_unknown_external_result_not_silently_retried | 题目 |
| 增量更新与旧版本隔离 | 内容hash、版本门禁、旧任务失效 | 章节 | media.py:media_identity / db.py:save_version | test_incremental_edit_and_old_result_protection / test_inflight_old_asset_cannot_finish_new_version | 题目 |
| 交付完整性 | 批准、任务集合、sha256、媒体有效性、ZIP | 章节 | media.py:complete_delivery / delivery_zip | test_corrupt_asset_blocks_delivery | 题目 |
| 质量成本可观测 | 事件、usage、未知费用、固定样本评测 | 章节 | providers.py:run_model / scripts/evaluate.py | test_missing_usage_is_unknown_cost / evidence/evaluation.json | 题目 |
| 工具安全与资料注入 | 上下文标记、受限工具、无任意执行 | 章节 | tools.py:ToolSession / providers.py:SYSTEMS | test_context_and_tool_permissions;语义抗注入未在线验证 | 题目 |
整份简历与扩展知识
| 范围 | 准备内容 | 代码范围 | 面试入口 |
|---|---|---|---|
| AI口语/拍照学习 | 会话状态、播报打断、识图重试与路由 | 讲解与假设设计,不冒充本教材系统已实现 | Q17–18 |
| MQTT课堂 | 指令序号、状态快照、重入与去重 | 讲解与场景分析,不扩成教学平台 | Q19 |
| Flutter/Web/多城市交付 | 组件边界、策略/模板方法、配置驱动、跨端状态 | 简历事实+技术复盘 | Q21 |
| 自动化测试与CI | 分层测试、回归、发布/回滚 | 本包GitHub Actions为新实践;历史Jenkins单独说明 | Q22 |
| 开源/协作 | 维护者决策、兼容性、需求边界、事实证据 | 不实时宣称Stars数字 | Q23–24 |
| 12组对比 | 层级、关系、选型、最小示例 | 微调/MCP/Reranker等不强制进业务代码 | 概念对比 |
部署与体验需求
| 需求 | 交付位置 | 验证方式 |
|---|---|---|
| Docker配置与运行 | system/Dockerfile、compose.yaml、.env.example、requirements.lock | 当前Docker不可用;配置结构检查与本地原生集成分开记录 |
| 数据迁移与初始化 | migrations/001、002与app.cli | 自动化迁移/seed测试;全新隔离数据库 |
| 工作台/API | app/ui.html、app/api.py | TestClient API测试;浏览器视觉检查状态单列 |
| VitePress与Pages | package-lock.json、docs/.vitepress、wrangler.toml | 实际构建、链接、浏览器导航/搜索;Pages上线待用户账号 |
| 四周路线与题库 | plan/、core/、interview/ | 目录、关联、STAR与事实标签检查 |
| 真实与模拟区分 | settings.mode、namespace、事件、manifest | 无密钥不回退测试;worker模式隔离测试 |