北京飞鸟卫士 AI Agent 一面

1、自我介绍

2、介绍一下实习

3、你们的 Agent 项目落地完成后,是直接交付给业务方还是让对方调用 API

这两种方式都常见,区别主要在交付形态。

如果是直接交付给业务方,一般会做成完整应用,比如网页端、内部工作台、客服系统插件或者企业微信机器人。业务方直接使用现成系统,不需要关心底层模型、检索、工具调用这些实现细节。这种方式更适合业务部门直接落地,优点是使用门槛低,缺点是后续定制需求可能会比较多。

如果是提供 API,通常说明 Agent 能力被当成平台能力输出。业务方或者其他系统通过接口调用,比如传入用户问题、上下文信息、用户 ID,再拿回模型结果。这种方式更适合中台化建设,扩展性更强,不同业务系统都能复用同一套能力。

如果是企业内部项目,很多时候会同时做两层:底层提供 API,上层再封装成可用页面或者业务入口。这样既方便集成,也方便后续复用。

4、讲一下你认为你负责的部分比较难的地方

我负责的部分里,相对更难的是意图识别和多轮对话管理。因为 AI Agent 项目里,模型能不能答对,不只是看生成能力,很大程度上看前面的路由有没有做对。用户一句话进来以后,如果意图判断错了,后面整个链路都会错。比如用户本来是查订单,结果被当成知识问答去检索知识库,那最后答案肯定偏掉。

意图识别难主要难在几个地方。一个是用户表达不标准,口语化、歧义、多意图混杂的情况很多。另一个是业务场景里意图边界有时候并不清晰,比如“帮我看下这个产品适不适合老人用”,既像产品咨询,也可能涉及推荐。再一个是线上输入噪声很大,用户不会按训练数据那种标准句式提问。

所以实际做的时候,通常不会只靠单一分类模型,而是会结合规则、关键词、少量人工标注样本以及大模型辅助判断一起做。这样做的目的,不是追求理论上多先进,而是先把线上可用性做稳。

5、项目中意图识别部分你们用户画像是怎么做的

用户画像主要是为了辅助意图判断和后续回答生成,不是单独为了存用户信息。

常见做法是把用户画像拆成显式信息和隐式信息。显式信息一般来自注册信息、角色信息、部门信息、历史业务记录,比如用户属于哪个业务线、是什么身份、有没有购买记录、最近关注过什么内容。隐式信息更多来自行为数据,比如最近连续问了哪些问题、点击过哪些内容、经常在什么时间段使用、偏向哪类问题。

在 Agent 场景里,用户画像最直接的作用有两个。一个是帮助意图识别。比如同样一句“帮我查一下”,管理员和普通用户可能对应完全不同的业务动作。另一个是帮助回答个性化。比如不同角色查同一问题,返回内容权限范围可能不同,展示重点也可能不同。

如果从实现上说,用户画像通常不是一次性全塞进 prompt,而是会做结构化管理。需要的时候只取当前任务相关的信息,避免上下文太长、噪声太大。

user_profile = {
    "user_id": "u1001",
    "role": "运营",
    "department": "风控",
    "recent_intents": ["查报表", "查订单", "知识问答"],
    "product_focus": ["企业安全", "告警平台"],
    "permission_scope": ["report_read", "order_read"]
}

6、你们是怎么管理历史信息或者对话的

对话历史管理的核心不是全存,而是怎么存、什么时候取、取哪些。

如果把所有历史对话无脑拼进上下文,会有几个问题:一是 token 开销大,二是噪声多,三是旧信息可能会干扰当前回答。所以一般会分层管理。

一种常见做法是短期记忆加长期记忆。短期记忆就是当前会话窗口内最近几轮对话,主要保证上下文连续性,比如用户说“这个再详细一点”“那第二个呢”,模型要知道“这个”和“第二个”指的是什么。长期记忆则是把一些稳定信息抽出来单独存,比如用户偏好、历史关注主题、重要事实、业务配置等,不会每轮都原样塞进去,而是在必要时检索出来再补充。

