字节一面记录:全程深挖 Agent 项目与图判圈手撕
- 轮次
- 一面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 介绍你的 Agent 项目(面试大部分时间)
- 微服务后端项目相关
- 手撕:图的判圈
《参考解析》
图判圈要看有向还是无向,解法完全不同。 无向图用并查集最直观:遍历每条边时把两个端点合并,若发现两点已在同一集合则说明存在环(等价于「新加的边连接了同一连通分量」);也可以用 DFS + 父节点标记,遇到已访问且不是父节点的邻居即判有环。有向图不能照搬无向图的做法(A→B, A→C, B→C 会被误判),标准解法是 DFS 三色标记(白=未访问、灰=在当前递归栈中、黑=已完成):搜索时遇到灰色节点说明存在后向边即环;另一条路是 Kahn 拓扑排序(反复取入度为 0 的点删除),若最后仍有节点未被删除则存在环。复杂度都是 O(V+E),实现时注意节点数大时用迭代 DFS 或显式栈避免递归爆栈,以及要处理不连通图(对所有未访问节点起搜)。
Agent 项目被深挖一小时,答题主线应该是「目标 → 架构 → 关键取舍 → 效果证据」。 常见追问包括:Agent 的整体调用链是什么(规划、工具选择、执行、观测、终止条件)、工具是怎么封装的(描述与 JSON Schema、权限与超时、结果如何限长)、如何避免死循环(步数上限、重复动作检测、外部状态对齐目标)、失败如何归因(模型、工具、上下文还是评测标准)、以及效果如何量化(任务成功率、平均步数、单任务成本,且要说清统计口径与对照组)。准备时要能现场画出循环图,并对每个模块说出「为什么这么设计、替代方案是什么、代价是什么」——面试官的追问几乎都沿着这条线。