LangChain 实战:Agnets核心组件

一、理解 Agent

1.1 AI的终极形态

通用人工智能(AGI)将是 AI的终极形态 ,几乎已成为业界共识。

同样,构建智能体(Agent)则是AI 工程应用 当下的"终极形态" ,即Agent是大模型应用开发的核心.

1.2 面向Harness构建Agent

Agent 是一种在循环中调用工具的模型,直到给定任务完成。

Agent = Model + Harness

Harness 就是围绕这个循环的一切:提示词、工具,以及任何塑造模型行为的中间件。

二、Agent 核心组件

2.1 Model

向Agent提供工具,可传递任何 Python 可调用函数、LangChain 工具或工具字典。

Python 复制代码
from langchain.agents import create_agent

agent = create_agent(model = model,tools = None)

response=agent.invoke({"messages":[{"role":"user", "content":"你说我帅吗?"}]})

2.2 Tools

为agent提供工具,可传递任何 Python 可调用函数、LangChain 工具或工具字典

Python 复制代码
from langchain_core.tools import tool


@tool
def search(query: str) -> str:
    """Search for information."""
    return f"Results for: {query}"


agent = create_agent(model=model, tools=[search])

2.3 System prompt

控制 agent 处理任务的方式。

系统提示参数可接受字符串或 SystemMessage。

For dynamic prompts at runtime,可以使用 MiddleWare。

Python 复制代码
create_agent(
    model=model,
    tools=None,
    system_prompt="You are a helpful assistant. Be concise and accurate.",
)

2.4 Structured output

使用 response_format= 从agent返回验证后的模式

C++ 复制代码
class Answer(BaseModel):
    summary:str = Field(default = "",description = "总结")
    confidence:float= Field(default= 0.0)


agent = create_agent(model=model, response_format=Answer)
result = agent.invoke({"messages": [{"role": "user", "content": "Summarize AI trends"}]})
rprint(result["structured_response"])  

2.5 Agent state

每个agent都通过 AgentState 来管理其执行上下文,AgentState 是一个类型化的字典,用于存储当前的对话历史以及工具和中间件所需的任何自定义字段。

Python 复制代码
class MyState(AgentState):
    user_id: str
    call_count: int


agent = create_agent(
    model="openai:gpt-5.5",
    tools=[],
    state_schema=MyState,
)

后面专题再讲

三、Agent基本用法

3.1 执行图

Python 复制代码
from IPython.display import Image, display
display(Image(agent.get_graph().draw_mermaid_png()))

3.2 给Agent 起一个昵称

可选择为agent 指定一个名称。

这在多 agent、嵌套agent、子父agent尤为有用。

Python 复制代码
agent = create_agent(model="openai:gpt-5.5", tools=tools, name="research_assistant")

3.3 设置失败重试次数

生产环境中的agent会遇到开发阶段很少出现的问题:速率限制、模型超时、临时API错误。

Fault tolerance middleware 在基础设施层面处理这些问题,因此工具和业务逻辑无需在每次调用时都使用try/catch。

Python 复制代码
from langchain.agents.middleware import ModelRetryMiddleware, ToolRetryMiddleware

agent = create_agent(
    model="openai:gpt-5.5",
    tools=[search],
    middleware=[
        # 模型重试次数
        ModelRetryMiddleware(max_retries=3),
        # 工具重试次数
        ToolRetryMiddleware(max_retries=2),
    ],
)

四、总结

经过前三章的拆解,现在我们可以把 Agent 的全貌收拢成一句话:

Agent = Model + Harness。

模型负责"思考与决策",Harness 负责"围绕决策循环的一切"------提示词、工具、中间件、状态管理。

这正是第一章提到的"面向 Harness 构建 Agent"------Agent 是一种在循环中调用工具的模型,直到任务完成。


4.1 六大核心组件,各司其职

把第二章的内容压缩成一张"职责表",方便你日后按层排查问题:

组件 参数 职责 不填会怎样
Model model 推理引擎,决定调哪个工具、传什么参 Agent 退化成纯聊天
Tools tools 赋予 Agent "手脚",执行具体动作 Agent 只能凭记忆回答
System Prompt system_prompt 定义角色、边界、输出风格 模型用默认行为,不可控
Structured Output response_format 强制最终输出符合 Pydantic schema 返回非结构化文本,代码难消费
Agent State state_schema 扩展 AgentState,携带 user_id、call_count 等自定义字段 只能存消息列表
Middleware middleware 在循环的各阶段插入重试、日志、权限、HITL 等 生产容错、可观测性为零

💡 这六个参数,就是 Harness 的全部"旋钮"

调得动 Harness,才调得动 Agent 的行为。


📌 下一步专题预告

  • Agent State 与自定义字段的深度玩法(user_id、session、跨中间件共享状态)
  • Middleware 生命周期全钩子 :before_model / after_model / wrap_tool_call 实战
  • Checkpointer 与 Store:短期记忆与长期记忆的存储后端选型
  • 多 Agent 协作:父子 Agent、人工介入(HITL)、子 Agent 派生的编排模式
相关推荐
听风吹等浪起31 分钟前
第30章:MobileNetV3全家桶实现MRI脑肿瘤四分类(含Streamlit网页推理+Mermaid结构图)
人工智能·分类·数据挖掘
如若1231 小时前
TRACER 论文解读与复现:面向 ICU 长时程患者监测的多模态 Harness 架构、时序证据建模与工具增强推理
人工智能·深度学习·计算机视觉
深蓝AI3 小时前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落245 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区7 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发8 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
飞猫的边缘AI8 小时前
英特尔量子生意
人工智能·量子计算·边缘ai
深蓝AI8 小时前
桌面 Agent 缺的不是视觉:Vercel 开源 agent-desktop,用无障碍树 ref 替代截图坐标
人工智能·程序员
镜子AI9 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
向哆哆9 小时前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