当前位置: 首页 > news >正文

深度智能体的中间件

     1.概述

        与langchian  agent一样,深度智能体也使用中间件,不过二者是有区别的,langchain agent的中间件是通过在模型调用、工具调用时插入实现对智能体运行的细粒度控制,而深度智能体的中间件则抽象层次更高,主要支持规划、持久化和创建子智能体。深度智能体支持模块化的中间件架构,当深度智能体被创建时自带以上所说的三种中间件,待办列表中间件(TodoListMiddleware),文件系统中间件( FilesystemMiddleware)和子智能体中间件(SubAgentMiddleware),同时这些中间件是可编排的,可以根据需要配置中间件。

      2.代办列表中间件

        规划是解决处理复杂多步任务所必须的,智能体会对复杂的任务进行分析,生成待办事项列表,并且在执行过程中对待办列表进行更新。使用TodoListMiddleware中间件,智能体会按照指示使用write_todos工具来跟踪“正在做什么,还需要做什么”。

        创建深度智能体时,缺省挂载了该中间件,如果想对待办列表中间件进行定制,比如修改改中间件的系统提示词,则必须使用create_agent,示例代码如下:

from langchain.agents import create_agent
from langchain.agents.middleware import TodoListMiddleware

agent = create_agent(
model=llm,
# Custom planning instructions can be added via middleware
middleware=[
TodoListMiddleware(#根据自己的需要修改提示词
system_prompt="Use the write_todos tool to..."  
),
],
)

      3.文件系统中间件

        上下文工程是构建有效代理的主要挑战。当工具调用结果很长时,上下文将快速膨胀,超出大模型可处理的范围,或者形成过多的噪声。使用文件系统中间件,可以把工具调用中间结果保存的长短期记忆中,仅返回经过汇总的结果。

        FilesystemMiddleware中间件提供了四个工具:ls、read_file、write_file和edit_file。中间件可以配置使用的持久化后端,缺省是基于state的后端,一般在开发和测试时使用,在生产系统则必须采用混合持久化后端。

        创建深度智能体时,缺省挂载了基于状态的持久化后端,如果要定制持久化后端,则必须使用create_agent,如下代码使用定制系统提示词的基于状态的持久化后端:

from langchain.agents import create_agent
from deepagents.middleware.filesystem import FilesystemMiddleware


agent = create_agent(
model=llm
middleware=[
FilesystemMiddleware(
backend=None,  #使用基于状态的持久化后端
system_prompt="Write to the filesystem when...",  # 可根据需要修改
custom_tool_descriptions={
"ls": "Use the ls tool when...",
"read_file": "Use the read_file tool to..."
}  
),
],
)

        如下代码通过中间指定使用混合持久化架构:

from deepagents.backends import CompositeBackend, StateBackend, FilesystemBackend
from langchain.agents import create_agent
from deepagents.middleware.filesystem import FilesystemMiddleware
composite_backend = lambda rt: CompositeBackend(
default=StateBackend(rt),
routes={
"/memories/": FilesystemBackend(root_dir="./myagent", virtual_mode=True),
},
)
agent = create_agent(
model=llm,
middleware=[
FilesystemMiddleware(
backend=composite_backend,
custom_tool_descriptions={
"ls": "Use the ls tool when...",
"read_file": "Use the read_file tool to..."
}  
),
],
)

      4.子智能体中间件

        深度智能体在创建时缺省挂载了该中间件,可以对子智能体中间件进行定制,此时需要使用create_agent创建智能体,如下代码对子智能体进行定制:

import os
from tavily import TavilyClient
from typing import Literal
os.environ["TAVILY_API_KEY"] = "tvly-*"
tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])
from langchain.tools import tool
@tool
def internet_search(
query: str,
max_results: int = 5,
topic: Literal["general", "news", "finance"] = "general",
include_raw_content: bool = False,
):
"""Run a web search"""
return tavily_client.search(
query,
max_results=max_results,
include_raw_content=include_raw_content,
topic=topic,
)

from langchain_core.tools import tool
from langchain.agents import create_agent
from deepagents.middleware.subagents import SubAgentMiddleware


agent = create_agent(
model=llm,
middleware=[
SubAgentMiddleware(
default_model=llm,
default_tools=[],
subagents=[
{
"name": "research-agent",
"description": "Used to research more in depth questions",
"system_prompt": "你是一位史学研究专家。你的工作是进行对历史问题进行透彻的研究,然后写一份专业的报告。您可以借助搜索工具从互联网收集信息作为你的研究素材.",
"tools": [internet_search],
"middleware":[],
}
],
)
],
)

http://www.dtcms.com/a/609263.html

相关文章:

  • 中文分词全切分算法
  • 11月10日ES本机
  • 网络营销的基本职能医院seo是什么
  • PLB-TV 影视!无广告 + 4K 高清
  • 网站背景自动变色做简历比较好的网站
  • 播放PCM音频增益低+单独增强PCM解码的方案
  • C++篇(16)C++11(下)
  • 全新ZipArchives插件:可在ONLYOFFICE协作空间中解压ZIP文件
  • 【PRML】支持向量机
  • 龙岩网站建设哪里比较好长春网站排名优化公司
  • 服务器建设网站软件下载南京站建设
  • 重组融合蛋白技术概述
  • Java_自定义泛型类/接口/方法
  • EG2106 高端电压600V 半桥MOS管栅极驱动芯片技术解析
  • 上位机开发之JSON文件编辑器(动态UI)
  • Git 本地操作入门:版本控制基础、跨平台部署与仓库核心流程
  • Docker 缓存优化:通过 cpolar 内网穿透服务远程管理 Redis
  • 微算法科技(NASDAQ MLGO)在委托权益证明DPoS主链上引入PoW轻节点验证,提升抗量子攻击能力
  • 前缀和与差分数组
  • 微官网和移动网站区别网站设计行业前景
  • dw网站的站点建设阿里巴巴网站图片怎么做
  • 智慧判官-分布式编程评测平台
  • 基于 HT 技术的汽车制造车间数字孪生可视化系统
  • TOMCAT Docker 容器化部署指南
  • 自己做网站去哪买服务器天猫网站设计
  • React Native 自定义 ScrollView 滚动条:开箱即用的 IndicatorScrollView(附源码示例)
  • Java Web核心数据交互技术全解析
  • UML建模工具Enterprise Architect在DevOps中如何实现架构模型同步
  • 数据库-MYSQL作业五
  • 磁共振成像原理(理论)36:回波平面成像 (Echo-Planar Imaging)