基于OpenAPI和AI coding的上云智能体构建实践

简介: 本文探讨了基于LLM和AI编程技术构建上云智能体的实践,提出通过人在回路中设计整体流程、LLM自主决策与执行的方式,有效减少幻觉并提升任务正确率。方案在多轮迭代中逐步生成代码,解决了API参数依赖等问题,并验证了三大核心设计理念的可行性。

摘要

Andrej Karpathy 最近在YC分享关于人工智能时代软件的观点,他认为软件可以分为1.0、2.0、3.0三种编程范式,每种编程范式有其优劣点,而且目前是共存的。回顾最近一年AI coding的发展历程(可以阅读Cursor相关文章),以及Multi-Agent Systems目前存在的在现实问题中具有巨大潜力同时也有失败率较高的问题,再结合自己近期的实践,我非常赞同他的观点,并且进一步认为:使用LLM或者Agent解决现实问题(或者说“接管数字世界”),现阶段的可行路径应当是:整体流程应当由人在洞察LLM优缺点的基础上进行设计和控制,流程的每个环节在提供充足的知识和数据的基础上由LLM决策和执行。本文将介绍我们最近在客户上云场景初步实践了基于openAPI代码和AI coding技术构建上云智能体的技术方案,这个方案目前还不够成熟,但是已经能够证明:“充足的数据和知识加工”、“在洞察LLM优缺点的基础上由人设计和控制整体流程”、“每个环节交由LLM在给定的数据和知识上进行自主决策和执行”等三个核心设计理念,是解决实际问题的一条正确路径,能够充分减少LLM幻觉,提高任务执行正确率。欢迎大家一起讨论改进。

一、上云智能体的业务场景

上云智能体服务的场景是:云用户通过自然语言完成云资源的自动化创建和统一安全管控,以及轻量级数据开发PoC。

二、如何构建上云智能体

1、为什么不将openapi注册成mcp server,然后在应用中直接使用mcp?

原因有二:1、mcp server需要事先注册api,且api的数量一般限于几十个,如果过多的api,LLM选择api的效果和性能都有问题。但是阿里云openapi的数量是数以万计的,上云场景客户可能会使用任意一个openapi,无法事先指定api范围;2、mcp server完全依赖LLM选择api、推理api参数值。但是实际上目前的LLM不仅在选择api和推理api参数值上存在明显的幻觉问题,更重要的是存在大量api的入参依赖于其他api的出参,在前一个api还没有被执行的情况下,后一个api无法确定入参。所以api调用关系的推理、api之间参数值的传递等工作,需要通过LLM以外的手段实现,通过这些额外的手段给LLM提供精准数据,才有可能有效避免LLM幻觉,提升精度。


2、为什么要通过AI coding构建上云智能体?

本文所说的AI coding是指:在事先加工阿里云openapi数据和代码的基础上,利用LLM自动生成代码,通过多轮迭代满足客户的上云需求。AI coding的好处是:(1)面对数以万计的openapi,LLM基于用户问句和api知识,选择合适的api和推理api参数,生成代码,可以避免预先选择少量api的问题;(2)AI coding并不是一次性端到端的满足用户需求,而是通过多轮迭代逐步生成代码的方式响应用户需求,可以解决api之间参数依赖的问题,提升智能体正确率。


3、AI coding如何构建上云智能体?

(1)openapi数据加工

主要是解析api文档、参数说明;识别api参数值之间的关系;加工api代码;构建RAG。

(2)关键模型强化学习

推测Qwen基模已经学习了openapi的公开数据,但是由于openapi接口存在多个版本,部分api参数有明确的来源约束等原因,需要通过强化学习提升Qwen对api调用关系、api参数值知识的记忆程度和遵循程度,减少代码生成时的幻觉。

(3)设计智能体整体流程

整体流程包括识别问句意图、识别api、推理参数值;生成代码;代码执行结果分析;问句改写等。整体流程本质上是工作流模版,但是工作流实例的每个环节的调用参数、流程是否继续循环或者结束,完全由LLM决定。

