langchian_agent的高级使用

设置agent名称

python 复制代码
agent = create_agent(
    model=model,
    name = "chat_assistant"
)
作用 说明
流式输出归因 流式输出时,可判断当前 token/事件来自哪个 Agent。
消息身份标记 生成的 AIMessage 会带上 name,便于会话记录、审计和回放。
调试与 trace 可读性 日志和链路追踪中能快速识别当前执行的是哪个 Agent。
组件化封装 Agent 作为可复用模块时,name 能保持统一身份,方便注册、监控和迁移。
前端展示 可视化界面可直接用 name 展示"当前活跃 Agent""本轮输出来源"。
稳定运行时 ID 相比临时展示名,name 更适合用于日志检索、监控统计和跨模块协作。

系统提示词

使用 create_agent 创建 Agent 时,需传入模型和工具、可选地传入系统提示词。提示词为Agent 提供了任务背景、行为准则和操作指南。

系统指令,即SystemMessage,通过 system_prompt 设置,定义 Agent 行为。这个参数可以是str或者SystemMessage类型。

使用建议:

  • 明确说明 Agent 的角色

  • 定义输出格式

  • 说明何时使用工具

agent的结构化输出

python 复制代码
# 2.Pydantic结构化方式定义
class ContactInfo(BaseModel):
    """用户的联系方式"""
    name: str = Field(description="用户姓名")
    email: str = Field(description="用户邮箱地址")
    phone: str = Field(description="用户的手机号")
​
# 3.agent初始化
agent = create_agent(
    model=model,
    response_format=ProviderStrategy(ContactInfo)
)

agent的流式输出

invoke() 是"一次性等完整结果",用户要等很久才能看到输出。流式输出用 agent.stream() 替代 invoke(),让 Agent 在执行过程中渐进式地把中间结果吐出来,实现"打字机效果"或"步骤可视化",大幅降低等待焦虑。

python 复制代码
# 非流式(一次性返回)
result = agent.invoke({"messages": [...]})
​
# 流式(逐步返回)
for chunk in agent.stream({"messages": [...]}, stream_mode="updates"):
    print(chunk)

关键在于 stream_mode 参数,指定"流出来的是什么"。

7 种输出模式

模式 输出内容 适用场景
updates(默认) 每步增量变化的部分 观察 Agent 思考/调工具/拿结果的执行进度
values 每步执行后的完整状态 需要每步都拿到全量状态、做状态持久化
messages 流式返回的 token + 元数据 聊天机器人"打字机效果",最佳交互体验
tasks 任务开始/结束时间 + 结果/错误 监控任务生命周期
debug 比 tasks 更详细(含步骤、时间戳、类型) 调试、链路追踪
checkpoints 每次检查点创建时输出状态 状态持久化、工作流恢复、分布式跟踪
custom 开发者用 get_stream_writer() 自定义输出 业务进度(如"已处理 10/100 条")、自定义日志

模式也可以组合

python 复制代码
for stream_mode, chunk in agent.stream(
    {"messages": [...]},
    stream_mode=["tasks", "updates"]  # 同时监听两种
):
    print(f"模式: {stream_mode}, 数据: {chunk}")
相关推荐
fbincon2 小时前
Claude Code 自定义状态栏工具:安装、配置与 Subagent 状态展示
python·typescript·claude·claude-code·statusline
yunfengzhineng2 小时前
天津立体库货架配套厂家
大数据·运维·人工智能·python
m0_674571973 小时前
力扣 hot 100 python
python·算法·leetcode
小白快快跑哦3 小时前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
Want5953 小时前
Python炫酷烟花①
开发语言·python
青少儿编程课堂4 小时前
蓝桥杯+全国青少年信息素养大赛+电子学会PythonC/C++考级:最长公共子序列LCS解析
c++·python·算法·bfs·信息学竞赛
Y3815326624 小时前
印度电商数据采集教程:用 SerpBase 查 Flipkart/Myntra/Ajio 商品(附代码)
数据库·python
阿维的博客日记4 小时前
大白话解析快排Python
python
doujiaozh4 小时前
我在 DOS 6.22 上跑通了 Kimi AI:一场跨越 40 年的硬核接力
python