影石 AI开发 一面(日常)

1. 自我介绍

2. TCP 和 IP 的职责边界是什么,为什么说“HTTP 基于 TCP,TCP 基于 IP”这个表述只对了一半

IP 负责尽力而为地把报文从源地址送到目标地址,它不保证到达、不保证顺序,也不保证不重复。TCP 建立在 IP 之上,提供有连接、可靠传输、流量控制、拥塞控制和按序交付。HTTP 是应用层协议,它依赖传输层提供的可靠字节流,但 HTTP 本身并不“知道”底下是不是 TCP,也可以跑在 QUIC 上。所以“HTTP 基于 TCP”对传统 HTTP/1.1 和 HTTP/2 是对的,但对 HTTP/3 就不成立;“TCP 基于 IP”则更准确,因为 TCP 的寻址和转发确实依赖 IP 层。

3. TLS 握手里为什么必须有随机数、证书验证和密钥交换,这三者各自解决什么问题

随机数用来保证每次会话的密钥材料不同,避免同样的明文在不同连接里导出相同结果;证书验证解决的是“你到底是不是我要连的那个服务端”;密钥交换解决的是“不把会话密钥明文传输也能协商出共享密钥”。如果没有随机数,重放和模式复用问题会变严重;没有证书验证,中间人攻击几乎无法防;没有密钥交换,只能把密钥直接发出去,传输链路本身就会泄露秘密。TLS 的安全不是靠某一个步骤,而是这些环节共同组成的信任和保密链条。

4. HTTP/1.1、HTTP/2、HTTP/3 的核心差异是什么,为什么 HTTP/2 解决不了所有延迟问题

HTTP/1.1 的主要问题是连接复用能力弱,容易出现队头阻塞和大量短连接。HTTP/2 通过二进制分帧、多路复用和头部压缩降低了连接开销,但它仍然跑在 TCP 之上,只要底层 TCP 某个包丢失,整个连接上的所有流都会受到影响。HTTP/3 把传输层换成 QUIC,把多路复用做到用户态传输协议上,流之间的丢包影响被隔离开,所以更适合高抖动网络。HTTP/2 已经解决了很多应用层问题,但没法绕开 TCP 层的队头阻塞。

5. 如果一个大模型要调用外部工具,协议层至少要解决哪几件事

至少要解决工具发现、参数约束、调用权限、超时控制、返回结构和审计追踪。工具发现决定模型“看得到哪些能力”;参数约束决定模型能不能稳定地产出可执行输入;调用权限避免模型越权访问;超时控制防止工具阻塞拖垮对话;返回结构决定结果能不能被继续消费;审计追踪则负责回放“模型为什么调了这个工具、输入是什么、结果是什么”。没有协议层,这些问题会散落在业务代码和 prompt 里,系统会越来越不可控。

6. function call 的本质是什么,为什么它不是“模型真的去执行了代码”

function call 的本质是模型生成了一段满足约定 schema 的结构化调用意图,而不是真正直接在模型内部执行函数。模型只负责判断“该不该调、调哪个、参数长什么样”,真正执行的是外部宿主环境。也就是说,模型输出的是调用计划,执行权仍在系统侧。这个区分非常关键,因为它意味着权限控制、幂等、重试、回滚和日志都应该由宿主系统负责,而不是寄希望于模型自己“足够聪明”。

{
  "tool": "query_case_detail",
  "arguments": {
    "caseId": "A202604160091",
    "needTimeline": true
  }
}

7. Skill、Tool、MCP 三者在工程分层上分别是什么,不能混着答

Tool 是最底层的可执行能力单元,比如查订单、执行 SQL 模板、获取监控指标。Skill 是任务级能力封装,强调“为了完成某类任务,需要按什么规则组合若干工具和上下文”。MCP 更偏协议层和接入层,解决的是工具如何被发现、描述、调用和治理。简单理解就是:Tool 回答“能做什么动作”,Skill 回答“怎么把动作组织成一类能力”,MCP 回答“这些能力如何标准化暴露给模型”。把三者混为一谈,最后通常会导致调用链难治理、能力边界不清、调试成本极高。

8. 如果一个系统里注册了很多 Skill,模型怎么知道当前该选哪一个,而不是随机命中

真正有效的方法不是把所有 Skill 平铺给模型,而是做前置路由。路由层通常结合意图识别、任务分类、上下文状态和权限范围先筛一轮,把不相关 Skill 从候选集合里去掉,然后再让模型在有限集合内决策。更进一步,Skill 描述要具备明显的边界和互斥条件,否则模型会出现“能力重叠时随机命中”的问题。Skill 数量上去后,如果没有路由层,模型选择本身就会成为一个新的不稳定源。

9. 把所有 Skill 的说明都塞进上下文是不是就等价于“拥有全部能力”,为什么这种做法在工程上很危险

不是。把所有 Skill 说明塞进上下文只会让模型“看到很多描述”,但并不等于它具备稳定的调用决策能力。首先上下文会迅速膨胀,带来 token 成本和干扰项;其次相似能力之间会互相污染,导致选择不稳定;再者,权限边界根本不能靠自然语言说明保证。工程上真正危险的是你以为模型“都知道了”,实际上它只是看到了很多文字,而不是进入了一个受控能力系统。

10. A2A 协议类方案的价值在哪里,它和单模型工具调用不是一个层面的东西

