Skip to main content

常见问题

Agent系列​

什么是大模型 Agent?它与传统的AI系统有什么不同?​

大模型 Agent(通常指基于大语言模型 LLM 的智能体),是指利用预训练的通用大模型(如GPT-4、Claude、Gemini等)为核心,结合外部工具、记忆、规划等机制,实现能够感知、思考、决策和行动的智能体。

它与传统 AI 系统的不同主要体现在:

  • 泛化能力更强:LLM Agent 可以从自然语言指令中泛化到多种任务,而传统 AI 系统通常是针对单一任务定制。
  • 交互能力更自然:它通过自然语言驱动,用户只需用人类语言描述需求,而传统 AI 往往依赖固定接口。
  • 可插拔工具链:可以动态调用外部API、检索数据库、执行代码,具备更强的可扩展性。
  • 自主性:具备规划与推理能力,能自主分解任务、决定行动步骤。

LLM Agent 的基本架构有哪些组成部分?​

一个典型的 LLM Agent 架构通常包括:

核心 LLM(Language Model):用于理解上下文、生成文本、推理。

工具/插件(Tools / Plugins):如检索、计算器、数据库查询、图像生成器等。

记忆(Memory):用于存储短期对话上下文或长期知识。

规划模块(Planner):生成多步计划、链式推理。

执行器(Executor):根据计划调用外部工具或执行 API。

观察与反馈(Observation & Feedback):监控执行结果并进行下一步决策。

LLM Agent如何进行决策?能否使用具体的方法解释?​

Chain-of-Thought(CoT)推理:在回答前让模型输出推理链条。

ReAct 框架(Reason + Act):模型在对话中先“思考(Thought)”,再“行动(Action)”,然后观察(Observation),形成循环。

Planner-Executor:先生成一个多步计划,再逐步执行并校验。 例如:

User: 帮我查今天深圳天气,并根据天气推荐是否适合户外跑步。
Agent:
Thought: 需要先获取天气,再根据天气情况建议。
Action: Call_Weather_API("shenzhen")
Observation: 30°C, Sunny
Thought: 天气晴朗温度适中,适合户外跑步。
Response: 今天天气晴朗(30°C),很适合户外跑步。

如何让 LLM Agent 具备长期记忆能力?​

主要有几种做法:

向量数据库(Embedding-based Memory):将重要的对话片段或知识向量化存入数据库,后续通过相似度检索调回。

长期笔记(Persistent Storage):以文本形式存储Agent的“知识库”或用户档案。

系统提示注入(System Prompt Augmentation):在每次调用模型时动态插入过去的重要记忆。

Memory Manager:定期压缩或总结历史,防止上下文过长导致窗口溢出。

LLM Agent 如何进行动态API调用?​

通常使用函数调用(Function Calling)或工具调用(Tool)。 以 OpenAI Function Calling 为例:

用户请求 -> 模型根据上下文决定调用哪个函数,并填充参数 -> 由外部系统执行API -> 将结果反馈给模型。 例如:

{
"function": "get_weather",
"arguments": {"location": "Singapore"}
}

执行后再由模型基于结果继续推理生成自然语言回答。

LLM Agent 在多模态任务中如何执行推理?​

多模态 LLM(如 GPT-4V)可以直接处理文本 + 图像输入。

Agent 会先对图片做视觉描述(VQA),再在文本域里继续推理。

说说你写prompt的心得?​

  1. 明确角色:指定AI的角色(如“资深工程师”“专业编辑”),确保回答符合专业方向。
  2. 清晰任务:直接说明要完成的具体任务,避免模糊描述。
  3. 提供上下文:补充必要的背景信息、数据或范例,减少AI的猜测空间。
  4. 设定约束:规定输出格式、风格、字数、禁止项等,限制AI的自由发挥。
  5. 迭代优化:根据初步结果调整提示词,逐步接近理想输出。

LLM Agent 主要有哪些局限性?​

  • 幻觉问题(Hallucination):仍可能生成不真实的事实。
  • 长链推理易错误:多步骤计划容易在中途出现偏差。
  • 效率问题:调用外部工具多次时响应速度慢。
  • 长期一致性差:长期记忆容易丢失或冲突。
  • 安全与可控性:自主执行 API 存在误操作或安全风险。

如何衡量 LLM Agent 的性能?​

可以从以下几个维度:

  • 任务成功率(Task Success Rate):如 API 是否正确调用,问题是否解答。
  • 推理准确率(Reasoning Accuracy):多步推理是否正确。
  • 响应一致性:对相同问题在不同时间回答是否一致。
  • 用户体验指标:满意度调查、交互轮次。
  • 延迟和效率:平均响应时间。

