如果说,要你面试一个 AI 程序员,你会给它出什么题?
写个排序算法?补一段报错代码?
这些题当然能测出一点东西,但距离我们真正使用AI写代码的场景,还是有点远。
大多数人不会拿着一份标准答案去找AI,而是会直接说:我有个想法,你能不能帮我把它做出来?
而且这个想法往往只有一个大概。
技术怎么选、页面怎么搭、功能怎么串起来、报错以后怎么修,都希望AI自己往下推进。
所以这次,我想给AI安排一场不太正经的程序员面试。
没有算法题,也不跑一堆看不懂的分数,我只准备了三份工作:
第一份,做一个不用键盘、靠手势就能玩的肉鸽游戏。
第二份,把浏览器里正在看的长文章,现场改造成一个知识闯关游戏。
第三份,养一只会根据我的摸鱼程度不断变异的“摸鱼怪”。
而这次,我选择的模型是:Doubao-Seed-Evolving。
“持续演进”
Evolving这个名字直译过来就是 “持续进化” 。
它是豆包面向Coding和Agent场景推出的一条模型路线。
和发布后固定在某个版本上的模型不同,Evolving 强调的是持续更新。
简单理解,你接入这个模型ID后,不需要每次更新都重新追着版本号切换,而是模型自动升级。
这种安排其实特别方便,就不用开发前还要调整模型参数。
好了,我其实也不怎么喜欢介绍一堆冷冰冰的参数,也不需要把提示词写成一份只有程序员才能看懂的需求文档。
我就像平时冒出一个新点子时那样,用大白话把需求说清楚,然后看看它能不能把这些话接住,最后交出一个能启动、能安装或者能玩的东西。
下面就是三道面试题。
集成在Claude Code开发
首先打开CC Switch,在列表中直接选择火山引擎。
然后,我们在火山引擎的控制台拿到API Key填进来(注意防止泄露造成损失),获取地址:
https://console.volcengine.com/
这里需要注意,默认给出的火山的请求地址是错误的,换成下面这个,否则无法调用成功:
https://ark.cn-beijing.volces.com/api/compatible
然后往下拉,其他的Base URL什么的都已经自动填好了,我们只需要把下面的模型名称改成:doubao-seed-evolving
最后点击保存,然后切换至该API路径,在一个空白项目文件夹中启动Claude Code。
可见,模型已经切换好了,开始开发。
用手势玩的肉鸽
第一道题,我故意选了一个看起来就不太省事的东西:手势控制游戏。
它不是做出一个好看的页面就算完成。
摄像头、手部识别、手势判断和游戏逻辑都得接在一起;
手稍微抖一下,攻击不能连发十次;
手离开画面,角色也不能当场失控。
我还希望它真有一点肉鸽游戏的味道:能打怪、能升级、能选能力,最后再来一个 Boss。
也就是说,它既要处理实时输入,又得把一套完整的游戏循环跑起来。
我给Evolving的提示词是这样的:
帮我做一个可以直接在浏览器里玩的手势控制肉鸽小游戏。打开游戏后调用电脑摄像头,识别玩家的一只手。角色跟着手掌移动,拇指和食指捏在一起时攻击,握拳时打开护盾,快速挥手时冲刺闪避,张开手掌保持一会儿释放大招。游戏用俯视角,敌人会不断从屏幕四周出现。打怪可以升级,每次升级出现三个能力供我选择,我可以伸出一根、两根或者三根手指来选择对应的能力。希望至少有几种不同的敌人,最后再来一个 Boss,一局控制在五分钟左右。画面可以做成赛博或者魔法风格,攻击时要有粒子效果、音效和比较明显的打击反馈。摄像头画面可以放在角落,并显示识别到的手部骨骼。手势识别要尽量稳定,不要手稍微抖一下就重复触发很多次。如果手离开摄像头画面,游戏先自动暂停。技术方案你自己选择,不影响主要效果的细节也可以自己决定。请直接把完整项目做出来,安装需要的依赖并运行检查。发现问题就继续修,最后告诉我怎么启动和体验。
然后,等待开发:
哎!实现的速度比我想象的要快哦~
很快,他就帮我部署到本地3000端口测试,你别说,就这个设计,还挺不错的。
右下角可以看到它实时通过我电脑摄像头捕捉的手的动作。
你还真别说,玩起来还不赖,下面这是刚进入界面时的游戏玩法提示。
你还别说,要识别出来这么多的动作,确实有点吃代码功底,包括冲刺、攻击、升级、移动等。
牛!
在我手部动作捕捉方面,可以做到非常的敏锐,这代码写的真不错。
另外,还有一些功能,比如,当摄像头检测不到手的时候,就会自动触发暂停,除非你再次举起你的手来,hhhh。
这次的开发,除了需要Claude Code的安全确认,全程只用了大概8分钟左右的时间就一次性做好了。
不过后面,我自己改动了一下,就是让摄像头捕捉我的画面不要出现真实场景,只需要展示我手的捕捉线就好,也是一次就改好了。
养一只专门抓我的“摸鱼怪”
番茄钟我用过不少,但它们通常只会安静地计时。
开没开始、中途跑去刷视频,最后还是全靠自觉。
于是我想反过来:如果摸鱼会亲手养大一只怪物呢?
我每切一次标签页、每多逛一会儿娱乐网站,它就长大一点;只有老老实实完成一段专注时间,才能反过来攻击它。
原本枯燥的浏览器记录,也就变成了一场我和自己坏习惯之间的像素战斗。
这个项目主要看Evolving能不能同时管好浏览器事件、计时、数据保存、隐私设置和一套有反馈的宠物玩法。
帮我做一个叫“摸鱼怪”的Chrome浏览器扩展,它是一个带电子宠物玩法的反向番茄钟。我希望它能记录我切换浏览器标签页的次数,以及我在不同网站上大概停留了多长时间。频繁切换标签页,或者在娱乐网站停留太久,摸鱼怪就会慢慢长大、升级甚至发生变异。如果我开启一个25分钟的专注时间,并且中途没有频繁乱跳网站,就算成功攻击了一次摸鱼怪。连续完成几个专注时间,可以获得技能或者道具。每天生成一只属于当天的怪物,每周还可以出现一个 Boss。扩展打开后要能看到摸鱼怪的形象、今天的专注时间、切换标签页次数和大概访问了哪些类型的网站。画面希望是像素游戏风格,有简单动画,不要只是一个普通统计面板。网站分类不用做得特别复杂,可以先内置一套工作、学习、社交、视频、购物等分类,同时允许我自己修改。浏览器关闭再打开后,怪物状态和专注记录不能消失。所有记录都只保存在本地,不要上传我的浏览记录。给我暂停监控、清空数据和关闭某些网站统计的选项。技术方案和宠物造型你自己决定。请直接做成一个能够安装的完整 Chrome 扩展,实际运行检查一下计时、标签页切换和数据保存是否正常,有问题就继续修复,并告诉我怎么安装使用。
ok,差不多有15分钟左右,开发完成:
然后,按照它的提示,我们去Chorme拓展去安装。
先开启开发者模式,然后在左侧点击加载未打包的拓展程序,随后选择刚才开发所在的项目文件夹。
然后我固定在拓展栏,这样点击出来后就是这个样子。
其实一开始我不知道如何评价,因为像素化比较重(可能是我提示词的问题),而且我一开始也不知道它的运行逻辑。
然后我测试了下,点击开始专注25分钟。
他这里是可以统计我在专注时间内切换标签页的次数,当我多次切换后,可以发现这里是明确的有次数变化的。
当然,因为我们现在是处于专注模式,所以,当我们切换标签页次数太多的时候,它就会自动跳出浏览器通知,告诉你此次专注失败!
另外,你还可以发现,当你摸鱼次数够多,这个“怪物”也会“成长变大”!
怎么样,要是你再不认真工作,小心这个怪兽给你浏览器做手脚(开玩笑hhhhh)!
那肯定有人要问,我的工作性质就要求我要来回标签怎么搞,好问!
设置里面,可以编辑不计入统计的网站。
把正在看的文章,改造成一个闯关游戏
平时看长文章,我经常会遇到一种很尴尬的情况:读的时候感觉自己都懂,关掉页面以后却什么也说不出来。
所以第二个项目,我想做一个Chrome扩展。
它不是帮我总结文章,而是直接拿文章内容出题,让我答完以后才算真正读过。
这道题看似没有手势游戏那么有趣,实际却更像一项完整的产品开发:
它要从不同网页里找到正文、过滤杂乱内容、生成题目、回到原文定位依据,还要保存进度和错题。
我给出的需求依旧没有规定具体框架,只说清楚自己想怎么用:
帮我做一个Chrome浏览器扩展,可以把当前打开的长文章变成一个知识闯关小游戏。我打开一篇文章后,点击扩展按钮,它先自动读取网页正文,把导航、广告、相关推荐这些无关内容尽量过滤掉,然后根据文章内容生成五个关卡。题目可以包括选择题、判断题和关键词挑战。答对才能进入下一关;答错时不要只告诉我答案,要把原文里相关的那一段显示出来,让我知道答案是从哪里来的。扩展要能保存阅读进度、历史成绩和错题。全部通关后,生成一张成绩卡,告诉我用了多长时间、答对了多少题,还可以把错题导出来以后复习。整体界面不要太像考试系统,可以做得像冒险闯关游戏一点,有关卡地图、生命值或者宝箱之类的元素。生成题目的模型调用部分请单独封装好,在设置页面里让我填写 API 地址、模型名称和 API Key,不要把密钥直接写在代码里。如果暂时没有配置模型,也提供一篇示例文章和模拟题目,让我能够先体验完整流程。技术和界面细节你自己决定。请把扩展完整做出来,保证我可以通过 Chrome 的“加载已解压扩展程序”直接安装,并写清楚安装和使用方法。做完后请自己检查一下主要功能,遇到问题继续修复。
这个任务是这三个中用时最长的,不过可以理解,毕竟还涉及到模型调用了(整理题库所需)。
因为同样是Chorme拓展程序,我们还是和上面的方法一样,导入我们这个拓展。
打开后就是这个样子的,看起来还挺像样的,我们来实测一下。
我们直接打开这个新模型介绍的页面来看看:
哦!!!我们还没有配置API呢,所以这里就只是演示效果。
点击拓展头像,进入设置,这里我还是直接填我们目前开发在用的模型的API吧,填写完,可以点击测试连接,没问题就点击保存设置。
然后,我们退回到需要测试的页面,刷新一下,再点击这个拓展程序,就可以看到开始生成题库了。
后来经过实测,嘶~经过了好几分钟才给我把题目生成好。
后面的话,做题体验还是不错的!
来看看这道题,该选什么呢?
当然是错误了,前面我们提到的,这是一款不断升级的模型,同样的模型ID,无需更换,就可以体验到最新的版本。
体验不错,再来一道:
hh,这个描述当然是正确的了,该版本的Evolving对比之前的,再tokens消耗、工具调用伦茨,整体任务效率上都是有着很大的提升的。
同时,还有填空题,还是很不错的吧。
当然,如果你觉得题目数量比较少的话,还可以继续修改,这都是很方便的。
三个任务跑完,它能成功过筛吗
做完这三个项目以后,我对Doubao-Seed-Evolving最直接的感受是:完全可以进入下一轮。
不是因为它把三个项目都做得毫无瑕疵。
真正让我觉得它能干活的,是我没有先把需求翻译成一堆技术名词,也没有规定框架、目录和实现路线。
三个想法基本都是用大白话交代的,它却都能自己往下拆,最后交出一个可以打开、安装或者直接玩的版本。
更有意思的是,这三个任务其实是我同步推进的,使用的还是同一个API Key,除了加快了消耗速度,整个开发流程都是非常流畅的。
写在最后
很多小想法最后没做出来,不一定是因为它有多难。
更多时候,是第一版太麻烦了。
要选技术、搭环境、处理报错,还没看到东西跑起来,兴致可能就已经没了。
这次三个项目跑完,我觉得Evolving比较适合做的,恰好就是这段从0到1的工作:
先把模糊的想法变成一个可以摸到、可以试玩、也可以继续修改的版本。
它不替你决定什么才算好产品,但能让你更早看到自己的想法到底值不值得继续做。
所以,如果你手里也躺着一个一直没动手的小东西,可以是一款小游戏、一个浏览器扩展,或者某个只解决自己问题的小工具,倒不用先给它准备一份很专业的需求文档。
像我这次一样,把你真正想要什么说清楚,然后把第一版交给它跑一遍就行。
模型ID和接入方式我已经放在前面了。
至于它适不适合你,与其再看几张跑分表,不如亲手给它安排一份工作。
好了,今天的分享就到这里,如果对此感兴趣的呢,可以去尝试自己动手做一做呢~
