用 Loop Engineering 开发Android App

举报
deli007 发表于 2026/06/10 20:32:30 2026/06/10
【摘要】 ,   最近loop engineering很火,它的本质是通过反复测试验证目的是否达到,来驱使AI一遍一遍替我们干活儿,直到干好为止。在网上找时,说理论的文章很多,但实际例子很少,今天我以开发一个android app为例,来说明一下如何实现 loop engineering,本次实验我们用cc+glm来做尝试,然后用码道来做复现。   首先,我们要让code agent能自测试,否则它没...

   最近loop engineering很火,它的本质是通过反复测试验证目的是否达到,来驱使AI一遍一遍替我们干活儿,直到干好为止。在网上找时,说理论的文章很多,但实际例子很少,今天我以开发一个android app为例,来说明一下如何实现 loop engineering,本次实验我们用cc+glm来做尝试,然后用码道来做复现。

   首先,我们要让code agent能自测试,否则它没法loop,而android app比网页自测试要难多了,但好在现在凡事不懂都可以问code agent。在与agent多轮对话后,我按照它的建议,通过usb连接了一个真的android手机到电脑上,开启开发者选项模式,安装了android studio。然后让code agent测试一下是否能连接手机并进行操作和截图,这步ok后,等于给agent装上了眼睛,它可以自己编译apk,自己安装到手机,然后通过截图来看功能是否正常。

     正所谓磨刀不误砍柴工,如果一个项目无法由AI进行自测试,那就没法自动loop。之前我也试过一个微信小程序开发,但由于小程序开发者工具还没有很好的mcp支持,没法自动化编译提交和预览测试,因此无法自动loop。web网页项目我也试过,那是比较容易自动化测试的,通过playwright就能模拟浏览器访问,可以自动loop。因此我们在开始一个项目前,要思考能否自动测试,如果不能,那就没法走loop这条路了。

   环境准备好了后,我们只需要对agent说:请用loop engineering思维给我开发一个英语学习android app应用。它会自己规划好如何loop,这里我也吃过一次亏,由于loop模式上下文涨的特别快,很容易就爆了,我就爆了一次,导致得从头开始。因此我特意跟它说了:请把开发过程结果尽量都保存到skill或其它格式,防止意外终止后无法自动恢复。这样我们就能高枕无忧了,不管是上下文爆了,还是电脑死机重启了,咱们都可以快速恢复,避免白白浪费了一堆tokens。


    我们可以看一下agent它自己设计的单个loop,里面包含了设计、开发、测试、修复、代码提交,这等于一个大循环里套了很多小循环,是不是很精妙 :)


   我们看它在执行 L0 步骤时,在小循环里,能够自动发现编译错误、测试错误(因为中间我拔掉了手机),它能自动修复错误,依赖人类介入的会发出提醒(需要人类重新usb连接手机)。


    我重新连接手机后,它会继续完成L0这个小loop,并产出阶段成果。然后沿着大循环去跑L1及后面的任务了。


  在 loop过程中遭遇上下文爆炸问题,这里扯不清是agent问题,还是llm所属的maas问题,但不管怎样,由于我们让agent保存了loop进展,因此它可以很快自己从clear中恢复。


   在loop过程中,我观察到一个细节,在一个小循环里,如果一个任务预计时间会比较长,agent会自己去并行执行其它任务。例如这次,它发起了题目数据llm生成任务,这个任务预计要比较长的时间。而数据细节与代码无关,只有数据结构与代码有关,数据结构已然是确定的,因此agent同步去写代码去了,真是个勤劳的孩子,一点都不想偷懒。

   

    在loop过程中,我们不妨看一下agent的过程记录文件,它把loop过程进展记录到了 “LOOP_ENGINEER.md” 文件,从这个文件可以看到它把整个loop规划都写好了,每完成一部分就更新一些标记,此时如果中断了,或者换一个code agent,只要重新读一下这个文件,就知道怎么继续往下干了。


   在L1 loop时,我们可以看到app各个子界面已经成型了,agent通过adb命令自己操作手机界面在测试单词练习,我们只需要看着手机画面在自动的不停的翻页和点击就行了。这种感觉太好了,有人替我们写代码,还有人替我们测试,当它发现测试不对时还会回头去改代码。



   回顾这次loop engineering实践,我们可以发现code agent进步很快,屏蔽了很多harness, loop细节,我们只用自然语言跟它对话,它就能帮我们把这个loop工程搭建好,当它缺少一些工具或环境必须人类来帮它时(比如usb连接手机),它也会向我们发出求助。它对于人类的编程能力和工程能力要求越来越低了,我们只需要保持好奇心就行,有目标,告诉它,然后坐等实现!









    

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。