如何优化LLM Agent的性能?​

提示工程 (Prompt Engineering): 设计清晰、具体的提示,减少歧义。例如,使用结构化提示(如JSON格式)明确工具调用逻辑。 采用CoT(Chain of Thought)或ReAct提示,引导LLM逐步推理。

模型选择与微调: 选择适合任务的 LLM(如GPT-4o适合复杂推理,Llama3.1适合开源部署)。 对特定领域数据进行微调(如医疗、金融),提升准确性。

数据检索优化: 使用 LlamaIndex 或 FAISS 构建高效向量索引,加速数据检索。 实施查询转换(Query Transformation)或后处理(如LlamaIndex的Node Postprocessing),提高检索相关性。 精简工具集,减少 LLM 选择负担。 使用结构化工具调用(如OpenAI Function Calling),提高调用效率。

上下文管理: 优化内存使用,限制上下文窗口大小,避免过长输入导致性能下降。 使用总结性内存(Summary Memory)压缩历史对话。

并行与异步处理: 使用LangChain的Async API或LlamaIndex的分布式架构,处理高并发任务。

缓存与批处理: 缓存频繁查询结果,减少重复LLM调用。 批处理相似任务,降低计算成本。

监控与评估: 使用LangSmith或LlamaIndex的评估工具,监控Agent性能(如准确性、延迟)。 定期测试并优化工作流,基于用户反馈调整模型或工具。

硬件加速: 部署在 GPU 或 TPU 上,优化推理速度。 使用云服务(如 AWS、Modal)支持动态扩展。

什么是ReAct?

Reasoning+Acting工作原理:ReAct让LLM在生成回答前,通过一步步推理分解任务,决定是否需要调用外部工具(如 API、数据库)或采取具体行动,然后根据结果更新推理,直至任务完成。

未来 LLM Agent 可能有哪些技术突破?​

  • 更强的多模态推理:同时处理文本、图像、视频、音频。
  • Agent 间协作(Multi-Agent System):多个Agent分工协作解决更复杂任务。
  • 主动学习与自我纠错:自动发现错误并改进。
  • 更稳健的长期记忆与人格建模:持久保持用户偏好。
  • 端到端推理 + 动态规划增强:减少对外部硬编码流程的依赖。

Agent为什么这么火,讨论未来发展形态,是LLM Agent还是Agent作为垂类工具?​

Agent的火热源于LLM技术进步、自动化需求激增及生态繁荣。未来,LLM Agent将朝着更自主、多模态的方向发展,而垂类Agent将在特定领域提供高效解决方案。

两者并非对立,而是互补,混合模式可能是主流趋势。这种发展将进一步推动Agent在企业服务、个人助手等领域的广泛应用。

Agentic AI和普通Agent有什么区别?​

Agentic AI指的是具有自主性或代理能力的人工智能,意思是它能够独立做出决策、采取行动并完成任务,而不仅仅是被动地执行指令。相比普通agent(通常是指需要明确指令并依赖人类干预的简单代理),Agentic AI更具主动性、适应性和自我学习能力,能够在复杂环境中根据目标自行调整行为。

区别主要在于:

  • 自主性:普通agent依赖预设规则或人类指令,Agentic AI能根据环境动态决策。
  • 学习能力:Agentic AI通常能通过经验或数据改进表现,普通agent往往缺乏这种能力。
  • 复杂性:Agentic AI适用于更复杂的任务,如多步骤规划或长期目标优化,而普通agent多用于简单、单一任务。

简单例子:
普通 agent:一个智能音箱的语音助手(如早期的 Siri)。你说“播放音乐”,它会根据预设命令从某个播放列表中选择并播放,但如果网络断开或没有明确指令,它就无法自行调整或解决问题。
Agentic AI:一个智能天气助手。它预测下雨并主动提醒你带伞,还根据你的日程建议穿衣建议。

langchain系列​

LangChain的核心组件有哪些?​

LangChain 是一个模块化的开源框架,用于构建 LLM 驱动的应用,其核心组件包括:

  • 模型接口:管理 LLM 的输入输出,包括提示管理(Prompt Templates)、模型调用及输出解析。
  • 数据连接:支持外部数据集成,包括文档加载器(Document Loaders)、向量存储(Vector Stores,如 FAISS)和嵌入模型(如 text-embedding)。
  • 链 (Chains):将 LLM 调用、工具和数据连接成工作流,支持顺序执行或复杂逻辑,如 LCEL,LangChain Expression Language
    LCEL的核心语法是使用管道操作符|将不同的组件连接起来,形成数据处理流

