1,开源模型

1.1,BERT,GPT,T5

【问题】为什么现在 Decoder - only 成为大模型的主流架构?

prefix LM(前缀语言模型,BERT,encoder-only)

  • 原理:每个 token 在一层里都能看到“整句”的其他 token(只受序列长度限制)。

  • 结构:BERT-Base 包含 12 层,BERT-Large 包含 24 层。每一层都有多头自注意力机制。嵌入层包括:词向量、句子向量、位置向量。

  • 预训练:

    • Masked LM(MLM,掩码语言模型):随机将句子中 15% 的词进行“遮盖”;80% 替换为 [MASK];10% 替换为一个错误的随机词;10% 保持原词不变(为了减小预训练和微调之间的差异)。强迫模型通过上下文双向推断被掩盖的词,从而理解深层的语义关系。

    • Next Sentence Prediction(NSP,下一句预测):输入两句话 A 和 B,让模型判断 B 是否是 A 的下一句。让模型学习句子之间的逻辑和关联性。

  • 案例:因为它能联系上下文,适合分类、QA、实体识别等。今天的天气很[MASK],适合出去玩。

  • 优点:由于能同时看到上下文,它对词义、句法和文本关系的理解非常精准。在文本分类、情感分析、命名实体识别(NER)等“选择题”任务上表现极佳。
  • 缺点:相比 causal LM,因为它用掩码语言模型预训练,不擅长做生成任务,连续长文本生成能力较弱;预训练通常用掩码(填空),但实际预测时没有掩码(预测下一个词),这导致它在推理时存在训练与预测的不一致性。
特性 因果注意力 (Causal Attention) 双向注意力 (Bidirectional Attention)
核心机制 单向、自回归。通过一个上三角掩码矩阵(未来位置为-inf)阻止对后续位置的访问。 双向、非自回归。没有掩码限制,每个位置都能与序列中所有其他位置交互。
信息流 严格从左到右,只能利用历史信息。 自由流动,能同时利用上下文全貌。
训练目标 通常为自回归语言建模(如 GPT):预测序列中的下一个词。 通常为掩码语言建模(如BERT):根据上下文预测被掩盖的词。
输出特点 输出是顺序生成的,一次一个令牌。 输出是并行计算的,所有位置的表示可以同时得到。
适用场景 文本生成,语音合成 文本分类,完形填空

causal LM(因果语言模型,GPT,decoder-only)

  • 原理:使用 Triangular Mask(三角掩码)。在矩阵计算中,右上角全部被遮盖(设置为负无穷),强制模型只能关注当前及之前的 Token。

  • 案例:自回归生成,写故事、写代码,不能回头改前面的逻辑。今天的天气很...,今天的天气很 暖和,适合出去玩。

  • 优点:由于训练目标(预测下一个词)与推理过程完全一致,兼顾理解和生成,给定之前的所有词作为上下文,生成的文本逻辑连贯、自然。

  • 缺点:在处理需要全局视野的任务(如复杂的文本填空)时,效率不如双向架构;总是在根据概率预测下一个词,而不是真的在“思考”逻辑(幻觉)。

encoder-decoder(编码解码器模型,T5)

  • 原理:Encoder 负责理解输入(双向),Decoder 负责生成输出(单向),两者通过 Cross-Attention 连接。Encoder 将输入序列压缩成一组隐向量,Decoder 在生成的每一步都会去查阅这些向量。

  • 案例:天然适合“输入到输出”的条件生成任务,如机器翻译、摘要和问答,生成内容严格受输入约束,信息流是“先理解,再生成”。

  • 优点:既能理解复杂的输入,又能生成流畅的输出。非常适合翻译(Input A -> Output B)和摘要;它可以将所有 NLP 任务统一转化为 Text-to-Text 格式。
  • 缺点:同样的效果下,需要维护两套权重,计算量通常比 Decoder-only 大很多。

1.2,DeepSeek R1

【R1-Zero】如果不给模型任何人工标注的答案,只给它奖励规则,它能学会推理吗?

  • 初始状态:直接用 DeepSeek-V3-Base(基础模型)开始。

  • 训练方式:纯强化学习(RL)。

  • 核心逻辑:模型每做对一道数学题或写对一段代码,就给它加分。

  • 结果:模型在训练过程中出现了神奇的 “顿悟时刻”(Aha Moment)。它学会了在回答前先写出长长的 <thought>(思考过程),并学会了自我否定(“不对,我刚才算错了,重来”)。

  • 缺点虽然推理能力强,但 R1-Zero 输出的格式很乱,经常中英文夹杂,甚至读起来很费劲。

