使用CUGA构建真实的智能体应用:轻量级框架上的二十多个工作示例
CUGA是IBM开源的智能体框架,处理了智能体构建中的管道工作,让开发者只需编写工具列表和提示词即可。本文通过一个IBM云架构顾问示例,展示了如何用少量代码构建一个完整的智能体应用,并介绍了CUGA的规划、执行、反射步骤和策略系统。
CUGA(Configurable Generalist Agent)是IBM推出的开源智能体框架,旨在简化智能体应用的构建。大多数智能体项目需要花费大量时间在管道工作上,例如配置模型客户端、编写工具适配器、实现状态流等,而CUGA将这些部分抽象出来,让开发者只需专注于定义工具列表和提示词。
为了更好地展示CUGA的实用性,IBM构建了cuga-apps:一个包含二十多个单文件应用的集合,每个应用都是一个独立的FastAPI文件,封装了一个CugaAgent实例。这些应用涵盖了从电影推荐到IBM云架构顾问等多种场景,旨在作为可阅读和可复制的起点。
本文详细介绍了其中一个应用——IBM云架构顾问。这个智能体的核心代码非常简洁:一个工厂函数创建CugaAgent实例,传入模型、工具列表和特殊指令。模型通过一个工厂函数动态创建,支持多种提供商(如OpenAI、Anthropic、watsonx等),应用代码无需关心底层模型。工具则分为两类:本地定义的Python函数(如搜索IBM云目录)和通过MCP服务器获取的通用工具(如网页搜索)。提示词被设计为有序步骤,并明确禁止编造服务名称。
CUGA的规划机制是其关键优势之一。它会在执行前进行规划,然后通过工具调用和生成代码(CodeAct)执行。对于长任务,CUGA会跟踪中间结果并进行反射步骤,以便在错误发生时重新规划,而不是盲目继续。这种设计使得CUGA在多个基准测试(如AppWorld和WebArena)中名列前茅。此外,CUGA还支持Fast、Balanced和Accurate三种推理模式,以及代码执行沙箱(本地、Docker/Podman或E2B云端)。
CUGA还提供了策略系统,用于控制智能体的行为。例如,可以通过Intent Guard阻止某些请求,通过Tool Approval在 risky 工具调用前暂停等待人工批准,通过Playbook固定已知良好的流程等。这些策略在运行时生效,而不是事后包装,确保智能体在复杂环境中安全运行。
cuga-apps不仅仅是演示,更是一个可复用的库。应用按类别组织,包括研究类、日常生产力类、文档媒体类、运维类和企业类。例如,Ouroboros是一个七智能体的潜在客户生成系统,展示了多智能体协作。Meetup Finder则通过Playwright驱动无头Chromium来提取活动信息,展示了浏览器自动化的能力。
总之,CUGA通过预组装这些复杂组件,极大地降低了智能体应用的开发门槛。无论是简单的知识检索还是多智能体协作系统,开发者都可以从cuga-apps中找到合适的起点,并根据需要进行调整。