如果是工程上实现,通常会保留最近 N 轮对话,再配合摘要机制。也就是对过长历史先做总结,后续只带摘要和关键轮次,而不是把所有原文带上。

from collections import deque

class ConversationMemory:
    def __init__(self, max_turns=5):
        self.history = deque(maxlen=max_turns)

    def add_message(self, role, content):
        self.hi

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

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

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

全部评论

相关推荐

发一下问题给大家参考,攒攒人品!有面试过同岗的朋友欢迎评论区交流1.实习拷打2.项目拷打3.处理查询文档里的异构数据(如图片)时,具体的处理流程是什么?解析成纯文字后如何进一步加工?这样只返回文字给用户,图片信息不会丢失吗?4.你们是通过人工打标建立图片和文本的对应关系吗?文档量很大的情况下,打标工作能完成吗?5.如何保证大部分图片异构数据解析后回答的正确性?若回答错误,怎么识别问题?后续要验证回答准确性,你有什么方案?6.用于评测的另一个大模型,如何构造问题、分析文字并进行对比?这个大模型的正确率以及模型自我一致性怎么确定?7.你们的模型基于哪些异构图像做增强?模型会不会产生幻觉,生成文档外的内容?8.若用户的问题不在文档里,你们会怎么处理?是调用其他模型吗?大模型回答不了时,会提示用户补充问题吗?用户补充后仍无法解决该怎么办?模型如何判断何时需要让用户补充提问?9.你们有框架编排这些流程吗?用的是什么框架?10.怎么理解检索召回率?这些指标具体包含哪些评价项?什么是忠实度?召回率的分子分母是怎么定义的?11.你之前那段实习的具体工作内容是什么?针对设备故障叙述报告这类复杂文本,模型如何理解?是做了相关检测吗?大模型是怎么实现术语解释的?12.请讲一下LoRA技术,除了减少参数量,它还有什么优点?你做的LoRA相关工作,后续有落地应用吗?13.你写代码主要用Python吗?会不会用Java?了解Java的多线程、双亲委派模型以及消息中间件吗?有没有做过Java相关项目?
点赞 评论 收藏
分享
发一下问题给大家参考,攒攒人品!1*Agent与Workflow的区别是什么?在实际业务中,你会根据什么标准选择对应的方案2*设计一个企业级Agent架构,如何实现 BFF、Tool Server 与 Worker 的多组件拆分3*在企业级Agent中,怎么实现安全与隔离?权限管理、审计与日志追踪具体的落地方案是什么?4*说一下什么是MCP?它在Agent生态中解决了什么痛点?5*MCP 有哪些具体的分类?Transport 层是怎么工作的?如何开发一个 MCP Server?6*谈谈你对 Claude Code、Manus 这类 Agent 产品的理解,它们的架构逻辑与传统 Chat Agent 有什么差别?它工程部分的能力是怎么实现的?7*如何实现 Claude 的 Agent Research 方法论?Deepsearch 场景下需要配备哪些工具?基础设施与安全挑战在哪里?8*在多轮对话中,分别实现 Short-term memory、Long-term memory 与 Task memory怎么做?9*上下文机制的完整实现流程是怎样的?说一下它的写入策略、读取策略以及 Rerank 的做法是怎么样的。10*当上下文超过 Token 限制时,组合使用 Rolling Summary、State Extraction 与 RAG 这三段式策略?11*说一下Prefix Caching 和 KV Cache 的原理。为什么缓存的是 K 和 V 而不是 Q?不再计算前缀具体节省了哪部分算力?12*引入 Prefix Caching 后,Attention 的计算复杂度是怎么下降的?13*Few-shot在Agent评测中是为了提升能力还是降低方差?在评测Pipeline的哪个阶段注入?如何防止过拟合?14*对比一下Transformer中Self-attention与FFN的作用差异。15*为什么 Prefix Caching 只能优化 Attention 部分,而无法优化 FFN 部分?16*从 Softmax 的数学角度解释,为什么在计算过程中加上负无穷就能让注意力权重变为 0?17*什么是掩码?你分别说一下Causal Mask与 Padding Mask 的作用是什么。
查看17道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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