58同城 Agent 开发一面:MCP、数据查询与后端基础
本场面试题
- 数据分析 Agent 相比直接取数,怎样解释价值与流程边界?
- 介绍项目 MCP 接口时,应说清哪些能力?
- 从表结构与业务需求生成 SQL,应有哪些受控步骤?
- 生产内存问题怎样定位,何时调 JVM 参数?
- 被问是否自己开发过 Agent 或 Skill,怎样展示证据?
- MySQL 索引怎样解释,并结合查询判断是否有效?
- 现场手写排序,怎样给出能检查的实现?
面经与参考答法
问题选自作者自述的面试记录。以下短答用于备面讲解,不代表作者当场作答;仅选录可核实的教学范围,未覆盖的原帖子问不补写。页面发表于北京时间2026-10-18,未披露面试绝对日期。
(1)数据分析 Agent 相比直接取数,怎样解释价值与流程边界?
从真实用户及任务出发,说明自然语言需求澄清、指标口径、权限、查询与结果解释分别由谁负责。稳定校验和执行流程可由Java工作流控制,模型只承担需要语义判断的节点;用同一任务对比成功率、人工步骤、时延与成本,不能把“使用了Agent”本身当增量价值。
(2)介绍项目 MCP 接口时,应说清哪些能力?
列出实际暴露的工具、资源或提示能力,说明输入输出、权限、发现和调用方式,以及失败状态。协议支持的能力和项目真正实现的方法是两层信息,工具也不一定都有写入副作用;原文没有接口清单或数量,只能说明回答框架,不能编造项目方法数。
(3)从表结构与业务需求生成 SQL,应有哪些受控步骤?
先确认用户权限与指标定义,检索相关表、字段、关联和示例,再生成候选SQL;解析并检查只读范围、允许对象、参数和资源预算,在受控环境执行并核对结果口径。语法正确不保证业务正确,禁止仅靠Prompt限制访问;复杂或歧义需求应澄清,具体步骤仍须以真实项目实现回答。
(4)生产内存问题怎样定位,何时调 JVM 参数?
先区分堆、元空间、直接内存和进程其他开销,用监控、GC日志及必要的堆分析对照负载与版本,定位对象保留、分配压力或容量问题。先修复无界缓存、引用未释放等工程原因,再按目标评估参数与容量;原帖没有事故数据,不能声称作者遇到某种泄漏或调过某个具体参数。
(5)被问是否自己开发过 Agent 或 Skill,怎样展示证据?
选真实做过的任务,展示目标、说明与资源、工具权限、执行记录、失败样例和验收结果,讲清本人负责的部分。Skill可以组织可复用流程并按需提供上下文,但不自动取得执行权限;没有实际经历时如实说明练习范围,不能借一个术语包装未做过的系统。
(6)MySQL 索引怎样解释,并结合查询判断是否有效?
以InnoDB常见B+树索引为例,聚簇索引叶子包含行记录,二级索引记录带主键;联合索引按键的字典序组织。根据过滤、关联、排序与选取列检查执行计划和真实耗时,兼顾写入与空间成本;索引存在、命中或覆盖都不能单独证明端到端性能一定更好。
(7)现场手写排序,怎样给出能检查的实现?
先明确顺序与输入范围,例如选择插入排序:从第二项起保存当前值,将左侧大于它的元素逐个右移,再把当前值放入空位。常见原地版本稳定、最坏时间O(n²)、额外空间O(1);若先复制输入则副本另占O(n)空间。用空数组、单元素、逆序与重复值验证。原帖未指定算法,不宣称作者当场写了哪一种。