langgraph-cua 是什么

langgraph-cua 是什么

langgraph-cua 是一个基于 LangGraph 的 Python 库,用于构建计算机使用代理(CUA,Computer Use Agent)系统。CUA 是一种能够与计算机交互并执行任务的智能代理,例如浏览网页、搜索信息、填写表单等。

🔧 核心功能

  • 浏览器交互:CUA 可以模拟浏览器行为,执行网页浏览、点击、输入等操作。
  • 任务执行:能够自动化执行如搜索、数据收集、信息填充等任务。
  • 状态管理:支持短期和长期记忆,能够在多轮交互中保持上下文。
  • 人机协作:支持人类在回路中的交互,增强任务执行的灵活性。

⚙️ 快速入门

  1. 安装依赖

    pip install langgraph-cua
    
  2. 配置 API 密钥

    export OPENAI_API_KEY=<your_openai_api_key>
    export SCRAPYBARA_API_KEY=<your_scrapybara_api_key>
    
  3. 创建并运行代理

    from langgraph_cua import create_cua
    from dotenv import load_dotenv
    import asyncio
    
    load_dotenv()
    
    cua_graph = create_cua()
    
    messages = [
        {"role": "system", "content": "You're an advanced AI assistant with browser access."},
        {"role": "user", "content": "Find the best price for all-season tires for a 2019 Subaru Forester."}
    ]
    
    async def main():
        stream = cua_graph.astream({"messages": messages}, stream_mode="updates")
        async for update in stream:
            if "create_vm_instance" in update:
                print("VM instance created")
                stream_url = update.get("create_vm_instance", {}).get("stream_url")
                print(f"Stream URL: {stream_url}")
    
    if __name__ == "__main__":
        asyncio.run(main())
    

    上述代码将启动一个代理,模拟浏览器行为,执行用户请求的任务,并提供实时更新的流式输出。

📦 版本信息

  • 最新版本0.0.1(发布于 2025 年 3 月 25 日)
  • 发布日志GitHub Releases

🌐 相关资源

通过 langgraph-cua,您可以构建能够模拟人类计算机操作的智能代理,适用于自动化任务、信息收集等场景。


langgraph-cua 实现的原理

langgraph-cua 是一个基于 LangGraph 的 Python 库,用于构建计算机使用代理(CUA,Computer Use Agent)系统,使 AI 能够模拟人类操作计算机执行任务,如浏览网页、填写表单、搜索信息等。


🔧 实现原理

langgraph-cua 的核心原理在于将 LangGraph 的图形计算模型与 Scrapybara 的虚拟机执行能力相结合,形成一个可执行计算机任务的智能代理系统。

1. LangGraph 图形计算模型

LangGraph 是一个用于构建代理应用的框架,支持:

  • 图形化任务建模:将任务分解为多个节点,每个节点代表一个操作或决策点。
  • 短期与长期记忆:支持在多轮交互中保持上下文信息。
  • 人机协作:允许人类在任务执行过程中进行干预和指导。

langgraph-cua 中,使用 create_cua 函数创建一个 CUA 图形,该图形定义了代理的行为流程。

2. Scrapybara 虚拟机执行

langgraph-cua 默认使用 Scrapybara 作为执行环境,Scrapybara 提供:

  • 虚拟机实例:支持创建 Ubuntu、Windows 等操作系统的虚拟机。
  • 浏览器模拟:能够在虚拟机中运行浏览器,模拟用户的点击、输入等操作。
  • 持久化会话:支持保存和复用浏览器的认证状态,避免重复登录。

通过 Scrapybara,langgraph-cua 可以在虚拟机中执行图形模型定义的任务,如访问网页、填写表单等。

3. 流式输出与实时反馈

langgraph-cua 支持任务执行的流式输出:

  • 实时更新:在任务执行过程中,代理会实时发送更新信息。
  • 交互式反馈:用户可以根据实时输出进行干预和指导。

