SECTOR 04 / KNOWLEDGE EXPEDITION

驾驭框架与智能体概念

从 LangChain 到 Agent 架构,掌握 LLM 开发框架和 AI 智能体设计思维

01

LangChain 核心:Chain 与 Prompt 模板

EXPLORE +

为什么需要框架?

直接调用 LLM API 只能做单轮问答。一个完整的 AI 应用需要:提示词管理、多步推理、工具调用、记忆管理、流式输出。框架将这些能力封装为可组合的模块。

LangChain 核心概念

LangChain 是最流行的 LLM 应用框架,核心抽象是 Chain(链)——将多个组件串联为一条处理流水线。

from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.schema import StrOutputParser

# 1. 定义 Prompt 模板(变量注入 + 角色设定)
prompt = ChatPromptTemplate.from_messages([
("system", "你是一位{role}专家,用{style}风格回答。"),
("user", "{question}")
])

# 2. 创建模型
model = ChatOpenAI(model="gpt-4o", temperature=0.3)

# 3. 构建 Chain(Prompt → LLM → 输出解析)
chain = prompt | model | StrOutputParser()

# 4. 调用
result = chain.invoke({
"role": "Python 后端",
"style": "简洁专业",
"question": "Django ORM 的 N+1 问题如何解决?"
})
print(result)

LCEL(LangChain Expression Language)

使用 | 管道符串联组件,构成声明式流水线。支持并行(RunnableParallel)、条件分支(RunnableBranch)、回退(with_fallbacks)。

实战要点

  • Prompt 模板支持 Few-shot 示例注入,通过 MessagesPlaceholder 动态添加历史对话
  • Chain 可以嵌套:复杂任务 = 多个子 Chain 的组合
  • 生产环境建议加上 RunnableConfig 进行调用追踪和超时控制
02

LlamaIndex:数据连接与 RAG 框架

EXPLORE +

LangChain vs LlamaIndex

维度LangChainLlamaIndex
定位通用 LLM 应用框架数据索引与检索框架
强项Chain 编排、Agent、工具调用文档解析、索引构建、检索增强
核心抽象Chain / Agent / ToolIndex / Node / QueryEngine
适合场景多步推理、Agent 系统RAG 问答、知识库搜索

LlamaIndex 数据流水线

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

# 1. 加载文档
documents = SimpleDirectoryReader("./docs").load_data()

# 2. 构建索引
index = VectorStoreIndex.from_documents(
documents,
chunk_size=512,
chunk_overlap=50
)

# 3. 查询
query_engine = index.as_query_engine(similarity_top_k=5)
response = query_engine.query("Transformer 的注意力机制如何工作?")
print(response)

高级检索模式

  • 递归检索:先检索文档摘要,再深入具体 chunk
  • RouterQueryEngine:根据问题类型自动路由到不同索引
  • SubQuestionQueryEngine:复杂问题自动拆解为子问题
03

AI Agent 架构:感知-决策-执行循环

EXPLORE +

什么是 AI Agent?

Agent(智能体)是一个能自主感知环境、制定计划、调用工具、执行动作的 AI 系统。不同于简单的问答模型,Agent 能自己决定「下一步该做什么」。

Agent 核心循环(ReAct 范式)

class AIAgent:
def __init__(self, llm, tools):
self.llm = llm
self.tools = tools
self.memory = []

def run(self, task):
while not self.is_finished():
thought = self.llm.think(task, self.memory, self.tools)
action = thought.get_action()
observation = self.tools[action.name](action.input)
self.memory.append({"thought": thought, "action": action, "observation": observation})
return self.final_answer()

Agent 设计关键问题

  1. 工具描述:name + description + input_schema 是 LLM 选择工具的唯一依据
  2. 规划能力:复杂任务需 Plan-and-Execute 模式——先规划再执行
  3. 错误恢复:工具调用失败时 Agent 应自我修正
  4. 安全边界:危险操作需要人类确认

Agent 类型

类型特点适用场景
ReActThought-Action-Observation 循环通用工具调用
Plan-Execute先规划再执行复杂多步任务
Multi-Agent多Agent协作分工大型项目模拟
04

工具调用(Function Calling)深度实践

EXPLORE +

Function Calling 原理

LLM 不直接执行函数,而是输出 JSON 描述「调用哪个函数、传什么参数」,由你的代码实际执行。

tools = [{
"type": "function",
"function": {
"name": "search_database",
"description": "按姓名/邮箱/ID搜索用户数据库",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"},
"field": {"type": "string", "enum": ["name","email","id"]}
},
"required": ["query"]
}
}
}]
# LLM 返回函数调用指令而非执行结果:
# {"name":"search_database", "arguments":{"query":"张三","field":"name"}}

工具设计最佳实践

  • description 是 LLM 选择工具的唯一依据,必须精确描述使用场景
  • 用 enum 限制参数值、用 format 指定 email/date 格式
  • 每个工具单一职责,组合使用而非巨型工具
  • 工具错误信息要让 LLM 能理解并自我纠正
05

多 Agent 协作与通信机制

EXPLORE +

单 Agent 的局限与多 Agent 架构

单个 Agent 面对复杂项目时:上下文超限、不同任务需不同专长、缺乏第二意见。

多 Agent 模式

# 层级式(Manager-Worker)
class MultiAgentSystem:
def __init__(self):
self.manager = Agent(role="项目经理")
self.coder = Agent(role="代码专家", tools=["write_code"])
self.reviewer = Agent(role="代码审查", tools=["review_code"])

def build_feature(self, requirement):
plan = self.manager.plan(requirement)
code = self.coder.execute(plan)
review = self.reviewer.check(code)
return code, review

# 辩论式(Debate):多Agent从不同角度分析,综合最佳方案

Agent 间通信

方式优点适用场景
自然语言消息灵活探索性任务
结构化JSON精确生产环境
共享工作空间多Agent并发协同编辑

实战建议

  • 从2-3个Agent开始
  • 每个Agent的role描述要非常具体
  • 添加人类在环节点进行关键决策
  • 记录决策日志便于调试
06

生产级框架选型与工程化落地

EXPLORE +

框架选型决策

你需要什么?
├── RAG 问答 → LlamaIndex(数据索引)或 LangChain + 向量库
├── Agent 系统 → LangChain / LangGraph(流程编排)
├── 可视化编排 → Dify / Coze(低代码平台)
├── 生产 API → FastAPI + OpenAI SDK(轻量可控)
├── 多模型调度 → LiteLLM(统一 API 代理)
└── 成本优化 → 缓存 + 模型路由 + Token 预算

原型→生产的关键差距

维度原型生产
错误处理try/except分级重试+熔断+降级
配置硬编码密钥管理服务+环境变量
可观测性print结构化日志+链路追踪+监控
成本无限制Token预算+缓存+模型降级
评测人工自动化评测+A/B测试

工程师核心能力

合格的 AI 工程师不仅用框架,更要理解框架为什么这样设计。当框架不满足需求时,能从底层 API 自行构建解决方案——这才是从使用者到工程师的跃迁。