Markdown Note
3.25 字节一面
最近更新:2026/04/14
1、自我介绍 2、字节实习项目介绍,自己做了哪些工作 3、为什么引入评价体系,详细介绍一下这个评价体系,其收益是什么 4、现在上线了吗,数据量大小,以及qps, 5、工作中完成的指标 讲解跳跃扫描机制 6、如何发现索引效率低的,是怎么查 wrk结合慢查询日志 7、sql是否走查询 explain 8、是否遇到过未命中索引的情况 9、sql调优,还有什么办法:1、分库表;2、索引;3、连接池,网络 10、数据量:8000w 11、异步化,讲一讲 12、线程池的,参数,主要关注的参数,如何合理的设置参数 8c8g的服务器 13、为什么引入Redis 排序、以及存储业务线
14、800w数据,每条数据6次修改,看着数据量不大呀? 三方面原因
1、可扩展性,为以后数据量大做准备 2、score频繁变化(至少6次,以后可能更多。易扩展) 3、可以轻松做到业务+时间的分片,根据key= teant22-mounth1-week3,查询该zset分片下的排序简单。
15、讲一讲跳表,原理,时间复杂度
16、Redis用到的范围查询指令: where zest= rrange score
👉 查询 score 在 80~120 的用户:ZRANGEBYSCORE teant22-mounth1-week3 80 120 WITHSCORES 👉 返回前 3 名:ZRANGE teant22-mounth1-week3 0 2 WITHSCORES
17、代码实现,是一个人呢还是师兄带着;是否与产品交流 18、为什么叫智能化 知识问答、工单智能分析、售前人员的训练机器人 19、项目遇到过什么难点,如何解决? 拉oncall的业务线,分层存储 20、觉得项目还有什么完善的吗? 21、RAG的流程 22、RAG有什么优化策略:知识召回、数据切分 23、日常有vibe coding,讲一讲怎么做的。先想出主要的架构逻辑,为每个模块做vibecoding(代码规范),再做确认、再做单元测试 24、平常生活用到ai,openclaw、skill、claude、cursor的使用
25、用TRAE除了写代码,还用来干什么,书写项目文档、架构图梳理
开发辅助:bug修复、代码优、单元测试代码生成、文档 学习辅助:代码解释、技术问答 自动化办公智能体 生成项目架构图、项目文档
26、对于agent开发的看法 27、skills、agent的看法 28、代码书写 抛硬币 15min
总结:
部门是抖音电商的ai部门,后续重点看RAG和agent 算法欠缺 本次大部分时间都是询问字节实习的业务,项目中结合线程池、mysql调优、redis的八股, RAG和agent兴趣的考察
二面:实习,项目的反思、技术的深度
表达
ai rag 探索
让面试官感受到我对ai的热爱和兴奋感
rag、mcp见 java反射,在大模型工具调用的应用 RPC
SSE:
深入 https://chatgpt.com/s/t_69c7b02ff080819181b65995047ff148 与websocket的对比 ![[Pasted image 20260330131700.png]]
TRAE能干啥,还能拉MCP Langchain源码
Skills 与openclaw【1】:
openclaw内置了许多skill,当然你也可以自己去skill market下载其他人的skill,都保存在一个skill.md的文件中,会统一的发送给llm skill与tool调用的区别:skill是定义了一个任务该如何执行,什么时候执行,这个任务可能包括多个tool,还包括工具的执行步骤,决策逻辑。 【Skill 是对一类任务能力的封装,不仅定义了任务如何执行,还包含执行流程和决策逻辑,通常会组合多个 Tool 来完成一个完整任务;而 Tool 只是一个原子能力,不具备决策和流程控制能力。】
openclaw的存储结构:
openclaw的安全性保障:
**代码具体实现RAG的代码方法以及具体用了什么embeding和rerank
cursor(trae)、claude使用(马克)【】 dify:飞书的workflow,就是LangGrah的托拉拽
LangGrah与Langchain:
- LangChain 是基于链式调用的框架,适合简单的顺序流程,但是也可以通过代码的if else形成复杂逻辑,只是编码难度更大,需要自己构造prompt记录当前工具调用以及执行状态的信息;
- LangGraph 是基于图的工作流引擎,支持状态管理、分支和循环; 在复杂 Agent 场景中,任务往往包含多轮决策和动态路径,使用 LangChain 很难维护,而 LangGraph 可以通过状态机的方式优雅建模,因此更适合构建复杂 AI 系统。 市面上有许多可视化的平台实现LangGraph,dify、飞书workflow
ReAct:
(与前端的ReAct.js区分) thought action observation: 工具调用就是一种ReAct的思想,Function Call Langchain底层Tool底层就是Function Call,将方法列表发给LLM
AI Coding Agent:
1、Multi Agent-Ai:
多个Ai Services 一个路由选择--->计划制定---->三个agent选择一个进行work 减少上下文干扰;将方法路由等的上下文分隔出来 ![[Pasted image 20260328203003.png]]
2、记忆存储
我们的项目,每一个对话就是一个项目,所以我们的Rag是多个不同会话窗口是不互通的 RAG的tag:Userid-Conversationid(没必要) 1、摘要,凌晨定时任务调用专用的摘要模型(例如基于 PALM2.0 模型的摘要)增量摘要(不需要再存入RAG,我们这个项目不需要) 2、关键信息抽取为json:{目标:1、2、3;风格:1、2、3;规模:1、2、3},利用专门的关键信息抽取agent,并行实现 3、最近消息滑动窗口传入5条 4、系统提升词:路由、压缩、RAG Agent是没有挂载工具的 ![[Pasted image 20260328203258.png]]
3、专有知识存储在RAG向量数据库中,每次进行检索增强
RAG的调优 RAG评测
5、本地工具调用与MCP的使用
Figma MCP,需要先利用HttpMcpTransport与对应的远程MCP Server建立连接,根据HttpMcpTransport创建client,再将其包装为一个toolProvider注入agent,进行调用
`// 1. 创建 MCP Transport`
`McpTransport transport = createFigmaTransport();`
`// 2. 创建 MCP 客户端`
`McpClient mcpClient = DefaultMcpClient.builder()`
`.key("figma-mcp")`
`.transport(transport)`
`.build();`
`// 3. 打印可用工具列表(可选,方便调试)`
`System.out.println("\n可用 Figma MCP 工具:");`
`mcpClient.listTools().forEach(tool ->`
`System.out.println(" - " + tool.name() + ": " + tool.description()));`
`// 4. 创建 ToolProvider(将 MCP 工具注入 Agent)`
`ToolProvider toolProvider = McpToolProvider.builder()`
`.mcpClients(mcpClient)`
`.failIfOneServerFails(true)`
`.build();`
`// 5. 创建 LLM 模型`
`ChatLanguageModel model = buildChatModel();`
`// 6. 构建 AI Service(Agent)`
`FigmaAssistant assistant = AiServices.builder(FigmaAssistant.class)`
`.chatLanguageModel(model)`
`.toolProvider(toolProvider)`
`.build();`
本地工具
6、版本回溯:
只回滚上下文,但是不会回滚文件操作,仿照Claude 代码的回滚需要依靠git,我们项目不支持 实现:就是在消息加了一个是否回滚字段,回滚的字段会根据msgid被标记为1,不会使用; 同步删除Redis中的数据 需要了解git:workpace、 add、提交 复习git
7、安全机制
限流操作、system prompt规定了禁止进行的一些危险操作、输入护轨(正则筛选)、沙箱运行代码
护轨机制:主要是输入护轨,由于我们提供了一些文件删除的工具,防止用户恶意调用这些工具删除服务端项目代码 市面上的护轨模型:OpenGuardrails 一个开源的 AI Guardrails 平台,可以作为安全网关对 prompt 输入和输出做检查、风险分类、阻断等,还支持图片审查等内容安全检测。可插入到你的调用链中作为防护层。(我的项目暂时没用) 沙箱:每个前端框架代码的运行都必须放在 一个docker中,然后通过每个docker中的nginx挂载,提供ipport供我们访问。防止生成的项目中存在恶意代码,运行时污染环境(暂时没用)
8、多模式:
计划模式,claude的plan mode
如何实现一个电商agent(rag)
一些反问:
1、因为我个人是对agent这方面非常感兴趣,我看openclaw或者别的agent的底层记忆管理的时候,我真有一种感觉是我们在创造一个大脑的记忆模块,所以想问一下您:如果说我以后想要从事或者进一步学习agent相关的工作,还有哪些是你觉的需要掌握的,或者是当前技术还有哪些是比较有挑战性的和比较重要的,?
2、因为现在vibcoding确实太强大了,包括我最近也面了美团和阿里,就发现现在的面试对于语言上的考察比较少,像美团好像基本上都没有问java相关的东西,所以想要问您一下,站在一个面试者的角度上来说,你觉的以后的面试对于语言考察的趋势是什么,是对他的一些八股,考察的会越来越少,主要是对架构、具体场景、中间件的理解或者vibecoding的考察上吗?