(4)LLM自主决策和执行代码

结合PE、RAG、ICL等技术,LLM从加工后的openapi数据中获取知识和样例,自主根据用户问句生成和执行代码,自主分析执行结果,自主判断是否已满足用户需求,从而决定是否进入下一轮工作流实例或者结束流程。

三、技术实现

1、技术架构

(1)数据来源:阿里云产品的官网文档、阿里云openAPI

(2)基础设置:百炼、自行开发的代码执行器

(3)AI coding在线部分:Multi agent链路,多个agent自主决策和执行,直到agent判断用户需求已经满足或者超时退出。

(4)AI coding离线部分:包括基于LLM的数据挖掘和关键模型的强化学习等工作。前者负责给multi agent加工高质量的数据和知识,后者负责提升LLM对open api知识的理解和记忆程度,以及生成代码时的代码规范遵循程度。

(5)上云智能体:用户交互日志用来记录goodcase和badcase,回流日志;官网文档RAG,用于补充一些云产品的最佳实践和特殊用法;效果评测智能体,用于跟踪版本效果和性能;代码缓存器用于提升高频需求的响应性能。

2、AI coding构建上云智能体要解决的关键技术问题

(1)如何减少LLM生成代码时的幻觉?LLM发生幻觉时,如何解决幻觉带来的问题?

LLM幻觉是不可避免的,减少幻觉的有效方法有:每一次调用LLM时的问题要聚焦、提供高质量的prompt、ICL、领域内强化学习等。目前上云智能体侧重于通过加工阿里云openapi的文档和代码,在每一轮LLM生成代码时,力求提供准确的api说明和基于上一轮执行结果的推理出来的参数值。同时,上云智能体在设计整体流程时,下一轮生成代码时会将上一轮的代码和报错信息作为prompt,可以有效解决上一轮幻觉导致的代码错误在本轮再次出现,从而减小幻觉出现的概率。同时高质量的ICL,以及通过回流goodcase和badcase开展强化学习也是关键。


(2)如何提高LLM选择api和推理参数值的精度?

从调用情况分析,Qwen基模应当已经学习过阿里云openapi的数据,有一定的api选择和参数值推理能力。但是由于云产品的openapi存在一到多个版本、部分参数值需要调用其他api获取等问题,Qwen基模对云资源的创建关系、api之间的调用关系、api之间的参数传递关系都存在精度问题。所以,上云智能体通过离线挖掘api参数文档、加工api样例代码等多种方法,丰富LLM接收到的api知识,从而提升api选择和参数值推理的精度。


(3)api参数值的推理,特别是依赖于前一个api出参的api参数值如何精准“传递”?

上云智能体通过问句改写的方式实现参数值传递,即:每一轮迭代的最后一步都是针对智能体当前计算结果,修改问句,从而实现前一轮api的出参传递给下一轮api。


(4)如何进行问句改写?

不同于搜广推query改写的目的是扩大召回和提升精度,上云智能体问句改写的目的是提醒智能体在下一轮生成代码时,目前已有哪些信息,基于这些信息进一步推理还需要调用哪些api以及已有哪些参数值。所以,上云智能体需要理解和获取api调用关系、api参数值关系,才能进行有效的问句改写。

四、当前效果

以下由AI创建的云资源均已被释放,所以目前无法访问,仅作为创建结果的说明。

1、创建单个云资源

用户需求:在杭州建一个4C8G的ECS

上云智能体:

(1)首先分析用户意图,识别云资源产品名称和相关参数;(视频时间:0:07)

(2)然后生成代码执行步骤和代码;(视频时间:0:19)

(3)第一轮代码执行,基于已执行结果生成下一轮新的问句;(视频时间:0:38)

(4)进入第二轮循环(视频时间:1:00)

(5)第二轮代码执行,基于已执行结果生成下一轮新的问句;(视频时间:1:09)

(6)判断用户需求得到满足,结束任务。(视频时间:1:26)

image.png

2、云资源访问限制

用户需求:在杭州建一个4C8G的ECS,我IP 是,140.205.11.239,可以连上去。