【DeepSeek-R1】为了解决 Zero 的混乱问题,DeepSeek 研发了正式版的 R1,其过程像是在“培养一个高材生”:

  • 冷启动(Cold Start):给基础模型喂几千条高质量的、带有详细思考过程(CoT)的推理案例。这相当于给学生先看几道满分作文,让他知道“推理”和“思考”的正确格式是什么。
  • 推理强化学习(Reasoning RL):这是 R1 推理能力飞跃的关键。DeepSeek 引入了其独创的 GRPO(群组相对策略优化) 算法。
  • 拒绝采样与再微调:模型变聪明后,让它自己生成大量的数据。DeepSeek 挑选出其中逻辑最严密、结果最准确的部分(约 60 万条推理数据,加上 20 万条通识数据),再次对模型进行微调。
  • 全领域强化学习:让模型在保持推理能力的同时,学会如何更友好、更安全地与人类交流。

【问题】DeepSeek R1 的冷启动具体是什么?冷启动通常指的是在缺乏特定任务或领域的监督数据的情况下,对模型进行初始微调,以便为后续训练提供基础。冷启动数据相当于给模型提供一个“热身”阶段,而不是直接从零开始探索,帮助它更高效地发展推理。解决:混合多种语言,或者缺少 Markdown 格式等问题。

【问题】DeepSeek-MTP 是用在训练阶段还是推理阶段的,具体过程是怎样的?

阶段 核心作用 对模型的影响 资源消耗
训练阶段 辅助训练任务 提升主模型的理解与规划能力 增加约 10%-15% 的显存与计算开销
推理阶段 投机采样加速 显著降低延迟,提高吞吐量 增加极少量的显存(仅需加载 1 层 Layer)
  • 【训练阶段】传统的 LLM 只需要预测下一个词。而 DeepSeek-V-3 引入了 MTP 模块,要求模型在同一个位置不仅预测下一个词,还要预测下下个、甚至下下下个词。每一个预测层都会计算交叉熵损失,并合并到总损失中。这样做强迫主模型在生成当前词时,必须考虑更远、更全局的上下文。
  • 【推理阶段】MTP 模块被保留下来,作为内置的草稿模型来加速生成。主模型生成一个词后,MTP 模块会迅速盲猜接下来的 1 到 2 个词(只有 1 层 Transformer,运行极快)。主模型在下一次前向传播中,会同时验证自己生成的词和 MTP 模块猜的那几个词。如果猜对了,这一轮就直接输出了多个词,效率翻倍。如果猜错了,主模型会纠正该位置的词,并丢弃错误的后续词。根据 DeepSeek-V3 的技术报告,使用 MTP 进行投机采样,推理速度可以提升 1.8 倍左右,且完全不损失模型质量。

1.3,Qwen

【问题】Qwen(LLaMA) 与传统的 Transformer(GPT) 模型相比,有什么结构上的改进?

  • Attention:从标准 MHA 到 GQA 优化实现
  • 位置编码:从绝对位置到 RoPE 系改进 RoPE scaling(频率缩放)
  • 梯度求解方式:Transformer 使用 Post-Norm,深层模型训练不稳定。Qwen 使用 Pre-LayerNorm,梯度更稳定,支持更深网络。
  • 激活函数(FNN):从 ReLU(GELU) 到 SwiGLU
  • 归一化(FNN):使用 RMSNorm(替代 LayerNorm,去掉均值项,计算更高效)

【问题】RoPE scaling 是什么?通过拉伸位置角频率,减缓高频旋转在长序列下的相位崩溃,让 attention 在更长距离仍能对齐语义。

【Qwen 2.5 - Coder】【DeepSeek - V3】

特性对比 DeepSeek-V3 Qwen2.5-Coder-32B Qwen3-235B
核心架构 MoE Dense MoE&Dense
注意力机制 MLA GQA GQA
注意力头数 128 40 64

【Qwen 2.5】【Qwen 3】

  • Qwen3此次同时推出了MoE与Dense(密集)两种架构;Qwen 2.5 仅支持 Dense(密集)架构。
  • Qwen3 在 Attention 机制中引入了对 Q 和 K 的额外归一化步骤,有助于稳定训练、提升模型性能,是两者在 Attention 计算流程上的一个显著不同点。
  • Qwen3 在 Attention 层的偏置配置上比 Qwen2 更灵活,可以通过配置文件调整,而 Qwen2 则固定了这些层的偏置设置。

2,通用问题

2.1,复读,长上下文,多轮对话