例如,将一个提示(Prompt)组件与一个大语言模型(LLM)组件连接起来,可以这样写:

from langchain.prompts import PromptTemplate
from langchain.chat_models import ChatOpenAI

prompt = PromptTemplate(template="请根据以下描述生成一个故事:{description}", input_variables=["description"])
llm = ChatOpenAI(temperature=0.7, model_name="gpt-3.5-turbo")

chain = prompt | llm
result = chain.invoke({"description": "一个勇敢的冒险者进入神秘森林"})
print(result)
  • 代理 (Agents):支持 LLM 自主决策,结合工具(如 API、数据库)执行任务。
  • 内存 (Memory):管理对话历史,提供上下文支持,如短期记忆(Conversation Buffer)或长期记忆(Vector Store Memory)。
  • 工具:外部功能接口,如搜索 API、计算器等,增强 Agent 能力。
  • 回调与监控:通过 LangSmith 提供日志记录、性能监控和调试支持。
  • 部署:将链或代理转为 API,便于生产环境部署。

LlamaIndex 如何与 LangChain 结合?​

LlamaIndex 和 LangChain 是互补的框架,可以无缝结合以增强LLM应用,特别是在RAG场景中。结合方式包括:

LlamaIndex 作为 LangChain 的工具:

LlamaIndex的查询引擎(Query Engine)或索引(如 Vector Store Index)可封装为 LangChain 的 Tool,供 LangChain Agent 调用。例如,LlamaIndex 的 Vector Store 可用于高效检索企业数据,LangChain Agent 则负责多步骤推理。

数据加载与索引: LlamaIndex的数据连接器(LlamaHub)支持 160+ 数据源(如 PDF、SQL、API),可为LangChain提供结构化数据输入,增强其外部数据处理能力。

工作流整合: LlamaIndex专注于高效的数据索引和检索,LangChain 擅长工作流编排和 Agent 交互。开发者可使用LlamaIndex构建知识库索引,再通过 LangChain 的链或 Agent 实现多轮对话或复杂任务。

示例场景: 在企业知识管理中,LlamaIndex 索引内部文档,LangChain Agent基于检索结果回答用户问题或调用API执行任务。

优势:LlamaIndex 提供高效检索,LangChain 提供灵活编排,二者结合可构建高性能、上下文感知的LLM应用。

langchain langgraph langsmith分别用来干嘛的?​

LangChain​

用途:LangChain 是一个开源框架,用于快速构建和实验基于 LLM 的应用程序,特别适合需要与外部数据、工具或上下文交互的场景。 功能:

  • 提供标准化的接口,连接 LLM、外部数据源(如向量数据库)、工具(如 API 调用)和记忆机制。
  • 支持快速搭建复杂工作流,如聊天机器人、文档问答(RAG)、数据提取等。
  • 强调模块化组件(如提示模板、链式任务),便于快速原型开发和模型切换。

适用场景:需要快速集成 LLM 与外部资源(如数据库、API)或进行实验性开发的场景。例如,构建一个结合知识库的问答系统。

LangGraph​

用途:LangGraph 是一个低级别的 Agent 编排框架,专注于构建复杂、状态化的 Agent 工作流,特别适合需要多步骤推理、循环逻辑或长期记忆的场景。

功能:

  • 提供基于图的工作流编排,支持节点(任务步骤)和状态管理。
  • 支持持久化记忆、人类参与(human-in-the-loop)和流式处理。
  • 比LangChain的Agent模块更可控,适合需要精细控制的任务。

适用场景:构建需要复杂逻辑的 Agent,如多Agent协作、状态跟踪或循环任务。例如,一个自动化客服 Agent 需要在多轮对话中记住上下文并调用工具。

LangSmith​

用途:LangSmith 是一个用于调试、测试、评估和监控 LLM 应用的平台,专注于生产环境中的性能优化和可观测性。

功能:

  • 提供详细的追踪功能,记录 Agent 或 LLM 每一步的输入输出,分析延迟、成本和错误。
  • 支持 LLM-as-Judge 自动评估和人工反馈收集。 提供 Playground 界面,用于测试提示和模型表现。
  • 与 LangChain 和 LangGraph 无缝集成,但也可独立使用。

适用场景:需要监控和优化生产级 LLM 应用的场景,如调试 Agent 行为、评估响应质量或跟踪成本。

总结​

LangChain:适合快速构建和实验 LLM 应用,强调灵活性和集成。

LangGraph:适合需要复杂逻辑和状态管理的 Agent 开发,强调控制和可靠性。

LangSmith:适合生产环境中的调试、评估和监控,确保应用高效稳定。