一面: 1.自我介绍(主要是介绍了运维Agent项目的整个框架ReAct,与RAG整体怎么设计的) 2.写出整个Agent的架构 5.为什么用Spring AI?是否对比过LangChain?优缺点 首先是为了更好与springboot兼容,其次我的项目场景功能较为简单,SpringAi的功能能够支持我需求,我在Spring AI的基础上手搓了一个ReAct框架,足够我应对我的业务场景。langchain功能服务但是对于我的项目来说有点过重,其次与Spring不太适合,所以选用了SpringAI。 6.FunctionCall的原理是什么? 原理就是调用时先把工具注入,当大模型需要调用时会在 tool_call字段中生成函数的名字与函数的参数等,然后像SpringAI或langchain,会识别tool_call字段的内容,来执行工具调用的。我自己手搓的ReAct就是通过判断该字段是否为空来判断是否是模型的最后输出的。 7.为什么项目中会使用到workFlow这个结构? 因为这个功能流程比较固定,这样输出的比较稳定,目前Skills比较流行,这个地方其实也可以用Skills来替代 8.简单讲一下你对Skills理解 这里我阐述了一下Skills的结构(4个文件),以及渐进式披露的特性,以及什么是Skills,什么背景产生的 9.RAG的查询路由是什么? 根据用户的意图决定是查询RAG还是查询数据库 10.具体是怎么实现的? 通过一个Agent来做识别,还有用自然语言转写成SQL语句的一个Agent 11.SQL转写的Prompt怎么写的? 这里我讲了通过角色设定的方式,以及Few-Shot的方法 12.那你数据库表结构怎么告诉Agent的? 因为我的业务场景不是很复杂,所以我就直接把表结构放在了Prompt里面 13.如果业务场景很复杂的情况下,你不能把所有的表结构都放进去,你怎么办? 可以用Skills来解决,把表结构放到Reference里面 14.那如果表结构经常更改,那每次改Skills每次岂不是很复杂? 那就不用Skills,可以写一个MCP工具,每次都从数据库获取表结构 15.那你讲一下MCP是什么? 这里我讲了一下mcp的概念以及通信方式(sse,stdio,streamable),以及我的项目哪里用到了MCP,相对FunctionCall的优点 二面: 1.为什么用SpringAI 对比了LangChain、LangChain4J 2.主要了用了哪些Agent工具 MCP、RAG、FunctionCall几个主要的 3.讲一下你的RAG 主要讲了查询路由、问题改写、混合检索以及重排序 4.如何评测你的Agent效果? 我自己整理了几个测试问题,主要是看效果,其次是看token消耗以及思考步骤次数 后面主要是问另一个后端项目的具体技术实现了 5.项目中技术挑战? 传统后端项目的微服务拆分、DDD架构设计、技术选型(Nacos、Dubbo)。Agent项目主要是对新技术的学习方面的,以及如何整合到自己的项目中。 6.介绍TCP长连接和短连接 7.HTTP1.0/2.0区别 8.SSE、Stdio优缺点 9.讲解一下数据库并发问题,以及隔离机制 10.MySQL的死锁怎么避免 11.JavaGC机制,一些回收算法
Interview
实习生面经(头部大厂)
一面: 1.自我介绍(主要是介绍了运维Agent项目的整个框架ReAct,与RAG整体怎么设计的) 2.写出整个Agent的架构 5.为什么用Spring AI?是否对比过LangChain?优缺点 首先是为了更好与springbo…
TL;DR
一面: 1.自我介绍(主要是介绍了运维Agent项目的整个框架ReAct,与RAG整体怎么设计的) 2.写出整个Agent的架构 5.为什么用Spring AI?是否对比过LangChain?优缺点 首先是为了更好与springbo…
版本提示
模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。