Python之DeepAgents自动摘要触发

简介: DeepAgents是基于LangChain的智能体框架,核心特性之一为自动摘要功能:当上下文超长导致模型报错时,自动触发摘要压缩,再重试推理。需显式设置`max_input_tokens`参数启用,支持流式输出摘要日志。

DeepAgents简介

基于langchain的harness范式的智能体框架DeepAgents。一个重要特征就是自动摘要。

官网参考:https://docs.langchain.com/oss/python/deepagents/context-engineering#context-compression


自动摘要

重要参数:max_input_tokens

如果没有设置该参数,无法触发自动摘要;

长上下文时,还会因为上下文超长,导致模型报错。


参数设置

利用langchain_openai.ChatOpenAI,构建模型,来创建deepagents,是无法设置该参数的。

上代码如下:

# 基础配置
base_url = config.get("LLM").get("BASE_URL")
api_key = config.get("LLM").get("APP_KEY")
model_name = config.get("LLM").get("MODEL")

# 参数设置
custom_profile = {
    "max_input_tokens": 100_000,
    "tool_calling": True,
    "structured_output": True
}

# 模型构造
open_ai_client = init_chat_model(
    model_name,
    model_provider="openai",
    base_url=base_url,
    api_key=api_key,
    profile=custom_profile
)

# 创建DeepAgent实例
agent = create_deep_agent(
    model=open_ai_client,
    system_prompt=sys_prompt,
    middleware=[
        log_tool_calls
    ],
    tools=tools,
    permissions=permissions,
    backend=backend,
    checkpointer=mongo_db_checkpoint_saver
)

流式输出

流式输出的时候,可以打印,自动摘要相关日志。

代码如下:

for token, metadata in deep_agent.stream(
        {"messages": messages},
        stream_mode="messages",
        config=deep_agent_config
):
    if metadata.get("lc_source") == "summarization":
        print(f"------------ {token} | {metadata}")
        continue
    if isinstance(token, AIMessageChunk):
        pass
    # 工具调用
    if isinstance(token, ToolMessage):
        pass

那么触发自动摘要时,如下日志:

AI: ------------ content="Error code: 400 - {'error': {'message': 'max_tokens must be at least 1, got -3011.', 'type': 'BadRequestError', 'param': None, 'code': 400}}" additional_kwargs={} response_metadata={'finish_reason': 'error', 'model_name': 'deepseek-v32', 'model_provider': 'openai'} id='lc_run--019dd3a2-e201-77b0-b46e-76a2e161a223' tool_calls=[] invalid_tool_calls=[] tool_call_chunks=[] | {'ls_integration': 'langchain_chat_model', 'versions': {'deepagents': '0.5.3'}, 'lc_agent_name': None, 'thread_id': 'sdrowero234249jdoisjfoiet93xxxxx', 'langgraph_step': 98, 'langgraph_node': 'model', 'langgraph_triggers': ('branch:to:model',), 'langgraph_path': ('__pregel_pull', 'model'), 'langgraph_checkpoint_ns': 'model:9aa67f14-cb76-bc8c-7a9b-5565ea76f89c', 'lc_source': 'summarization', 'checkpoint_ns': 'model:9aa67f14-cb76-bc8c-7a9b-5565ea76f89c', 'ls_provider': 'openai', 'ls_model_name': 'DeepSeek-V3.2', 'ls_model_type': 'chat', 'ls_temperature': None}
------------ content='' additional_kwargs={} response_metadata={} id='lc_run--019dd3a2-e201-77b0-b46e-76a2e161a223' tool_calls=[] invalid_tool_calls=[] tool_call_chunks=[] chunk_position='last' | {'ls_integration': 'langchain_chat_model', 'versions': {'deepagents': '0.5.3'}, 'lc_agent_name': None, 'thread_id': 'sdrowero234249jdoisjfoiet93xxxxx', 'langgraph_step': 98, 'langgraph_node': 'model', 'langgraph_triggers': ('branch:to:model',), 'langgraph_path': ('__pregel_pull', 'model'), 'langgraph_checkpoint_ns': 'model:9aa67f14-cb76-bc8c-7a9b-5565ea76f89c', 'lc_source': 'summarization', 'checkpoint_ns': 'model:9aa67f14-cb76-bc8c-7a9b-5565ea76f89c', 'ls_provider': 'openai', 'ls_model_name': 'DeepSeek-V3.2', 'ls_model_type': 'chat', 'ls_temperature': None}
非常好!你已经具备了扎实的研究基础。我给你一个详细的转型和发论文策略:

