奇虎 AI Agent开发 二面
1. 请做一个简短的自我介绍
2. 在你的项目里,挑一个技术难度大点介绍一下
3. 你平时工作中用过哪些 AI 编程工具
4. 对 Python 掌握如何?在你的实际使用里主要承担什么角色
5. 对协程了解吗
如果面试官保留“协程”这个点,其实完全可以只从 Python 角度展开。你可以说协程适合 I/O 密集场景,比如异步调用多个外部工具、并发请求检索服务、批量处理模型请求、流式返回等。协程不是让 CPU 计算变快,而是提高等待 I/O 时的资源利用率。
在 Agent 场景里,协程比较适合做并发检索、多工具并发探测、异步日志上报、流式 token 处理这些事情。如果继续深入,可以提一下 asyncio、事件循环、await 的含义,以及为什么不适合 CPU 密集任务。
import asyncioasync def fetch(name, delay): await asyncio.sleep(delay) return f"{name} done"async def main(): results = await asyncio.gather( fetch("search", 1), fetch("rerank", 2) ) print(results)asyncio.run(main())
6. MCP 网关实现协议转换,你们的 MCP 协议主要解决了什么问题
这个问题的重点不只是“协议转换”,而是标准化模型和工具之间的连接方式。MCP 这类协议的核心价值在于,把模型可调用的资源、工具、参数格式、返回结构、错误处理方式统一起来。这样上层 Agent 不需要为每个工具都写一套定制 prompt glue code,接入成本和维护成本都会低很多。
如果从系统角度说,它解决的是几个问题:工具接入不统一、模型无法稳定理解能力边界、调用链难治理、跨服务扩展困难。做了协议层之后,工具可以插拔,权限可以控制,日志可以统一,后续扩展知识库、数据库、文件系统、业务接口时都会更顺。
7. 大模型的熔断和降级是如何处理的
这个问题比较偏工程。比较完整的回答一般包括几层:先做超时控制和失败重试,再做熔断策略,比如某个模型服务错误率持续升高时暂停继续打流量,然后做降级,比如切到更小模型、切到缓存结果、切到规则模板、或者返回保守结果而不是硬生成。这样系统在模型不稳定时还能维持基本可用。
另外要强调一点,降级不是单纯“换个模型”这么简单,还要看任务类型。像高风险写操作、审批类任务、合规判断类任务,不适合随便降级成弱模型硬上,必要时应该直接转人工或返回不可执行状态。
class CircuitBreaker: def __init__(self, threshold=3): self.fail_count = 0 self.threshold = threshold self.open = False def call(self, func, *args, **kwargs): if self.open: return "fallback" try: result = func(*args, **kwargs) self.fail_count = 0 return result except Exception: self.fail_count += 1 if self.fail_count >= self.threshold: self.open = True
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.
