IBM CUGA:用两打生产级示例,教你真正写好智能体应用

构建智能体应用最烦人的不是写智能体逻辑,而是铺管道。你要选框架、配模型客户端、写工具适配器、搞状态流到UI,忙活一周才能开始干正事。IBM开源的CUGA(Configurable Generalist Agent)把整个编排层替你扛了:规划、执行循环、工具调用、状态管理全在Harness里,你只需要写两个东西——工具列表和提示词。它的核心技术是一套内置的规划-执行-反思循环,能在长任务跑二十步时追踪中间变量,出错了重新规划而不是硬着头皮往下走。这份状态管理和自纠错能力,是它登顶AppWorld和WebArena这类智能体基准排名的原因。更重要的是,CUGA把成本/延迟的权衡做成了配置文件里的一个开关:Fast、Balanced、Accurate三种推理模式,代码执行放在你信任的沙箱里(本地、Docker或E2B云),同一个智能体定义,换个旋钮就行。因为Harness自己干活,小模型也能撑住——你能用开源的gpt-oss-120b跑出效果,不必非买最贵的API。这样你就可以用更少的钱、更可控的方式,构建一个真正好用的智能体。

把这两打示例应用跑通之后,你会发现自己根本不用从头造轮子。IBM Cloud架构顾问这个例子最清晰:一个智能体定义就是一个函数调用传四个参数(模型、工具、提示词、状态存储路径)。工具分两类:公开数据查询走MCP服务器,业务逻辑写成一个Python函数加一段docstring。真正关键的是每个工具都返回统一格式的响应包:成功{“ok”: true, “data”: {…}},失败{“ok”: false, “code”: “…”, “error”: “…”}。这看起来像样板代码,但规划器看到声明式失败会优雅处理(“地理编码没返回,跳过那部分继续”),看到裸的栈异常就直接翻车。应用库本身就是个起始点目录:你克隆仓库,找到最接近你需求的那个,改工具列表和提示词就行。有的应用甚至是通过给编码助手一个规格文件加一句话需求生成的——范式足够规整,意味着你也足够学得会。

最让我觉得有意思的是安全策略和治理机制直接在运行环境里,而不是事后加的一层壳。CUGA内置六种策略类型:意图守卫(拒绝不当请求)、工具审批(危险工具前暂停等人工)、工具指南(指导工具使用而不重写它)、剧本(固定好用的流程)、输出格式化器(强制输出格式)、以及自定义策略。这些策略的触发时机比你想的精细:意图守卫在智能体选工具前检查请求,工具审批在智能体生成代码后检查代码调用了哪些工具,输出格式化器只在最终消息产生后触发。触发条件不止关键词匹配,而是存在sqlite-vec向量库里做语义匹配,所以策略能跟上用户真正的意图。当你想生产化部署时,不用重写智能体——部署加隔离层、私有网络、OpenTelemetry追踪到Grafana Tempo、模型跑在气隙环境里就行。那个智能体定义不变。这就是整件事的兑现:一个开放、可审计、自带治理的运行环境,从笔记本到生产是一条路。

Build real agentic apps using CUGA: two dozen working examples on a lightweight harness

查看原文