可以看出:

1、自动摘要也是被动的,先用上下文调用大语言模型;

2、调用失败之后,触发自动摘要;

3、自动摘要之后,再重新调用大语言模型,生成响应。

相关文章
|
25天前
|
人工智能 机器人 中间件
LangChain 生态里的三层抽象:LangGraph、create_agent、Deep Agents
本文对比LangChain生态中三层智能体方案:`create_agent`(开箱即用、适合单轮工具调用)、Deep Agents(预装记忆/沙箱/子Agent,面向复杂长链路任务)和LangGraph(底层图编排引擎,支持分支、中断、持久化等深度定制)。推荐“从高抽象起步,遇瓶颈再下沉”。
164 6
LangChain 生态里的三层抽象:LangGraph、create_agent、Deep Agents
|
24天前
|
人工智能 Java 数据库
DeepAgents 人工介入实战|LangGraph 实现 Agent 高危工具人工审批
本文详解基于 LangChain+LangGraph+DeepAgents 实现 Python 智能体人工介入实战,配置高风险工具中断审批、状态检查点保存与恢复,支持同意 / 拒绝 / 参数编辑,对比 Spring AI Alibaba 方案,附完整可运行源码与生产落地建议。
269 0
|
1月前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
8552 18
|
1月前
|
存储 设计模式 缓存
为生产级 AI Agent 构建持久化记忆:五阶段流水线与四种设计模式
LLM Agent需持久化记忆以支撑连续对话、用户画像、知识沉淀与崩溃恢复。但满上下文方案成本高、延迟大、易出错。本文提出五阶段流水线(抽取→整合→存储→检索→遗忘)与四种记忆类型(工作/情景/语义/过程记忆),结合结构化状态+向量搜索等设计模式,实现高效、可控、可审计的生产级记忆系统。
555 9
为生产级 AI Agent 构建持久化记忆:五阶段流水线与四种设计模式
|
25天前
|
负载均衡 安全 网络协议
遭遇DDoS攻击后如何快速分析攻击源?用IP查询+离线库定位异常IP
凌晨3点,服务器遭UDP Flood攻击,流量从500Mbps飙升至80Gbps,持续47分钟。本文详解DDoS应急中IP查询三步法:提取攻击源IP→离线库批量分析归属地/ASN→精准生成地域/网段级封禁策略,助力黄金分钟内快速响应。(239字)
189 1
|
29天前
|
前端开发 定位技术 开发者
前端组件库——NativeBase知识点大全(三)
教程来源 http://lemci.cn NativeBase v3提供开箱即用的响应式断点系统(base/sm/md/lg/xl),支持数组/对象语法快速适配多端;结合`useBreakpointValue`、按需导入与动态加载,兼顾开发效率与性能优化。
|
25天前
|
人工智能 编解码 API
AI视频生成低至0.9元/秒!阿里云HappyHorse开启灰度测试,150亿参数AI视频模型
阿里云HappyHorse(快乐小马)是阿里巴巴ATH创新事业部研发的150亿参数原生多模态AI视频大模型,全球首个实现音画联合生成的单流架构模型,4月登顶Artificial Analysis双榜。支持文/图生视频、1080P输出、7语种口型同步,最低0.44元/秒,已通过百炼平台、官网及千问App开放灰度测试。

热门文章

最新文章