上云智能体:

(1)首先分析用户意图,识别云资源产品名称和相关参数;(视频时间:0:11)

(2)然后生成代码(视频时间:0:20)

(3)第一轮代码执行结束,基于已执行结果生成下一轮新的问句(视频时间:0:38)

(4)进入第二轮循环(视频时间:1:18)

(5)第二轮代码执行结束,基于已执行结果生成下一轮新的问句(视频时间:1:22)

(6)进入第三轮循环(视频时间:1:47)

(7)第三轮代码执行结束,基于已执行结果生成下一轮新的问句(视频时间:1:53)

(8)判断用户需求得到满足,结束任务。(视频时间:2:11)

image.png

3、创建多种云资源并设置拓扑关系

用户需求:我的IP是:140.205.11.251,帮我在杭州创建一个轻量级 WEB 服务环境,有公网EIP挂在SLB上作为入口,下挂2个ECS作为服务器,并且可以访问1台RDS MySQL作为数据库。

上云智能体:

(1)首先分析用户意图,识别云资源产品名称和相关参数;(视频时间:0:14)

(2)第一轮分析api调用关系;(视频时间:0:36)

(3)第一轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要13步动作需要执行;(视频时间:0:58)

(4)进入第二轮循环;(视频时间:2:11)

(5)生成第二轮代码;(视频时间:2:26)

(6)第二轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要11步动作需要执行;(视频时间:2:40)

(7)进入第三轮循环;(视频时间:3:38)

(8)第三轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要9步动作需要执行;(视频时间:3:58)

(9)经过8轮循环,判断用户需求得到满足,结束任务。(视频时间:5:25)

image.png

4、上一轮AI生成的代码出错下一轮自动纠错

用户需求:帮我在上海构建一个消息队列压测环境,需要一个RockMQ实例,前面配合2台ECS,一台作为生产者,一台作为消费者。这两台ECS都有公网IP便于调试。

上云智能体:

(1)首先分析用户意图,识别云资源产品名称和相关参数;(视频时间:0:06)

(2)第一轮生成代码执行步骤;(视频时间:0:18)

(3)第一轮AI生成的代码;(视频时间:0:30)

(4)第一轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要6步动作需要执行;(视频时间:0:40)

(5)第二轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要4步动作需要执行;(视频时间:1:42)

(6)第三轮代码执行结束,由于改步代码执行报错,所以问句保持不变,进入下一轮循环;(视频时间:2:40)

(7)第四轮代码执行结束,基于已执行结果生成下一轮新的问句,还需要1步动作需要执行;(视频时间:3:15)

(8)后面几轮代码持续出错,查看代码报错信息,提示某个参数,AI没有推理出参数值;(视频时间:5:32)

(9)第十轮代码执行结束,判断用户需求得到满足,结束任务。(视频时间:6:22)

image.png

五、后续展望

1、性能

(1)模型加速:大模型推理加速、大模型代码生成加速。

(2)框架提速:代码合并执行、代码并行执行。

(3)优化代码缓存器,提高命中率。

2、效果

(1)除了openapi数据外,继续清洗阿里云官网文档数据,丰富云产品关系知识。

(2)提升api选择、api参数值推理、参数值合规性检查、以及代码生成的强化学习效果。

(3)提升问句改写效果。



来源  |  阿里云开发者公众号

作者  |  伍胥、森泽、叶临、鸿度、马权、苗刀

相关文章
|
5月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
3306 166
|
5月前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
1570 6
|
5月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
5月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
2055 17
构建AI智能体:一、初识AI大模型与API调用
|
5月前
|
存储 机器学习/深度学习 人工智能
构建AI智能体:三、Prompt提示词工程:几句话让AI秒懂你心
本文深入浅出地讲解Prompt原理及其与大模型的关系,系统介绍Prompt的核心要素、编写原则与应用场景,帮助用户通过精准指令提升AI交互效率,释放大模型潜能。
982 6
|
5月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
1325 56
|
6月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1257 58
|
5月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
648 30
|
5月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
652 2