怎么写简历

各位,简历怎么写最好呢,按照什么来写什么顺序等等#简历#
全部评论

相关推荐

03-18 10:30
已编辑
阿里巴巴_淘宝_前端
// 淘天 27 届暑期实习生正在招聘 各方向都有海量 HC 欢迎看我置顶帖子投递最近在帮部门看简历,发现不少同学在做项目时都挂了 Agent 的标签。但在面试过程中,很多同学对这个方向的理解还停留在调用API的层面,稍微深挖一下架构设计就接不住了。整理了一个最近面试中比较高频的Agent技术问题,大家可以先试着回答一下,看看基础扎不扎实:---一面 | AI Agent 架构设计面试题:请设计一个支持多工具调用的 ReAct Agent,说明其核心循环、工具调度策略、以及如何处理多步推理中的错误恢复。---参考答案一、ReAct 核心循环ReAct 的本质是一个 思考 → 行动 → 观察的迭代循环。Agent 在每一步先进行推理(Thought),分析当前状态和已有信息,决定下一步该做什么;然后执行行动(Action),选择一个工具并传入参数;最后获取观察结果(Observation),把工具返回的信息追加到上下文中,进入下一轮循环。直到 Agent 判断已经获得足够信息,输出最终答案。与纯 Chain-of-Thought 的核心区别:CoT 是闭卷考试,Agent 是开卷——每一步推理都可以与外部世界交互,用真实数据修正推理方向,而不是纯靠模型内部知识"硬猜"。二、工具注册与调度工具如何让 LLM "认识":每个工具以结构化方式注册,包含名称、功能描述、参数定义(类型、是否必填、含义说明)。这些信息会被注入到系统提示词中,LLM 通过理解这些描述来决定何时调用哪个工具、传什么参数。工具描述的质量直接决定了 Agent 的调度准确率——描述模糊,模型就会选错工具。三种调度策略:- 串行调用:每次只调一个工具,等到结果后再决定下一步。适合步骤之间有依赖关系的场景,比如"先查订单号,再根据订单号查物流"。- 并行调用:一次推理中输出多个工具调用,并发执行。适合多个独立子任务,比如"同时查北京天气和上海天气"。- 规划-执行分离:先让 LLM 生成一个完整的多步计划,再逐步执行每一步。适合复杂任务需要全局视角的场景。生产环境通常是混合策略:Agent 动态判断当前步骤是否有可并行的操作,有则并行,否则串行。三、错误恢复机制工具执行失败:核心原则是**不要在工程侧硬编码恢复逻辑**。工具失败后,应该把错误信息作为 Observation 原样返回给 LLM,让模型自己决定下一步——是重试、换个工具、还是换一种思路绕过。这恰恰是 Agent 相比传统程序的核心优势:用 LLM 的推理能力应对非预期情况。当然,对于网络超时这类瞬时错误,工程侧可以做有限次数的自动重试,但逻辑层面的恢复应该交给模型。推理陷入死循环:Agent 可能反复执行相同的操作却期待不同结果。需要一个循环检测机制:对比最近几步和之前几步的行为模式,如果工具调用和参数完全重复,就往上下文中注入一条引导信息,提示模型"你在重复相同操作,请尝试不同方法"。同时设置全局最大迭代次数作为硬性兜底。上下文窗口溢出:这是多步推理中最现实的工程问题。每一轮循环都会往上下文里追加 thought + action + observation,几轮下来就可能撑爆窗口。常用解法:对早期步骤做摘要压缩只保留关键结论,对过长的工具返回结果先截断或提取摘要再存入历史,以及每隔几步让 LLM 自己总结"到目前为止的关键发现"。四、生产级可观测性上线不是终点。一个可靠的 Agent 系统需要:完整的 Trace 记录(每一步的推理、行动、观察),Token 消耗监控(防止成本失控),任务维度的成功率和平均步数统计,以及超过最大步数后降级到人工处理的兜底机制。---追问 Q&AQ1:多 Agent 协作时,如何设计 Agent 之间的通信和协调机制?A:主流有两种模式。Supervisor 模式(中心化):一个"主管 Agent"负责接收任务、拆解子任务、分配给专项 Agent,然后汇总各 Agent 的结果做最终决策。好处是流程可控、容易调试,缺点是主管 Agent 成为单点瓶颈,它的推理能力决定了整个系统的上限。去中心化消息传递:多个 Agent 通过共享的消息总线或黑板系统通信,每个 Agent 监听自己关心的消息类型,处理后将结果发回总线。好处是扩展性强、不存在单点瓶颈,缺点是调试困难、消息顺序和冲突处理复杂。实际工程中更常见的是分层混合架构:顶层用 Supervisor 做任务编排,底层的子任务内部允许 Agent 之间点对点通信。这样兼顾了全局可控性和局部灵活性。一个经常被忽略的关键设计点是共享上下文管理:多个 Agent 看到的"世界状态"如何保持一致?通常会设计一个共享的 State 对象,所有 Agent 只能通过定义好的接口读写状态,避免并发冲突。---Q2:Agent 的短期记忆和长期记忆应该如何设计和配合?A:本质上对应两种不同的信息需求。短期记忆就是当前对话的上下文窗口,存放的是本次任务的推理过程和中间结果。它的特点是时效性强但容量有限。核心挑战前面说过——窗口溢出管理。长期记忆是跨会话持久化的知识,通常用向量数据库实现。每次对话结束后,把值得记住的信息(用户偏好、历史决策、领域知识)向量化后存入。下次对话开始时,根据当前问题做相似性检索,把相关的长期记忆注入到系统提示词中。两者的配合策略:Agent 在每一轮推理前,先从长期记忆中检索与当前任务相关的历史经验("上次处理类似问题时用了什么方法"),注入到上下文中作为参考。短期记忆负责当前任务的连贯推理,长期记忆负责跨任务的知识积累。一个常见的坑是记忆污染:把错误的推理结论写入了长期记忆,导致后续任务反复犯同样的错。所以写入长期记忆前需要有质量校验机制,比如只有任务成功完成时才写入,或者由另一个 LLM 评估该记忆是否值得保留。---Q3:如何防止 Prompt Injection 导致 Agent 执行恶意工具调用?A:这是 Agent 安全中最核心的问题。攻击面在于:Agent 处理的用户输入或工具返回的外部数据中,可能嵌入了恶意指令,诱导 LLM 执行非预期操作。防御需要多层:第一层:输入隔离。 用户输入和系统指令必须在提示词中明确分隔,使用结构化标记区分"这是系统指令"和"这是用户数据"。避免用户输入被模型当作指令执行。第二层:工具权限分级。不同风险等级的工具设置不同的调用条件。只读查询类工具可以自由调用,但涉及写入、删除、发送等不可逆操作的工具,需要额外的确认机制——比如二次 LLM 审核(用另一个独立的模型判断"这次调用是否合理"),或者直接要求人工确认。第三层:输出过滤。工具返回的外部数据在进入 Agent 上下文前,先做清洗,去除可能被解释为指令的内容。第四层:行为监控。对 Agent 的工具调用模式做异常检测。比如一个处理客服问题的 Agent 突然开始调用文件系统工具,这明显异常,应该立即阻断并告警。没有银弹,必须纵深防御。---Q4:如何评估一个 Agent 系统的效果?和评估单次 LLM 调用有什么区别?A:区别很大。单次 LLM 调用的评估是静态的——给输入、看输出、算指标。但 Agent 是一个多步动态过程,同一个最终结果可能有完全不同的路径质量。Agent 评估需要看三个维度:结果维度:任务是否完成、最终答案是否正确。这和评估普通 LLM 类似。过程维度:用了几步完成(效率)、有没有冗余操作(比如查了不需要的信息)、有没有走弯路后自我纠正(鲁棒性)。两个 Agent 都答对了,但一个用了 3 步另一个用了 15 步,质量完全不同。成本维度:总 Token 消耗、工具调用次数、端到端延迟。在生产环境中,这直接决定了系统是否可用。评估方式上,通常会构建一个 benchmark 数据集,包含不同难度的任务和标准答案。让 Agent 跑一遍,同时记录完整 trace。然后用自动化指标(完成率、平均步数、Token 消耗)加人工评审(推理路径是否合理)综合打分。
查看5道真题和解析
点赞 评论 收藏
分享
03-17 17:57
门头沟学院 Java
1.    能否先做一个自我介绍?2.    简单介绍一下你的项目,以及你在里面主要做了哪些事情?3.    你们项目采用的框架以及技术栈是什么?4.    你觉得你对哪块技术比较熟悉一点?5.    引入线程池提升查询效率的方案,当时是你自己想出来的,还是你只负责落地执行?6.    能把你优化的代码执行的整个流程说一下吗?7.    为什么 CompeleteFuture 要使用线程池的线程,能解释一下吗?8.    这个项目的团队大概是多少人?9.    在做“花椒论坛”项目的过程中,有哪些觉得可以进行优化,而你还没有进行优化的点?10.    简单说一下粉丝订阅和关注模块里面涉及到了哪些业务逻辑?11.    消息推送模型中有涉及到数据持久化吗?12.    在拉模式的过程中,系统是怎么知道用户关注的博主发了新帖子的?13.    帖子入库的表结构是怎么样的,为什么要这么设计?14.    如果帖子内容是一个富文本,输入了一段包含特殊字符或前端注入(如 alert)的代码,导致前端渲染时弹窗了,用户上传了前端无法渲染的特殊字符给后端,如何解决这个问题?15.    如果前端的同学告诉你:“我不能包含XX这些特殊字符”,那你(后端)打算怎么做?16.    有没有考虑过做过滤器,或者在用户录入/接收到内容的时候,用正则表达式之类的去匹配,如果有特殊字符就替换掉或者挡住?(引导性提问)17.    你基于 Redis 的固定窗口限流具体是怎么做的?18.    这个限流的设计方案是有去参考过其他的解决方案,还是自己想出来的?19.    基于 Redis 的限流和谷歌的限流工具里面的限流有什么区别?20.    为什么要使用 Redis 这种中间件做限流,而不是放在本地内存(如 Java 的 Map 或静态属性)中实现?21.    如果是多台机器的分布式系统,使用本地内存做限流会出现什么问题?22.    除了 Redis 和本地内存,还有哪些技术或者中间件可以实现限流?23.    关于实习中平台用 Redis 做草稿缓存,如果前端页面一直关掉不保存,导致 Redis 数据无限膨胀,如何清理这些冗余数据?24.    如果业务人员操作配了一半去吃饭,过了设定的过期时间缓存数据被清除了怎么办?25.    如果同一个账号在两台电脑上同时登录,并对同一份工作流进行交叉修改,如何解决两边数据冲突覆盖(协同操作)的问题?26.    如果要给上述并发场景加锁,打算怎么去实现这个加锁逻辑?什么时候进行解锁? 加锁就一定能解决这个问题吗?27.    假如我一定要两个人可以并行操作怎么办?28.    如果发现了一些自己认知以外的问题,或者被安排了不熟悉的研发任务,你会基于什么样的方式去快速解决?29.    如果项目时间非常紧迫,你该怎么处理不熟悉的需求?30.    你最近在学习哪方面的技术?31.    现在学习 AI Agent 开发学到什么程度了?32.    简单介绍一下你正在学习的项目里面具体是什么内容?33.    平时编程会用到哪些外部工具或 AI 工具来进行辅助?34.    在使用 AI 命令行工具开发时,它可能会直接把代码改错,之前有遇到过这种情况吗?是如何防范和解决的?35.    探讨一下概念,你知道 AI 为什么会自动调用 Skill 或者是直接调用 MCP 吗?我这边没有什么问题了,你这边有什么想问我的吗?
大厂面试问八股多还是项目...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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