上海初创小厂面经:Agent 项目与 AI 编程工作流
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 这个对话 AI 项目,你主要负责哪些部分?
- 参考了什么开源框架?核心 Agent 框架怎么搭建?实现了哪些核心功能?哪些功能是你自己做的?
- 你们主要是在 SDK 外围管理上下文,还是也修改了 SDK 内部的架构?
- 系统提示词设计了哪些层面?
- 内容拦截模块是怎么实现的?
- 系统提示词加载在哪些位置?框架自带的提示词有没有修改?整个提示词设计和调用链是什么样的?
- 这些模块和系统提示词,具体哪些由你负责?
- 做这个项目用了哪些 AI Coding 工具?为什么选择这些工具?
- 工具里的模型如何选型?是否涉及多模型编排?
- 你使用 AI 开发的完整流程和方法是什么?
- AI 工具的费用,公司会给你报销吗?
- 订阅是几个人一起使用?
- 除了刚才提到的需求梳理技能,还使用过哪些 Skill?
- 你说的 MCP 工具是 Context7 吗?
- 有没有一套完整的项目文档流程?在哪个阶段写什么文档?如何让 AI 完成这些文档?
- 你和 AI 商量出的技术方案,拿给 Mentor 或 Leader 后,他们通常会指出什么问题?
- 哪些问题是你和 AI 容易一起遗漏,但有经验的人能够发现的?
- 刚才提到的代码分支问题,你认为最核心的原因是什么?
- 业余时间有没有做开源项目、开发服务,或者探索一些有趣的 AI 应用?有没有自己摸索出开发方法或 Skill?
- 除了合作项目,有没有给自己或身边的人做过一些日常使用的东西?
- 你觉得自己的 AI 使用水平,在学校或专业里处于什么位置?
- 前端有没有参与过?还是主要做后端?
- 你是什么时候开始使用 AI 编程工具的?最开始用的是什么?
- 随着模型能力越来越强,从独立开发、全栈开发的角度,你觉得自己还需要加强哪些能力?如果加入我们公司,最需要学习什么?
- 反问:公司主要做什么业务?主要产品有哪些?
- 反问:入职后有没有 Mentor 或 Leader 带?还是主要自己借助 AI 完成工作?
- 反问:这一轮之后,还有二面或其他面试环节吗?
《参考解析》
Agent 框架与上下文管理:被问「怎么搭的」时,要能把框架拆成几个可命名的部分:循环与规划(ReAct 式的「思考—调工具—观察」循环,或先规划再执行的 Plan-and-Execute)、工具层(工具注册表、参数 schema、鉴权与超时、错误返回给模型的方式)、记忆与上下文(会话历史、长期记忆、检索到的知识,以及截断、摘要、分级保留策略)、可观测性(完整 trace 落库,便于回放与评测)。「在 SDK 外围管理还是在 SDK 内部改动」这个问题的潜台词是问你有没有读懂框架:外围做的是编排、提示词拼装、状态机与重试;内部改的是消息组装、工具调用解析、流式事件。回答要诚实区分自研与现成能力,并说明为什么选择在外面做——通常是升级框架版本时改动可控、逻辑可测。上下文管理还要讲清 token 预算怎么分配,历史被截断时保留哪些(系统提示词、最近若干轮、被引用的文档片段),以及摘要压缩的触发阈值。
系统提示词的分层与加载链:能画出一条清晰链路是最加分的。常见分层:全局基础提示(身份、语气、安全边界)→ 角色/场景提示(本次任务的职责与流程)→ 技能或工具提示(某个 Skill 的步骤与约束)→ 会话与用户上下文(历史、记忆、检索片段)→ 输出格式约束。加载位置通常是「服务端拼装模板 + 框架自带的默认提示 + 具体 Agent 的覆盖项」,要能说清优先级和冲突时谁覆盖谁、哪些是运行时动态注入的、哪些走缓存。工程要点:把提示词当代码管理(版本化、可 diff、可灰度和回滚),关键约束放在靠近末尾的位置以减少被长上下文稀释,给模型明确的反例与拒答条件。被追问「框架自带提示有没有改」时说清改了哪几句、为什么改、改完怎么验证(固定用例回归对比)。
内容拦截模块的实现:通常做双向拦截,入口挡输入、出口挡输出。输入侧用规则(敏感词、正则、黑白名单)+ 分类模型(涉政、色情、暴力、人身攻击等标签)+ 会话级频率与行为特征;输出侧除了同样的分类,还要检查是否泄漏系统提示词与内部数据、是否给出了不该给的结论。设计上要讲清几件事:拦截点放在链路的哪一层(网关、Agent 循环的工具返回处、还是最终响应前)、命中后怎么处置(直接拒绝、改写、转人工、还是给兜底话术)、误杀与漏杀的权衡(宁可漏还是宁可杀,按场景定阈值)、以及所有命中都要落审计日志(命中规则、模型置信度、原始内容、处置结果)以便复盘与申诉。补充一句评测方式:准备标注好的对抗样本集,定期跑准召,模型或规则改动后必须回归。
AI Coding 工具选型与研发流程:工具选型不要按名气答,按场景答:需要大规模跨文件改动用具备代码库检索与编辑能力的 Agent 型工具,单文件补全用编辑器内联补全,长文本理解与方案讨论用支持长上下文的对话模型,跑命令与验证用能执行终端的形态;模型选型看代码能力、上下文长度、成本、是否需要私有化,多模型编排通常是为了「便宜的做量、强的做难题」或按任务类型路由。完整的开发流程可以按阶段说:需求澄清与拆解(产出验收标准)→ 方案设计与技术选型(含影响面与回滚)→ 编码(小步提交、分支与命名规范)→ 自测与验证(必须真的跑起来、看日志与测试)→ 文档与知识沉淀。文档流程要说清「哪个阶段产出什么」:需求阶段的需求说明与验收标准、设计阶段的技术方案与接口契约、开发中的变更记录、上线后的复盘。AI 在这条链里能产出草稿,但评审与验收责任在人。
AI 容易和你一起遗漏的问题、以及怎么答「个人项目」:面试官问「Mentor 通常指出什么问题」,其实在看你有没有把 AI 当同事而非答案机器。AI 与人共同盲区通常集中在:跨模块与跨团队的副作用(改了公共依赖、影响其他人的调用方)、数据一致性与并发边界(重试、幂等、事务范围)、上线与回滚路径(灰度、开关、数据迁移)、非功能需求(性能、监控、告警、成本)以及权限与安全。有经验的人一眼看出问题,往往是因为他们知道系统里有哪些隐含约束。回答时举一个具体例子,并说明你后续怎么补上这个能力(例如设计阶段强制列出影响面与回滚方案、review 时按清单过一遍)。至于个人项目与 AI 熟练度这类问题,用事实说话:你给自己或身边人做过什么、解决什么真实问题、用了哪些工具与方法、沉淀出什么可复用的 Skill 或流程,比自评「我很擅长 AI」有说服力;被问「还需要加强什么」,结合岗位业务给出真实短板与学习计划,别套模板。