Module 05
Final Project:OfferPilot
最终实战围绕一个高集成度的真实问题展开:
OfferPilot —— 上传面试录音或文字稿,自动诊断回答质量,输出结构化改进建议。
为什么选这个方向
这个场景同时覆盖 Harness 工程的全部 10 层能力:
- Tools:STT 转写、知识库检索、内容分析、语音分析
- Skills:文字稿诊断、录音诊断、模拟面试、单题对标
- Query Engine:多模型路由、流式输出、缓存、重试
- Context:长面试稿的分段压缩、按需加载参考答案
- Memory:用户画像、弱点追踪、进步趋势
- Permission:面试内容隐私保护、敏感操作确认
- Sessions:长诊断任务的中断恢复、状态回滚
- Command:确定性操作入口(/diagnose, /mock, /report)
- Hook:权限检查、审计日志、上下文压缩、指标收集
- Sub-agent:内容/表达/语音多维度并行诊断
同时,知识库直接复用本项目 learn-agent-interview 模块的 384 道面试题——吃自己的狗粮。
项目仓库
GitHub: https://github.com/ranxi2001/OfferPilot
纯手写 Harness 10 层架构,不依赖 LangChain / LangGraph,直接调用 Anthropic SDK + OpenAI SDK。
文档目录
| 编号 | 文档 | 内容 |
|---|---|---|
| 01 | PRD:产品需求文档 | 产品定位、用户场景、10 层架构映射、技术选型、开发路线图 |
| 02 | 系统架构设计 | 模块划分、数据流、接口定义、手写 Harness 全貌 |
| 03 | Query Engine 实现 | 模型调用层:三 Provider + stream + retry + cache + 路由 |
| 04 | Tools & Skills 实现 | 原子工具 + 任务级 Skill 编排 |
| 05 | 知识库构建 | 385 题导入 + FTS5/embedding 双通道检索 |
| 06 | Context & Memory | 5 层上下文管理 + 克制的跨会话记忆 |
| 07 | Permission & Session | 权限分级 + 检查点恢复 + 审计日志 |
| 08 | Hook & Command | 可插拔治理管线 + 14 个确定性命令 |
| 09 | Sub-agent 编排 | Agent-as-Tool + 并发池 + 上下文隔离 |
| 10 | STT 集成与语音分析 | Whisper/FunASR + 说话人分离 + 语音诊断 |
| 11 | 部署与演示 | CLI 入口 + Demo 演示 + 三种部署方案 |
| 12 | Web UI 交互设计 | Next.js + SSE 流式 + 三大核心交互流程 |
开发顺序
按 Harness 工程的推荐迭代顺序:
- Query Engine → 2. Tools → 3. Permission → 4. Context → 5. Sessions → 6. Skills → 7. Memory → 8. Hooks → 9. Command → 10. Sub-agent
先把单 Agent 做稳,再让它长出团队。