🐟总结的agent八股
我觉得有实习以后,八股的考察基本上围绕实习所以答八股的时候我就喜欢引申出去,先回答对应的理解,也就是八股,然后再延伸到自己项目如何使用这个技术,表示自己是真的会,而不是浅显背诵理解,这样回答面试官一般会比较满意,Agent是这样,后端也是这样ReAct指的是大模型感知,决定使用tool,处理结...
字数: 1939 | 语雀原文
我觉得有实习以后,八股的考察基本上围绕实习
所以答八股的时候我就喜欢引申出去,先回答对应的理解,也就是八股,然后再延伸到自己项目如何使用这个技术,表示自己是真的会,而不是浅显背诵理解,这样回答面试官一般会比较满意,Agent是这样,后端也是这样
ReAct
指的是大模型感知,决定使用tool,处理结果,再循环的过程,本质是一个loop(循环图)的过程
会思考,调用合适的工具,然后根据结果思考要不要继续调用
跟一般的pe+tools有什么区别
线性工具调用的过程,相比之下缺少对应的循环,单步调用
怎么科学评估一个模型比另一个好
同样的情况下进行AB实验,因为不同业务场景和数据,其实模型的效果不一定,需要具体实践才能得知,具体可以看实验下的各类指标,准确率等等
- 方法就是AB实验的平台,可以用另一个大模型/或者人工对两个模型的回答打分,也可以把这个打分权利给用户,让用户通过前端打分
- 其次就是一些科研的经验,比如汉明损失,杰卡德相似系数等,论文常用的评测集合准确率的指标,可以了解一下
指标
- 任务成功率
- 平均响应时间
- 幻觉率
- 用户满意度
常见向量数据库了解吗
常见向量数据库
- Milvus
- Weaviate
- Pinecone
- FAISS
- Elasticsearch HNSW 比较重要问的频率高一点的是Milvus和ES的底层
一本很大的书要放进数据库要怎么做
- 文本清洗
- 分块 chunk
- 固定长度
- 滑动窗口
- 语义分块
- embedding
- metadata 存储
- 向量写入
对attention机制有没有了解
这个要细看一下,也是属于Transformer架构类的问题,一般答出来QKV的计算过程和最后softmax归一的处理就可以了,而且经常被问到这个问题
多轮对话幻觉怎么办
其实可以先分析具体的原因
- 如果是任务过于复杂,就试图隔离上下文,用subagent,每个agent负责自己的任务,防止上下文污染
- 如果是单个模型幻觉严重
- 一个是从模型下手,调低温度,改提示词,成本最低
- 一个是增加监督,react的环节,生成答案之后自己检查,没问题再输出
- 还可以规范化模型的输出,让模型输出结构化的json,并且输出后用ifelse语句检查,也能减少幻觉
长上下文怎么处理
这里其实就是想问上下文工程
- 可以先回答一些常用的一些上下文策略,mem0架构,memgpt架构
- 其次是可以用RAG的方式,把长期记忆
- 其次是记忆过长可以做摘要提取关键信息
rag怎么做的?流程是什么?有哪几种方式实现的?
rag其实是一个可以学很深的东西,可以细看我笔记的rag模块,如果只是标准链路的话:
Query
↓
Embedding
↓
向量检索
↓
TopK 文档
↓
拼接 prompt
↓
LLM 生成
具体实现估计是问有哪些召回索引策略,比如说关键词BM25,向量检索,图检索
query进来的完整链路是怎么做的
和上一个问题类似
知识库怎么更新
embedding的过程,就是把query转化成高维向量的过程,一般512维
大文件怎么入库的
- 分片并行 embedding
- 批量写入
- 断点续传
- 索引异步构建
模型和工程化怎么配合的
工程上做好:
-
限流
-
缓存
-
监控
-
任务调度 模型上做好:
-
模型效果评估,验证
-
多模型 fallback
-
成本控制也就是token监控
mcp和skills区别
Skills类似插件函数,存储的一般是一些提示词,教会模型按照某个流程完成任务,是教程
模型 → 调用 skill → 返回结果
MCP本质是:统一模型与外部工具 / 记忆 / 环境的协议层,可以让模型调用外部工具的能力
了解的ai最新进展
你可以说我让openclaw每天给我总结最新ai动态
了解skills和mcp的概念吗?
同上
mcp和skill底层如何实现的?渐进式披露是怎么实现的?
实现方式:
- 模型先请求 capability list
- 再按需请求接口 schema
- 再调用 避免一次性暴露所有工具。
其实这里我在字节实习,项目中用了更好的方法,也就是先通过意图识别路由进行隔离,不同任务拥有的skil和tools上下文不一样
openclaw用过吗?核心亮点是什么?
- 多 Agent 协同
- DAG 编排
- 可插拔 memory
- Tool abstraction
- 任务图执行引擎 可以说一下agentharness的概念
FastApi常用的包都了解吗?
我不太懂这个
A2A协议
Agent to Agent交互的协议,类似微服务之间的 RPC,但带语义。
核心是:
- 任务声明
- 能力描述
- 消息格式
- 状态同步 具体过程就是agent通信的时候带有介绍自身能力和拥有的tools的agent card,通过这个agent car实现了agent之间的服务发现和调用,有点像微服务的感觉
除了coze 了解过其他agent相关框架吗 比如langchain langgraph
其实我没怎么用过langgraph,coze应该不算框架吧
了解什么agent开发的框架?框架里有哪些组件呢?
eino,langchain,感觉拥有的组件都类似,都包括Agent,tools,chain,rag,memory,status这些基础能力
memory是什么了解吗?
这个经常问到,如果想回答好还是要了解一两个业界最先进的agent框架,比如mem0,memgpt,其次广泛上回答大概就是三层:
- 短期上下文
- 长期向量记忆
- 结构化记忆(图数据库) 短期记忆一般直接插入,长期记忆一般选择性插入(向量检索),并且做摘要
上下文窗口满了如果需要压缩,怎么去压缩呢?如何筛选有效信息和垃圾信息,保证正确率最大呢?
摘要压缩
对历史对话做抽象总结,可以给LLM提示词,让他从多维度提取,比如“用户画像”,“情景记忆”,“敏感信息”等抽取
实体提取
保留人名、参数、关键变量(这一步抽取这些信息也可以用作图数据库的建立)
重要性打分
- TF-IDF
- Attention score(本质就是rag的rerank过程,这个可以深入了解一下很有帮助,就是把用户的query和chunk拼在一起,去transformer的encoder层计算注意力分数,能算出相关度)
- 模型判断 relevance
记忆分层
热记忆 + 冷记忆
工程实现:
历史对话
↓
embedding
↓
重要度排序
↓
只保留 top N