【问题】LLM 出现复读机现象,是什么原因?数据数量和质量都不好,硬件资源限制只能选择较小的模型,试图做一个领域大模型,很容易遇到大模型复读机问题。

  • 过拟合:训练数据较小或模型复杂度过高时,过度学习了训练数据中的某些模式,导致生成的输出重复或固定。
  • 数据质量:训练数据中如果存在无意义的噪声数据(例如重复的句子或段落)。
  • 解码策略:解码时使用低温度值会导致模型输出概率较高的词语,容易出现重复。
  • 奖励/损失函数:损失函数没有惩罚重复生成,或者没有考虑多样性。
  • 学习率过高:模型会陷入某些固定的模式或局部最小值,导致生成重复的输出。

【问题】大模型的超长上下文问题怎么解决?

  • 模型层:改位置编码 + 改注意力结构 + 长上下文训练
  • 系统层:序列并行、显存优化 vLLM、分布式训练/推理 DeepSpeed
  • 应用层:RAG + 分块处理 + 上下文压缩 + Agent 工作流

【问题】长上下文压缩有哪些方法?

  • 软提示压缩(Gist TokensAutoCompressors):训练模型将一段长文本“蒸馏”成几个特殊的虚拟 Token。这些 Token 承载了原始文本的语义信息,模型后续只需处理这些精简后的向量。压缩率极高,能显著减少推理时的 KV Cache。
  • 提示词精简(LLMLingua、LongLLMLingua、LLMLingua2):利用一个小模型计算各个 Token 的困惑度。移除那些对语义贡献较小的连接词或冗余信息。通用性强,不需要重新训练大模型。
  • KV Cache 管理与压缩(vLLM,Sparse Attention、量化、窗口机制)
  • RAG

【问题】基于 Transformer 大模型,怎么处理用户的长行为序列?

【答案】稀疏注意力,通过引入注意力机制的稀疏性,减少了计算量和内存使用,使得 Transformer 能够处理更长的序列,可能面临信息丢失和模型复杂度增加问题。限制每个查询只能与序列中的一部分键建立联系,从而避免全连接注意力计算中的高复杂度。

  • Longformer:使用局部窗口注意力,即每个位置的查询只关注固定大小窗口内的键。全局注意力,手动选择的几个位置(特殊 token),不仅与自己的局部窗口有注意力,还与其他所有位置进行交互。这确保了模型可以捕捉全局信息。

  • Reformer:使用 局部敏感哈希 来将查询和键映射到相同的桶中,从而减少每个查询需要计算的键的数量。可逆层使得每一层的输出可以在前向传播时保存,并在反向传播时用来计算梯度。减少每层所需存储的激活值,从而降低了内存消耗。

  • BigBird:组合窗口注意力、全局注意力和随机注意力来创建一个块稀疏的注意力模式,其中大多数查询-键对的注意力计算被“屏蔽”掉了。

  • Linformer:假设自注意力矩阵是低秩的,并使用低秩矩阵近似来简化计算。所有位置的注意力矩阵在计算时是共享的,从而减少了计算量。

【滑动窗口】硬截断:只保留最近的 N 个 Token 的 KV Cache,物理显存占用不随总文本长度增加而增加。

  • 标准注意力O(L^2\cdot d) —— 计算量随序列长度呈平方级增长。
  • 滑动窗口O(L\cdot d \cdot w) —— 计算量随序列长度呈线性增长。

【NTK-Aware Scaling 动态缩放】伪压缩:修改位置编码的数学性质,让模型能“看懂”超出训练长度的位置。通过改变 RoPE 的 base \theta,拉伸位置向量的频率,使长距离的相对位置关系在低维空间中可分。实际上并未减少 KV Cache 的大小(因为要存所有 Token),而是扩大了上下文窗口的上限。

【问题】 “packing” 形式和 “多轮对话” 形式有何区别?各自对训练效率和模型能力有何影响?Packing 是一种数据批处理策略。它将多个较短的训练样本(如短文本、短对话)拼接成一个较长的序列,直到达到模型的最大上下文长度。使得每个 Batch 里的序列几乎没有 Padding,计算资源的利用率接近 100%。多轮对话通常比单轮文本更长,且长度差异很大。如果不使用 Packing,多轮对话数据会导致严重的 Padding 浪费(因为 Batch 必须按最长对话对齐)。

【问题】如果要提升大模型的多轮对话能力,有哪些可以改进的点?微调

【方案一】User1、Assistant1、User2、Assistant2、User3 的文本都视为模型的输入部分,将Assistant3 的文本视为模型的预测部分,只有 Assistant3 部分的 loss 参与权重更新。多轮对话中,只有最后一个助手回复被用作训练数据,导致对话的上下文和丰富的中间回复没有得到充分利用,从而浪费了宝贵的训练数据。此外,最后的回复通常较为简短,缺乏信息量,若仅使用这些简短回复进行训练,会大大降低模型的训练效果。