这种机制使得任务执行过程更加透明和可控。

4. 零数据保留(ZDR)

为了保护用户隐私,langgraph-cua 支持零数据保留(Zero Data Retention,ZDR):

  • 配置选项:通过设置 zdr_enabled=True,代理在每次请求时都会将完整的消息历史传递给模型,而不是使用之前的响应 ID。
  • 隐私保护:这种方式确保了每次交互都是独立的,不会泄露用户的历史数据。

🧱 组件架构

langgraph-cua 的主要组件包括:

  • CUA 图形:定义代理的行为流程和任务逻辑。
  • Scrapybara 虚拟机:提供任务执行的环境和资源。
  • 流式输出机制:实现任务执行的实时反馈和交互。
  • 配置系统:支持 API 密钥、认证状态、环境设置等配置。

🚀 示例代码

以下是一个使用 langgraph-cua 的示例:

from langgraph_cua import create_cua
from dotenv import load_dotenv
import asyncio

load_dotenv()

cua_graph = create_cua()

messages = [
    {"role": "system", "content": "You're an advanced AI assistant with browser access."},
    {"role": "user", "content": "Find the best price for all-season tires for a 2019 Subaru Forester."}
]

async def main():
    stream = cua_graph.astream({"messages": messages}, stream_mode="updates")
    async for update in stream:
        if "create_vm_instance" in update:
            print("VM instance created")
            stream_url = update.get("create_vm_instance", {}).get("stream_url")
            print(f"Stream URL: {stream_url}")

if __name__ == "__main__":
    asyncio.run(main())

在这个示例中,代理将模拟浏览器行为,执行用户请求的任务,并提供实时更新的流式输出。


通过将 LangGraph 的图形计算模型与 Scrapybara 的虚拟机执行能力相结合,langgraph-cua 实现了一个强大的计算机使用代理系统,能够模拟人类操作计算机执行各种任务。

基于大模型智能体Agent的LangGraph入门与实战课程目标:本课程旨在为LangGraph的初学者提供深入的理论知识和实践技能,使其能够独立构建和部署基于LangGraph的应用程序。课程形式:理论讲解 + 实战演练第1课 LangGraph基础架构与环境配置-LangGraph的概念解析第2课 LangGraph基础架构与环境配置-LangGraph的环境搭建与依赖管理第3课 LangGraph的基础原理与应用入门-构建基本聊天机器人及使用工具增强第4课 LangGraph的基础原理与应用入门-内存管理、人在回路、状态更新第5课 LangGraph高级图控制技术-并行节点扇出和扇入、增加额外步骤、条件分支第6课 LangGraph高级图控制技术-稳定排序、Map-Reduce并行执行、图递归控制第7课 LangGraph持久化机制与状态管理-线程级持久化、子图持久化、跨线程持久化第8课 LangGraph Human-in-the-loop-断点设置、动态设置断点、编辑更新状态第9课 LangGraph Human-in-the-loop-等待用户输入、时间旅行、工具评审第10课 LangGraph在具有长期记忆的有状态Agent中的应用-长期记忆及短期记忆、过滤信息、删掉信息第11课 LangGraph在具有长期记忆的有状态Agent中的应用-摘要总结、跨线程持久化、代理语义搜索第12课 LangGraph工具集成与调用-直接调用ToolNode、大模型使用工具第13课 LangGraph工具集成与调用-工具调用报错处理、运行时值传递给工具、注入参数第14课 LangGraph工具集成与调用-配置传入工具、从工具更新图状态、管理大量工具第15课 LangGraph子图设计与实现-添加及使用子图、父图及子图状态管理第16课 LangGraph子图设计与实现-子图状态的查看与更新、子图输入输出的转换与处理第17课 LangGraph项目实战演练-多智能体系统主管委托各个代理第18课 LangGraph课程复习与答疑 自我反思案例及论文案例讲解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Agent首席体验官

您的打赏是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值