A2A 更强调智能体之间的协作通信,处理的是“一个智能体如何把任务委托给另一个智能体,如何传递上下文、状态和结果”。而单模型工具调用解决的是“当前模型如何调用某个外部能力”。前者更偏多角色、多步骤、多状态迁移的系统设计,后者更偏单轮执行动作。A2A 的价值在于把复杂任务拆给不同职责的执行体,但同时也带来状态同步、重试语义和协作成本的问题。

11. 多 Agent 系统里最难处理的不是规划,而是状态一致性,你会怎么回答这个问题

多 Agent 最大的问题是每个 Agent 都会形成自己的局部事实视图,如果没有统一状态源,很容易一个 Agent 在用旧上下文,另一个 Agent 已经进入新阶段。解决方式通常是引入共享状态存储,把任务阶段、关键变量、工具结果和可见性范围显式管理,而不是靠聊天记录隐式传递。多 Agent 真正稳定的前提不是“分工明确”,而是“所有 Agent 都围绕同一份状态事实工作”。

task_state = {
    "task_id": "risk_review_2048",
    "phase": "evidence_collecting",
    "slots": {
        "merchant_id": "m_9912",
        "rule_version": "v3.12",
        "c

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-30 17:45
本人简历上 1 个 RAG 项目 + 1 个 Agent demo;这次面的是AI岗一面前我以为:背完八股 + 把项目讲清楚,应该能稳过。0-5 min:自我介绍 + 项目背景- 顺利。讲清楚了我的 RAG 是给法律咨询场景做的,痛点是大模型不懂行业术语。5-20 min:项目深挖(开始崩)- Q1:你的法律文档总共多少?切了多少个 chunk?- 我:约 500 份 PDF,5 万个 chunk- Q2:500 份 PDF 加起来才 5 万 chunk?平均每份 100 个 chunk,你切片粒度是多少?- 我:512 token- Q3:法律文档里"第三条第二款"和"第三条之二"是不同含义,你的切片会不会把它切散?- 我:(沉默 5 秒)……应该会- Q4:那你怎么解决?- 我:我可以加一个 metadata……(开始编)❌ 第一次崩:切片粒度没考虑业务语义。20-35 min:评测体系(继续崩)- Q:你怎么知道你的 RAG 有效?- 我:我用 Recall@5……- Q:评测集多少条?怎么构造的?- 我:100 条,我手工标注的- Q:100 条够吗?分布怎么样?- 我:分布……我没分- Q:那你的 Recall@5 是 0.81,你怎么知道这个数字是好是坏?baseline 是什么?- 我:(沉默 10 秒)❌ 第二次崩:没有 baseline,没分布分析,纯靠"看起来还行"。35-55 min:Agent 部分(彻底崩)- Q:你的 Agent demo 用了几个工具?- 我:3 个,搜索、计算器、文档查询- Q:当用户问一个问题,你的 Agent 怎么决定调哪个工具?- 我:用 ReAct,让模型自己决定- Q:模型决策错了怎么办?- 我:我加了个 reflection……- Q:reflection 失败 3 次后怎么处理?- 我:(沉默 15 秒)……我没想过❌ 第三次崩:异常路径完全没设计。55-65 min:业务理解 + 反问- Q:你觉得字节做 AI 应用最大的瓶颈是什么?- 我:算力?数据?- Q:你看过哪些字节最近发的 AI 产品?- 我:豆包、扣子……- Q:扣子是 Agent 平台还是工作流平台?- 我:(再次沉默)❌ 第四次崩:对面试公司业务一无所知。
面试官拷打AI项目都会问...
点赞 评论 收藏
分享
04-09 17:00
门头沟学院 Java
深入拷打项目,答出来8成左右。感觉面试官已经想放水了,奈何楼主太菜,代码题没完全撕出来,继续沉淀1. 为什么选择 Spring AI 框架?2. Spring AI 框架的主要优势是什么?3. 如何设计多模型支持架构?4. 多租户环境下模型切换是否支持热更新?切换是否相互独立?5. Agent 的记忆、工具调用、知识库检索等关键组件是如何实现的?6. 系统中的 Agent 包含哪些具体状态?7. 后端 Agent 是否支持多租户同时调用?8. Session 和 User ID 是如何绑定的?9. Agent 工具调用的完整业务流程是怎样的?10. 长期记忆和短期记忆在设计上有什么区别?本质上有什么区别?11. SSE 在前后端是如何交互的?12. 后端以什么数据格式推送流式信息?13. Agent 发生“工具调用”时,SSE 推送的事件结构中通常包含哪些字段?14. MCP的交互流程是怎样的?15. Agent 如何与 MCP Server 连接通信?16. RAG 的主要模式和主要工作流程是怎样的?17. Agent 一般在什么阶段去查询向量知识库?通过什么方式去查询?18. 查询知识库的工具函数,其标准输入和输出是什么?19. Go 语言的 GMP 调度模型是怎样的?20. GMP 模型中的 Machine (M) 代表什么?21. Processor (P) 上的本地队列长度通常是多少?22. 系统如何实现图像识别等多模态功能?23. 为什么不直接使用多模态大模型?24. 在没有前端界面的情况下,本地图片是如何传到后端并进行识别的?25. 对其他主流 AI 框架(如 LangChain)有了解吗?26. 你最熟悉的主力编程语言是什么?27. 手撕 :两两交换链表中的节点
查看27道真题和解析
点赞 评论 收藏
分享
评论
3
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务