深信服 Agent 开发一面:MCP、多 Agent、安全与网络
面经与参考答法
深信服 Agent 开发一面:MCP、多 Agent、安全与网络
这轮深信服 Agent 开发社招一面偏生产实践:重构与数据迁移、MCP/Skill、知识库增量更新、评测、越权防护、多 Agent 故障恢复,以及 HTTP 和 Go 调度基础。原记录没有明确面试日期。
以下将可见题目合并为九组主题;短答与方案示例为教学补充,不代表作者当时的回答、实际架构或人工介入次数。
(1)重构怎样安全迁移老数据?
关联知识点待核实。
先定义新旧 Schema 与兼容窗口,使用可重复执行的迁移程序做离线回填,再通过双写或变更日志追平增量。迁移前后校验数量、摘要和业务不变量,灰度读新数据并保留回退开关。删除旧结构必须等监控稳定、回滚窗口结束和备份演练完成。
(2)MCP Tool 的粒度怎样划分?
关联知识点待核实。
Tool 应对应清晰业务能力,有窄输入输出、明确权限和可判断的成功条件。过粗会把复杂决策与副作用藏进黑盒,过细会增加模型选择难度和调用轮次。按领域对象和事务边界设计,例如“检索合同条款”优于“执行任意 SQL”,也优于把每个字段查询拆成一个 Tool。
(3)MCP 只是用来对接数据库吗?与 Skill 有何区别?
关联知识点待核实。
MCP 可连接文件、搜索、业务 API、浏览器和数据库等资源,不等于数据库协议。它定义能力发现与调用边界;Skill 描述可复用的方法、步骤、参考资料和验收规则。Skill 可编排 MCP Tool,但敏感访问仍由服务端身份与授权控制。
(4)知识库更新应全量还是增量?
关联知识点待核实。
少量且构建便宜时,全量重建简单可靠;数据大、更新频繁时,用文档 ID、内容哈希和版本做增量解析与索引。生产方案通常“增量常态 + 周期全量校验”:新版本先旁路构建,验证覆盖、权限和检索质量后原子切换,异常可回滚。
(5)怎样评测整个 Agent 架构?
关联知识点待核实。
建立来自真实任务和故障样本的版本化评测集,分层测意图/路由、检索、工具选择、参数、最终任务成功和人工接管。稳定性还看超时、重试、循环、P95/P99、成本和权限违规。每次模型、Prompt、Tool 或索引变更都跑配对回归,线上再做灰度。
(6)怎样防止模型扫库和越权查询?
关联知识点待核实。
权限不能写在 Prompt 里。用户身份在入口解析成不可由模型修改的授权上下文,网关在执行 Tool 时注入租户、资源范围和字段脱敏;查询使用预定义能力或受限 DSL,结果再次校验并审计。向量索引也要按租户和 ACL 过滤,避免召回阶段就泄漏。
(7)Leader Agent 怎样派活、纠错与恢复,AI 全栈过程中人介入几次、在哪些节点?
关联知识点待核实。
Leader 根据任务类型、依赖、权限、成本和子 Agent 能力选择执行者,任务必须包含输入、验收和超时。子 Agent 只写自己的产物,协调者合并状态;失败按可重试、需重规划、不可恢复分类。大规模调度使用持久队列、检查点、租约和幂等,关键节点保留人工确认。人工介入次数应依据实际任务日志逐项统计,说明触发原因、节点、动作和结果;原记录没有给出作者的实际次数,不能补造数字。
(8)HTTP Keep-Alive、连接池和 HTTP 版本有什么关系?
关联知识点待核实。
Keep-Alive 允许连接承载多个请求,连接池在客户端管理连接复用、上限、空闲和健康。HTTP/1.1 同一连接并发受限;HTTP/2 在一条 TCP 连接上多路复用流,但仍可能受 TCP 队头阻塞;HTTP/3 基于 QUIC,让不同流的丢包恢复更独立。池大小要由下游容量和延迟决定。
(9)进程、线程、协程、GMP 与长上下文怎样回答?
关联知识点待核实。
进程提供隔离,线程是内核调度实体,协程是用户态任务。Go 的 G 是 goroutine,M 是操作系统线程,P 持有运行队列与调度资源;工作窃取和网络轮询提高利用率。长上下文治理则先选取必要信息,再用结构化状态、滚动摘要与检索补充,压缩结果要保留约束、未完成任务和失败证据。