专业面试面经
-
自我介绍
-
询问项目具体做什么
-
你平常用ai写代码多吗
-
ai写的代码你觉得怎么样
-
你觉得现在各个领域最好用的模型分别是什么
6. 你知道SDD吗
在 2026 年的 AI 开发语境下,SDD 通常指 Spec-Driven Development(规格驱动开发)。
如果你刚才还在聊 Vibe Coding,那么 SDD 就是它的"解毒剂"或"进化版"。简单来说,Vibe Coding 是靠感觉和口语描述,而 SDD 则是通过极其精确、结构化的规格说明书(Spec)来约束 AI,确保它生成的代码不跑偏。
- 什么是 Spec-Driven Development (SDD)?
SDD 的核心理念是:规格即真理,代码是细节。
在传统开发中,文档往往是落后于代码的;但在 SDD 模式下,开发者(或架构师)的首要任务是编写一份 AI 能够完全理解的"合同(Contract)"。这份合同定义了:
-
Outcomes (目标): 系统最终要实现什么。
-
Constraints (约束): 性能、安全、架构模式(比如必须用微服务、必须用某个版本的库)。
-
Scope (边界): 明确 AI 哪些能做,哪些绝对不能动。
-
Verification (验证): 如何通过自动化手段确认代码符合规格。
- 为什么说 SDD 是 Vibe Coding 的进化?
| 维度 | Vibe Coding (感觉编程) | SDD (规格驱动开发) |
|---|---|---|
| 输入 | 模糊的自然语言("弄个酷炫的侧边栏") | 结构化的规格文档(定义接口、状态机、安全性) |
| AI 角色 | 创意合作伙伴(容易产生幻觉) | 严格的执行者(受规格约束) |
| 质量控制 | 靠人工肉眼修 Bug | 靠规格自动生成的测试和逻辑校验 |
| 适用场景 | 快速原型、个人小项目 | 复杂的工业系统、企业级架构 |
- SDD 的核心工作流:四阶段闭环
在 2026 年的主流 Agent 框架(如 Cursor 的高级模式或新出的 Antigravity)中,SDD 通常按以下路径运行:
-
定义规格 (Specify): 人类编写结构化的
.spec文件。 -
生成测试 (Test Gen): AI 根据规格自动生成单元测试和集成测试。注意:此时还没有写代码。
-
受控实现 (Implement): AI Agent(Implementor)读取规格和测试,编写代码直到所有测试通过。
-
架构校验 (Verify): 另一个独立的审计 Agent(Verifier)根据规格检查代码是否违反了架构原则(例如:是否引入了不该有的依赖)。
- 为什么 SDD 对你(AI/控制工程背景)很重要?
考虑到你正在做的"冰箱全生命周期管理系统"和工业专利,SDD 具有极高的实战价值:
-
应对复杂性: 工业系统(如 APS 调度、异常溯源)的逻辑极其严密,Vibe Coding 产生的随机性可能会导致严重的生产事故。SDD 能强制 AI 在你设定的因果逻辑框内工作。
-
可解释性: 专利和学术论文需要清晰的逻辑链。通过 SDD,你可以追溯代码的每一行是为了满足规格中的哪一条需求。
-
减少架构腐烂: 当你使用多个 Agent 协同开发时,SDD 充当了"宪法"的角色,防止不同 Agent 写的代码在风格和架构上打架。
- 其他可能的 SDD 定义
虽然在 AI 领域 SDD 很火,但在其他领域它还有以下含义:
-
Software Design Description (传统定义): IEEE 1016 标准定义的软件设计描述文档,这是传统的工程规范,强调文档化。
-
Semantic Data Dictionary (语义数据字典): 在知识图谱和数据科学领域,用于定义数据的含义和关联。
-
Synthetic Data-Driven (合成数据驱动): 在模型训练中,指完全依靠合成数据进行 Fine-tuning 的策略。
总结一下:
现在的 SDD 已经从"写给人的文档"变成了"写给 AI 的执行指令集"。
在你的项目中,你有没有尝试过把你的业务流程解耦(Decoupling)逻辑写成一份详细的规格书,然后直接丢给 Cursor 这种 Agent 去自动实现整个模块?
- 你对MCP,Skill这些agent相关的领域有什么了解吗
在 2026 年的 Agent 架构演进中,MCP 和 Skill 是实现从"聊天机器人"向"自主智能体(Autonomous Agent)"跨越的核心组件。
作为算法工程师,我们可以从标准化协议 与功能解耦的角度来深度解析这两个概念。
1. MCP (Model Context Protocol) ------ AI 界的"USB-C"协议
MCP 是由 Anthropic 发起并迅速成为行业标准的模型上下文协议 。它的核心目标是解决 "N 个模型与 M 个数据源/工具" 之间的连接爆炸问题。
-
核心逻辑: 在没有 MCP 之前,如果你想让 Agent 读取你的本地文件、查询 GitHub 或者连接数据库,你需要为每个 Agent 编写特定的集成代码。MCP 提供了一个通用的底层接口(基于 JSON-RPC),让模型可以像插上 USB 接口一样,即插即用地访问外部数据源和工具。
-
三大支柱:
-
Resources(资源): 提供数据的只读访问(如本地文件、数据库记录、API 文档)。
-
Tools(工具): 允许模型执行的操作(如运行脚本、发送邮件、调用你的 3D 渲染引擎)。
-
Prompts(提示词模板): 预定义的交互模式,帮助模型更好地理解如何使用这些数据。
-
2. Skills (技能) ------ Agent 的"肌肉记忆"
如果说 MCP 是连接的通路,那么 Skills 就是 Agent 经过封装的、原子化的执行能力。
-
定义: Skill 是将特定的逻辑、API 调用或复杂的工作流封装成模型可感知的"技能包"。在 Dify、LangGraph 等框架中,一个 Skill 通常包含:功能描述(Description) 、输入参数定义(JSON Schema)和执行逻辑(Code/API)。
-
从"工具调用"到"技能习得":
-
Level 1 (Tools): 模型只是被动调用 API。
-
Level 2 (Skills): 模型理解在什么场景下组合哪些技能。例如,在你的工业异常溯源项目中,Agent 拥有"查询传感器日志"、"计算因果分数"、"生成自修复策略"三个 Skill,并能根据异常情况自主编排。
-
3. MCP 与 Skills 的协同效应
在 2026 年的工程实践中,这两个概念通常是配合使用的:
-
标准化扩展: 开发者通过 MCP Server 暴露大量的 Tools,而 Agent 框架将这些 Tools 经过 Prompt 包装后转化为 Agent 的 Skills。
-
生态互通: 比如你写了一个处理 3D 点云(Point Cloud) 的 MCP Server,任何支持 MCP 协议的 Agent(无论是 Cursor 还是你自研的工业智能体)都能瞬间"习得"处理 3D 资产的技能。
4. 站在算法工程师视角:为什么这很重要?
对于正在研究 VLM (多模态大模型) 和 工业互联网 的你来说,MCP 和 Skills 的价值在于:
-
具身智能的标准化: 你可以将底层的机器人控制指令(如 ROS 接口)封装为 MCP Tool。这样,你的 Qwen-VL 模型就可以直接通过标准协议操控机械臂。
-
解耦与复用: 你的"全生命周期管理系统"中,排程算法、异常诊断逻辑可以作为独立的 Skills 存在。当底层模型从 Qwen 换成 DeepSeek 时,这些技能逻辑无需重写,只需重新对接 MCP 协议即可。
-
解决"幻觉": 通过 MCP 提供的实时上下文(Resources),模型可以基于你最新的生产线数据进行推理,而不是基于过时的训练参数,显著降低幻觉。
总结一下:
-
MCP 解决了"怎么连"的问题(物理层/协议层)。
-
Skills 解决了"能干啥"的问题(应用层/逻辑层)。
在你目前的冰箱制造 Demo 中,如果引入 MCP,你可以让你的 Agent 具备直接读写 MES 系统数据库、甚至直接解析 CAD 文件的能力。你目前是在尝试用现成的 Agent 平台(如 Dify)来构建这些技能,还是在尝试写原生的 MCP Server 来对接你的 C++/Python 算法库?
-
手撕代码:割绳子(二分)(完全没复习到二分,面试官人非常好,疯狂给我提示,但是拼劲全力没做出来)
-
反问环节 ps:手撕没做出来还以为寄了,结果告诉我有二面,面试官还是很好的,就是我太菜了 二编:面试顺利通过了,泡池子,等批报了,大家有什么想问的可以问,问的多到时候我总结一个经验分享出来。