惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
G
Google Developers Blog
D
Docker
The GitHub Blog
The GitHub Blog
H
Help Net Security
WordPress大学
WordPress大学
博客园_首页
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
罗磊的独立博客
I
InfoQ
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
Jina AI
Jina AI
J
Java Code Geeks
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News

博客园 - 哥本哈士奇(aspnetx)

dbt+SQLServer构建数据仓库(13):运维 FAQ 篇 dbt+SQLServer构建数据仓库(12):进阶 FAQ 篇 dbt+SQLServer构建数据仓库(11):FAQ 篇 dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例 dbt+SQLServer构建数据仓库(9):用Vibe Coding创建一个DBT UI dbt+SQLServer构建数据仓库(8):Vibe Coding用dbt构建data vault数仓 dbt+SQLServer构建数据仓库(7):进阶扩展 dbt+SQLServer构建数据仓库(6):Jinja与DAG实战 dbt+SQLServer构建数据仓库(5):数据测试 dbt+SQLServer构建数据仓库(4):分层建模实战 dbt+SQLServer构建数据仓库(3):dbt_project.yml配置精讲 dbt+SQLServer构建数据仓库(2):与传统方案对比及迁移决策 dbt+SQLServer构建数据仓库(1):认识dbt与项目工作流程 SQL Server 索引知识汇总 医疗器械行业 Salesforce Territory 完整落地实例 Raw Data Vault vs Business Data Vault Neo4j 多跳查询实战:从社交网络场景理解图遍历 Git 本地版本管理学习笔记 看完《低智商犯罪》,学习Cypher构建知识图谱 LangChain DeepAgents 学习笔记 Neo4j笔记(五):查询的处理流程 微软 SQL Server 版本演进史:从诞生到 SQL Server 2025 提升 Text2SQL 准确率 SQLServer Management Studio(SSMS) 22 Copilot 最佳实践学习笔记 SQLServer RAG笔记4:从服务层到前端交互 SQLServer RAG笔记5:为SQLServer 2025配置Ollama SQL Server RAG 笔记3:SQLServer2025 向量数据库 详解传统RAG、Text2SQL、Graph RAG:适用场景与问题示例汇总 SQL Server RAG 笔记2:图数据库服务层与前端可视化构建 SQL Server RAG 笔记1:图数据库构建
LangChain Deepagent 版本0.6.1中间件一个bug
哥本哈士奇(aspnetx) · 2026-05-19 · via 博客园 - 哥本哈士奇(aspnetx)

LangChain Deepagent 版本0.6.1中间件一个bug

本文撰写时间是2026年5月18日,目前langchain deepagent的版本为0.6.1。

所以使用pip直接install deepagents的默认版本,大概率会遇到我所说的问题。

具体的问题表象是:如果代码中使用了SummarizationMiddleware的middleware,那么代码会报如下错误:

AssertionError: Please remove duplicate middleware instances.

目前不清楚这个问题是从哪个版本开始的。所以我把版本回退到了2026年4月1日的版本,因为我看视频教程,教程是在4月8日发布的,所以查看了下github的release记录,4月1日的版本是0.5.1,回退到这个版本,问题解决。

以下代码演示如何卸载当前版本然后安装指定版本的deepagents。

# 查看所有包的版本,确认deepagents的版本
pip list

# 删除包
pip unstall deepagents

# 安装指定版本的包
pip install deepagents==0.5.1

以下是我测试的完整代码

from datetime import datetime
from dotenv import load_dotenv
import os
from langgraph.checkpoint.memory import InMemorySaver
from langchain.agents.middleware import SummarizationMiddleware
from deepagents import create_deep_agent

load_dotenv()

os.environ["OPENAI_API_KEY"] = os.getenv("DEEPSEEK_API_KEY", "")
os.environ["OPENAI_API_BASE"] = os.getenv("DEEPSEEK_API_BASE", "https://api.deepseek.com/v1")

def get_time():
    """Get current time"""
    return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

def get_location():
    """Get location"""
    return "北京"

checkpointer1 = InMemorySaver()

agent = create_deep_agent(
    model="deepseek:deepseek-chat",
    system_prompt="你是于谦,捧话之王,说话简洁明了直奔主题。",
    tools=[get_time, get_location],
    checkpointer=checkpointer1,
    middleware=[
        SummarizationMiddleware(
        model="deepseek:deepseek-chat",
        trigger=("tokens",100),
        keep=("messages",5)
    )],
)

config = {"configurable":{"thread_id":"1"}}

index=1

while(True):
    print(f"### 第{index}轮对话 ###")
    query = input("请输入: ")
    if query == "exit":
        print("退出")
        break
    results=agent.invoke(
        {"messages": [{"role": "user", "content": query}]},
        config=config
    )

    for message in results["messages"]:
        message.pretty_print()

    index+=1