Condition:User1 Assistant1 User2 Assistant2 User3
Predict:Assistant3

【方案二】将一条多轮对话数据,拆分成多条数据。能够更加充分利用多轮对话中每一个Assistant的回复内容。但是弊端在于,需要将一个包含 n 轮对话的数据,拆分成 n 条数据,训练效率降低了 n 倍,训练方法不高效

Condition:User1
Predict:Assistant1

Condition:User1 Assistant1 User2
Predict:Assistant2

Condition:User1 Assistant1 User2 Assistant2 User3
Predict:Assistant3

【方案三】将一条多轮对话数据拼接之后,输入模型,并行计算每个位置的 loss,只有Assistant 部分的 loss 参与权重更新。模型的 attention mask 是一个对角掩码矩阵,每个 token 在编码的时候,只能看到它之前的token,看不到它之后的 token。所以 User1 部分的编码输出,只能感知到 User1 的内容,无法感知到它之后的文本,可以用来预测 Assistant1 的内容。而 User2 部分的编码输出,只能看到 User1、Assistant1、User2 的内容,可以用来预测 Assistant2 的内容,依此类推。对于整个序列,只需要输入模型一次,便可并行获得每个位置的 logits(模型输出的预测分数,从而用来计算 loss。

Condition:User1 Assistant1 User2 Assistant2 User3
Predict:Assistant1
Predict:Assistant2
Predict:Assistant3

【方案四】架构层面:RoPE,FlashAttention,KV Cache 等;

2.2,评测,幻觉,Prompt

【问题】大模型生成评测:大模型生成内容的评测方式有哪些,具体如何操作?

【LLM Judge 评估】使用大语言模型作为评委,自动化地从多个维度评估生成数据的质量。基于四个维度计算:平均分,及格率,优秀率。

  • 正确性:数学逻辑是否正确,答案是否准确。
  • 清晰度:问题表述是否清晰,解答是否易懂。
  • 难度匹配:难度是否符合 AIME(美国数学邀请赛) 标准。
  • 完整性:解答步骤是否完整,是否包含必要的推理。

【Win Rate 评估】通过成对盲测对比的方式,让 LLM 直接判断生成题目和真题哪个更好,这种相对比较比绝对评分更符合人类的判断习惯,也更容易发现题目的相对优势和劣势。

【人工验证】阅读题目、答案、解答,手动评价:正确性、清晰度、难度匹配、完整性。


【工具调用】BFCL、ToolBench、API-Bank。

【通用能力】GAIA、AgentBench、WebArena

【多智能体协作】ChatEval、SOTOPIA、自定义协作场景

【软实力】

  • 指令遵循能力:发送包含复杂约束的 Prompt。查看模型是否严格遵守了所有格式、长度和内容限制。
  • 上下文记忆与抗遗忘:进行多轮对话,在第 10 轮询问第 1 轮设定的特定信息。查看能否准确召回早期信息。
  • 幻觉率:询问一些不存在的事实或极易混淆的知识。判断模型是会一本正经地胡说八道,还是会诚实地回答“我不知道”或“目前未有此信息”。
  • 角色扮演与语气:指定特定人格(如:刻薄的产品经理、温柔的幼儿园老师)。回复是否“出戏”,语气是否符合设定。

【效率成本】

指标 定义 评测标准
首字延迟 发出指令到收到第一个字的时间。 越低越好,直接影响用户的“等待感”。
逐字延迟 生成每个后续 Token 平均所需的时间 越低越好,直接影响用户的“等待感”。
生成速度 每秒能生成多少个 Token。 流式输出的阅读体验,通常 > 50 tokens/s 为佳。
上下文窗口 模型能一次性“吃”进多少文字。 4k, 32k, 128k, 1M?窗口越大,能处理的文档越长。
价格 (Cost) 输入/输出 每 1k Tokens 的价格。 结合效果看性价比。有时稍微差一点的模型,便宜 10 倍,更划算。

【问题】大模型幻觉问题:阐述大模型的幻觉现象及抑制方法?

【答案】幻觉指的是一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。比如在医疗应用中,对患者生成的报告如果存在幻觉可能导致错误诊断甚至影响生命安全。

  • 提示工程: 明确指令要求,引导模型进行“思维链”推理,降低跳跃性错误。
  • 检索增强生成(RAG): 引入外部知识库,让模型基于最新、准确的上下文信息生成回答,而非仅依赖内部参数。
  • 知识强化与微调: 使用高质量、准确性高的数据进行指令微调(SFT),并结合人类反馈强化学习(RLHF)引导模型诚实回答。
  • 解码策略优化: 调整采样参数(如降低Temperature),减少输出的随机性,提高确定性。
  • 多步推理 & 校验:引导模型多步推理、利用模型自我反思或外部工具(网络搜索、计算器、代码解释器)对生成结果进行二次核查和修正。

【问题】知识幻觉和推理幻觉?

  • 知识幻觉:陈述了不存在/错误的事实(人名、地点、数据)。问无需复杂逻辑的事实题。马斯克的第一家公司叫什么?只要事实错,即为知识幻觉。
  • 推理幻觉:前提正确,但逻辑链条断裂、计算错误或因果不成立。在Prompt中提供正确的事实前提,让模型仅做逻辑推导。已知A>B,B>C,问A和C的关系?前提已给,推错即为推理幻觉(排除记忆干扰)。

[角色设定] + [背景信息] + [核心任务] + [约束条件] + [参考示例] + [输出格式]

模块 作用 常用指令关键词 示例
角色设定 激活 AI 特定领域的知识库 你是… / 扮演… / 作为… 你是一位资深的 Python 后端工程师。
背景信息 解决上下文缺失问题 背景:… / 目标受众是… / 目的是… 我正在开发一个电商网站,面向高并发场景。
核心任务 明确要做什么,使用强动词 请编写 / 请分析 / 请总结 / 请生成 请编写一个 Redis 缓存失效的解决方案代码。
约束条件 规定边界,防止 AI 瞎编 字数限制 / 风格要求 / 禁止事项 字数不超过 500 字,风格要严肃,不要使用网络用语。
参考示例 提供样板,提升模仿精度 (Few-Shot) 参考: / 如下例所示: / 模仿: 参考以下风格:“Error occurred at line 10…”
输出格式 规定结果的呈现形式 表格 / Markdown / JSON / 代码块 请以 Markdown 格式输出,包含代码块和解释。

【问题】如果引入 Few-shot Prompting,为什么能提升输出质量?

  • RAG 检索出的文档内容冗长、格式杂乱。如果没有示例,模型需要凭空理解你要的答案格式。

  • RAG 查询需要多步推理(比较 A 和 B 的异同,或者多文档总结)。Few-shot 可以引导LLM 在生成最终答案前进行内部逻辑梳理,减少幻觉。

  • RAG 检索到的文档有时并不直接包含答案,但包含高度相关的类比信息。Few-shot 引导模型进行类比,进行合理推断。

  • RAG 检索出的结果往往包含噪声,模型会模仿 Few-shot 注意力分配,精准地筛选高价值信息,屏蔽噪声。

2.3,记忆,漂移,创造性

【问题】怎么设计 agent 的记忆系统?

  • 短期记忆:存储的是当前任务的即时上下文、刚发生的对话轮次以及正在处理的中间推理步骤(如 CoT)。访问速度极快,但容量受限于模型上下文长度,且成本随长度增长。采用滑动窗口摘要压缩
  • 长期记忆:存储在外部数据库中。它包含过去所有对话的历史记录、用户偏好、学到的技能或完成过的任务日志。容量近乎无限,通过检索机制按需调取。向量数据库+ 关系型/文档型数据库。

【问题】长期记忆如何存储?如果历史记录量非常大,怎么优化查询效率?

  • 混合检索:向量检索 与 全文检索 结合
  • 分层存储与冷热路由:热数据:最近一周或频繁访问的记忆,存储在内存数据库(如 Redis)或高性能向量索引中;温数据:较旧但可能相关的记忆,存储在标准的分布式向量数据库;冷数据:极少访问的记录,进行有损压缩或摘要处理后存入低成本存储,查询时增加异步加载机制。
  • 记忆压缩:LRU 淘汰;分级摘要:将 10 轮对话压缩为 1 段摘要,将 10 个摘要压缩为 1 个主题。查询时先匹配主题,再定位到具体的摘要或原始对话。实体关联与知识图谱:将离散的记忆片段转化为结构化的知识节点。查询时通过“实体”导航,比直接在海量向量中盲目搜索更精准。

【问题】大模型怎么解决用户兴趣漂移的问题?

  • 时间折扣因子:近期行为高权重,历史信息逐渐以往。
  • 滑动窗口+长期画像:短期窗口捕捉最新兴趣,长期画像提供稳定基线。
  • 强化学习+在线反馈:将用户实时反馈作为奖励信号,使用RLHF类似思路,根据点击/忽略动态调整。

【问题】如何评估一个生成模型的创造性?有哪些量化指标?

  • N-gram 重复率:通过计算生成文本中 n-gram(如2-gram、3-gram)的重复度来衡量新颖性。低重复度表示生成结果的新颖性高。
  • 余弦相似度:可以计算生成内容与已有数据(如训练集)之间的相似度,较低的相似度意味着生成的内容较为新颖。
  • 困惑度:衡量模型对自身生成内容的预测不确定性。对模型自身来说越“意外”,可能越新颖。
  • 新颖性检测:训练一个判别器来区分生成样本和真实样本(或“新颖”与“平庸”样本)。

3,Agent 框架

3.1,LangChain(多 Agent)

【Agent 框架】LangChain、LangGraph

  •  【LangChain】 优势是上手快、生态成熟,适合线性或简单分支的 Agent 工作流。不足在于控制流和状态管理能力有限,复杂条件分支、循环和多阶段决策不易精细表达。
  • 【LangGraph】LangGraph 面向复杂、有状态的 Agent 系统,基于图(StateGraph)建模流程。节点表示操作,边表示控制流和状态转移,支持条件分支、循环、并行和共享状态,使多步骤流程可控、可追溯。
  • 本质区别在于控制粒度:LangChain 偏高层抽象、开发效率优先;LangGraph 偏底层控制、灵活性优先。实际项目中常先用 LangChain 原型,复杂后迁移或嵌入 LangGraph。

【单 Agent】单 Agent 系统依靠一个核心模型来规划、执行并调用工具。适用于简单任务自动化、明确的单一任务、快速原型。

  • 优势:
    • 开发简单:架构直观,不需要处理复杂的通信协议和冲突协调。
    • 响应迅速:没有模型间对话带来的额外 Token 消耗和网络延迟,反馈链条短。
    • 上下文一致性:信息始终在一个“大脑”中流动,不存在信息传递过程中的语义丢失。
  • 劣势:
    • 能力瓶颈:面对极其复杂的长链路任务,模型容易出现“幻觉”或逻辑迷失。

    • 工具过载:如果给一个 Agent 挂载太多插件(Tooling),模型很难精准选择最合适的工具。

    • 难以扩展:就像一个人很难同时精通法律、代码和医学,单模型在多领域跨度任务中表现乏力。

【多 Agent】多 Agent 架构通过将复杂目标拆解为子任务,由不同角色的 Agent 分工完成。适用于复杂软件工程、多步骤调研任务、复杂决策流程。

  • 优势:
    • 模块化与解耦:每个 Agent 只负责一个子领域,专业度更高。

    • 自我纠错(反思机制):Agent 之间可以相互校验。例如,代码 Agent 写完程序,由测试 Agent 进行 Review,大幅降低幻觉率。

    • 更好的扩展性:根据需求灵活增减不同职能的 Agent。

  • 劣势:

    • 成本高昂:多个 Agent 之间的往返对话会消耗大量的 Token。

    • 通信损耗:如果指令传递不清晰,Agent 之间可能会产生误解,甚至陷入死循环。

    • 复杂度激增:需要复杂的编排逻辑(如顺序流、对等流或层级流)。

  • 策略冲突:多数投票机制、优先级、回滚、反思、长短期记忆。

  • 共享上下文哈希冲突:采用读写分离的双层 Checkpointer 架构:全局 Checkpointer 作为只读共享层,供所有 Agent 读取彼此的历史状态;每个 Agent 拥有独立路径前缀的私有 Checkpointer 负责写入,从源头隔离冲突。写入时通过文件级版本号进行乐观锁检测,任务完成后由 Orchestrator 统一将私有变更合并回全局,并在合并阶段应用冲突解决策略。       

【问题】工作流与 agent 的异同?

  • 工作流是一种自动化范式,其核心是对一系列任务或步骤进行预先定义的、结构化的编排。它本质上是一个精确的、静态的流程图,规定了在何种条件下、以何种顺序执行哪些操作。
  • 智能体是一个具备自主性的、以目标为导向的系统。它不仅仅是执行预设指令,而是能够在一定程度上理解环境、进行推理、制定计划,并动态地采取行动以达成最终目标。具备极高的自主性:规划与工具调用、推理与决策、综合生成结果。

3.2,ReAct(COT,反思)

ReAct(Reasoning + Acting)是一种 将“推理过程”和“工具调用”交替结合的 Agent 架构,核心目标是让模型在多步任务中,一边思考、一边与外部环境交互,而不是一次性给出答案。ReAct 将模型的行为拆成三个循环阶段Thought(思考)→ Action(行动)→ Observation(观察)让大模型先进行思考,思考完再进行行动,然后根据行动的结果再进行观察,再进行思考,这样一步一步循环下去。

【Reasoning】

  • 动态思考链 :Agent在每一步生成自然语言推理逻辑,解释当前决策原因(如:“用户需要查天气,需先获取位置信息”)。
  • 错误回溯机制:当行动失败时,Agent能分析原因并调整策略(如:“API返回错误,可能是参数格式问题,重试前需校验输入”)。

【Acting】

  • 工具集成(Tool Calling) :调用外部API、数据库、计算器等(如:search_weather(location="Beijing"))。
  • 环境状态感知:实时接收行动结果,作为下一步决策的输入(如:“获取到北京气温25°C,建议用户带薄外套”)。

【CoT 思维链,线性推进】通过在少样本学习中提供一系列中间推理步骤作为“思路链”,可以明显改善语言模型在算术、常识推理和符号推理任务上的表现。COT 模拟了人类逐步思考推理的过程,让语言模型也能够逐步组织语言进行多步推理。

  • 实现成本低、泛化能力强,在数学推理、逻辑判断、符号推理等任务中能显著提升正确率。

  • 缺乏分支探索和回溯能力,一旦早期步骤出错,后续推理将持续放大错误。

  • 适用场景:逻辑直观、步骤明确、因果关系单一的任务。

A → B → C → Result。你只要第一步算对了,后面顺着走就能出结果。

【ToT 思维树,分支探索】将推理过程从线性链扩展为树结构,引入搜索与评估机制,使模型能够并行探索多个候选推理路径,并通过打分或裁剪机制选择最优分支继续推理。

  • 分支探索、路径选择与回溯能力,能够有效避免早期错误导致的整体失败。
  • 推理成本高、调用次数多、系统复杂度明显增加。
  • 适用场景:存在多种可能解、需要中途评估决策、搜索空间较大的任务。
当参数 a > 0, a = 0, a < 0 时,方程根的情况。

给定四个数:4, 2, 8, 6,通过加法、减法、乘法、除法运算,能否得到目标值 24?需要尝试不同的运算组合,发现不行就得“回溯”换一组。

【GoT 思维图,网状聚合】从树推广为有向图结构,允许不同推理路径之间相互连接、合并、复用中间结论,从而构建全局一致的推理网络。每个节点代表一个中间推理状态,节点之间可以形成多父节点关系,实现跨路径知识融合。

  • 推理上限极高,适合复杂系统建模和多 Agent 协同规划。
  • 工程复杂度高,调度、评估和一致性维护难度大。
  • 适用场景:极其复杂、需要整合多个独立信息块、需要迭代优化的任务。
需要先证明引理 1 和引理 2,然后把它们合并起来推导结论。

算出初步解后,发现复杂度太高,需要根据反馈循环回第一步修改策略。

【Reflection Agent】简单的生成器加反思器循环。生成器负责起草、反思器负责批评,然后生成器根据反馈进行修订。

【Reflexion Agent】更加结构化,会在可追踪的日志中记录历史行为、假设和反思内容。特别适合那些需要从多次失败中汲取经验的问题求解场景。

  • 初始生成:Agent产生回答,同时给出自我批评和研究查询。
  • 外部研究:根据批评中识别的知识缺口触发网络搜索或其他信息检索。
  • 知识整合:将新洞察纳入改进的回答中。
  • 迭代完善:重复循环直到回答达到期望质量。

【语言 Agent 树搜索(LATS)】采用搜索策略探索多条行动路径,对结果进行反思,然后裁剪或保留有前景的分支。

  • 初始响应与评估:借助LLM(与外部工具)生成一个初始的响应结果。并对响应结果进行反思与评估得分。
  • 扩展优化:从初始响应生成多个候选的优化结果,并也对每个结果进行反思与评估得分。
  • 选择下一个扩展节点:将当前节点的得分反馈到父节点,更新整个路径的奖励值。来选择下一个最优路径
  • 迭代进行2-3步,直到答案最优。

3.3,MCP,A2A,AG-UI

【Function Calling】让大语言模型通过自然语言生成 API 调用参数,间接访问外部系统的数据,比如天气、股票、数据库等。

  • 函数定义阶段:定义一个函数接口,包括参数类型和说明。
  • 推理阶段:模型接收到用户问题,判断是否需要调用函数。
  • 参数生成阶段:模型输出 JSON 格式的函数参数。
  • 函数执行阶段:系统根据参数执行真实函数(调用 API)。
  • 结果整合阶段:模型根据返回结果生成自然语言回答。

【优点】

  • 上手简单,只需定义好 JSON 接口即可。
  • 与少量功能结合时,开发效率高。

【缺点】

  • 缺乏标准化:不同模型厂商接口各异,开发者需要适配多个格式。
  • 不支持链式调用:需要开发者手动管理调用流程,模型无法自动完成多步调用逻辑。

【Toolformer】根据上下文和输入的任务自动选择适当的工具,它结合了外部工具的动态调用和自监督学习,使得模型能够在没有明确硬编码的情况下灵活使用不同的工具。

  • 动态选择工具:Toolformer 会在推理时通过模型自身的判断来选择合适的工具。

  • 训练方式:Toolformer 通过自监督学习让模型学会何时以及如何调用外部工具。

【MCP】通过标准化协议让不同大模型(如 Claude、GPT、LLaMA)与不同工具统一对接,极大降低集成成本,解决【Function Calling】多模型、多工具对接时标准缺失的问题

  • MCP Host:如 IDE、Claude Desktop,用户操作入口。
  • MCP Client:维护与 MCP Server 的通信。
  • MCP Server:对外暴露功能的轻量服务,连接模型与数据源。
  • 数据源:可为本地文件、数据库,也可为在线服务。

【优点】

  • 标准化协议,解决了 Function Calling 中“一对多”的对接难题。
  • 扩展新工具、新模型成本大大降低(从 M×N 变成 M+N)。

【缺点】

  • MCP 只解决了“如何调用工具”的问题,还不支持 Agent 间协作。
  • 对开发者来说学习成本稍高,需理解协议结构。

【A2A】A2A 主要关注的是 Agent 之间如何通信与协作,是 Agent 多工协作的关键基础。

  • 互操作性: 不同框架(如 LangChain, AutoGPT, CrewAI)开发的 Agent 可以无缝对接。

  • 自治性: 协议允许 Agent 在没有人类干预的情况下,自主协商任务边界。

  • 可组合性: 复杂的任务可以通过组合多个专门的原子级 Agent 来完成。

【优点】

  • 强调 Agent 之间的 自治协作,适用于多 Agent 协同完成复杂任务。
  • 任务管理流程规范,进度可追踪。

【缺点】

  • 当前生态尚不成熟,主流厂商支持有限。
  • 对场景要求较高,适用于大型、多模块系统。
协议层 示例与用途 (Example/Purpose)
Agent ↔ 用户交互 AG-UI:一种开放的、基于事件的标准,用于将智能体连接到面向用户的应用程序,从而实现实时、多模态的交互体验。
Agent ↔ 工具与数据 MCP:由 Anthropic 发起的开放标准,允许智能体安全地连接到外部系统,包括工具、工作流和数据源。
Agent ↔ Agent A2A:由 Google 发起的开放标准,定义了智能体如何在分布式智能体系统中进行协作和任务共享。

【问题】AI Agent 彻底重构了前后端通信范式:从“短连接、确定性的单次请求-响应”,转向“长连接、不确定性的多轮会话与混合 IO”。这一转变导致传统 API 模式失效,迫使开发者必须自行解决 流式渲染、复杂事件管理、实时干预及状态同步 三大核心技术难题。

【AG-UI】专为解决前端应用与 AI Agent 的通信交互而设计,标准化了 AI Agent 与用户界面之间的连接方式。

  • Agent 后端如何向前端应用发送事件?

  • 前端应用如何接收、处理和响应这些事件?

  • 用户如何干预、控制 Agent 的执行过程?

3.4,Tools(冲突)

【问题】多工具调度模块如何解决冲突检测?

  • 资源冲突: 多个工具竞争同一个物理硬件、数据库锁或单一的文件写入权限。

  • 逻辑/语义冲突: 工具 A 和工具 B 的指令在物理逻辑上互斥(如:要求扫地机器人去阳台,同时关上阳台门)。

  • 状态冲突: 工具执行的前提条件被另一个工具破坏(如:工具 A 删除了工具 B 准备读取的数据)。

【基于有向无环图(DAG)的静态检测】在任务启动前,调度器会构建一个任务依赖图。通过拓扑排序,可以识别出逻辑上的顺序冲突。

  • 检测点:循环依赖(A 等 B,B 等 A)和冗余路径。

  • 应用:适用于确定性强的自动化工作流。

【约束满足问题建模】将所有工具的参数和环境限制建模为一个数学问题。

  • 逻辑:设定一组约束条件(Constraints)。例如:Current\_State = \{AC: Off, Window: Open\}。如果工具 A 的 Pre-condition 是 \{Window: Closed\},则检测到冲突。

  • 处理:调度器会暂停执行,或插入一个“关窗”的中间动作。

【大模型语义判别】对于模糊的、非结构化的冲突,传统的硬代码规则很难奏效。

  • 做法:引入一个“裁判智能体”(Judge Agent),专门负责审查工具序列。

  • Prompt 示例:“以下是两个即将执行的工具指令。请判断它们是否会导致物理设备损坏或用户意图违背。”

  • 优势:能识别出“让音响音量最大”和“婴儿已入睡”这种语义层面的深层冲突。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