AI Agent / LLM / Python方向常见面试问题
1. 第一个 AI Agent 系统是多 Agent 系统还是单 Agent 系统? 我最开始实现的是 单 Agent 系统,主要采用 Think–Execute 的 Agent 架构。 这个 Agent 负责: 接收用户问题 进行推理(Think) 判断是否需要调用工具 执行工具(Execute) 返回最终结果 后…
作者:lh
1. 第一个 AI Agent 系统是多 Agent 系统还是单 Agent 系统?
我最开始实现的是 单 Agent 系统,主要采用 Think–Execute 的 Agent 架构。
这个 Agent 负责:
-
接收用户问题
-
进行推理(Think)
-
判断是否需要调用工具
-
执行工具(Execute)
-
返回最终结果
后续为了提升能力,我也尝试过 多 Agent 协作架构,例如:
-
Planner Agent(任务规划)
-
Executor Agent(工具执行)
-
Critic Agent(结果评估)
但在实际工程中,如果任务复杂度不高,单 Agent + 工具调用通常已经可以满足需求,并且系统复杂度更低。
2. Think–Execute 循环机制的 Prompt 是你自己写的吗?
是的,Prompt 主要是我自己设计的。
整体设计思路是参考:
-
ReAct (Reason + Act)
-
Chain-of-Thought
-
Tool Calling
我通过 Prompt 明确规定模型的输出结构,例如:
Thought: ...
Action: ...
Action Input: ...
这样系统就可以解析模型输出,然后调用对应工具。
3. Think–Execute 的 Prompt 是怎么设计的?
核心思想是 约束模型输出格式,让模型既能推理又能调用工具。
例如:
You are an AI agent that can think and use tools.
When solving a task you should follow this format:
Thought: analyze the problem
Action: choose a tool
Action Input: parameters
If you already know the answer:
Final Answer: ...
Agent 执行流程:
1️⃣ 用户问题输入
2️⃣ LLM 产生 Thought
3️⃣ 判断是否需要 Action
4️⃣ 调用工具
5️⃣ 返回 Observation
6️⃣ 再次 Think
7️⃣ 直到 Final Answer
这就是典型的 Think → Execute → Observe → Think 循环。
4. 系统用的基座模型是什么?
我使用过几种模型,例如:
-
Qwen 系列
-
DeepSeek 系列
-
GPT 系列
-
LLaMA 系列
在本地部署场景下,我通常会选择:
-
DeepSeek
-
Qwen
因为它们 中文能力强、开源、推理效果好。
5. 基座模型是通过 API 调用的吗?
有两种方式:
1️⃣ API 调用
例如:
-
OpenAI API
-
DeepSeek API
优点:
-
部署简单
-
推理质量高
缺点:
-
成本高
-
网络依赖
2️⃣ 本地部署
例如:
-
vLLM
-
Ollama
-
HuggingFace Transformers
优点:
-
数据安全
-
成本可控
缺点:
-
GPU资源要求高
在企业项目里,本地部署 + API封装是比较常见的方案。
6. RAG 系统包含哪些模块?
一个完整的 RAG 系统通常包含 5 个模块:
1️⃣ 数据处理
-
文档解析
-
Chunk 切分
-
文本清洗
2️⃣ 向量化
使用 Embedding 模型,例如:
-
BGE
-
E5
-
OpenAI embedding
3️⃣ 向量数据库
存储向量,例如:
-
FAISS
-
Milvus
-
Chroma
-
Elasticsearch
4️⃣ 检索模块
根据用户问题进行:
-
向量检索
-
rerank
5️⃣ LLM生成模块
把检索到的内容 + 用户问题一起输入模型生成答案。
流程:
User Query
↓
Embedding
↓
Vector Search
↓
Retrieve Documents
↓
LLM Generate Answer
7. 系统支持多轮对话吗?上下文爆炸如何解决?
系统是 支持多轮对话的。
常见问题是 上下文长度爆炸,解决方案包括:
方法1:Sliding Window
只保留最近几轮对话,例如:
最近5轮对话
方法2:Conversation Summary
定期把历史对话总结成摘要:
summary + recent chat
方法3:Memory Retrieval
把对话存储到向量数据库:
需要时再检索。
方法4:限制工具调用次数
防止 Agent 进入循环。
例如:
max_iterations = 5
8. 如果要解决上下文爆炸,还有什么方案?
除了前面的方法,还可以:
1️⃣ Long Context 模型
例如:
-
Claude
-
Gemini
-
Longformer
2️⃣ RAG + Memory
把历史对话存储成知识库。
3️⃣ Hierarchical Memory
分层记忆:
短期记忆
长期记忆
摘要记忆
9. DeepSeek 了解吗?
了解。
DeepSeek 是一家中国的 AI 公司,推出了多种模型,例如:
-
DeepSeek LLM
-
DeepSeek Coder
-
DeepSeek-V3
-
DeepSeek-R1(推理模型)
特点:
-
推理能力强
-
开源
-
成本较低
DeepSeek-R1 还采用了 强化学习训练推理能力。
10. BERT 和 Transformer 了解吗?
了解。
Transformer
Transformer 是一种 基于注意力机制的深度学习模型架构。
核心结构:
Self Attention
Feed Forward
Residual
LayerNorm
特点:
-
并行计算
-
长距离依赖建模
BERT
BERT 是 基于 Transformer Encoder 的预训练模型。
训练任务:
-
Masked Language Model
-
Next Sentence Prediction
应用:
-
文本分类
-
情感分析
-
问答系统
11. Python 用的多吗?
用得非常多。
我主要用 Python 做:
-
AI模型开发
-
Agent系统
-
RAG系统
-
数据处理
-
Web接口开发(FastAPI / Flask)
常用库包括:
transformers
langchain
pytorch
numpy
pandas
faiss
12. Skil 了解吗?
如果指的是 SKIL 框架,它是一个用于 AI Agent orchestration 的工具。
不过在实际项目中,我更多使用:
-
LangChain
-
LlamaIndex
-
AutoGen
来实现 Agent 系统。
13. 可以分享 Think–Execute 的伪代码吗?
可以,例如:
class Agent:
def run(self, query):
context = query
for step in range(5):
thought = self.think(context)
if thought["type"] == "final":
return thought["answer"]
result = self.execute(thought["tool"], thought["input"])
context += result
14. Think 和 Execute 是框架自带的吗?
不是。
通常是 我自己实现的逻辑。
例如:
think() → 调用 LLM
execute() → 调用工具
框架(例如 LangChain)只是提供工具接口。
15. 简单说一下快速排序的思想
快速排序是一种 分治算法。
核心思想:
1️⃣ 选择一个 pivot(基准值)
2️⃣ 将数组分成两部分:
左边:小于 pivot
右边:大于 pivot
3️⃣ 对左右子数组递归排序
时间复杂度:
平均:O(n log n)
最坏:O(n²)
示例代码:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = [x for x in arr[1:] if x <= pivot]
right = [x for x in arr[1:] if x > pivot]
return quick_sort(left) + [pivot] + quick_sort(right)