最近在用多模态AI辅助标注图片里的人、车,生成YOLO标注文件。
我让AI调用CLI的方法是,首先编写执行过程可确定的CLI应用程序,然后告诉AI该CLI的合法参数,本以为2023年12月有了tools之后,参数传递可以很稳定,没想到它有时候也会乱漂。

skill本质上自适应的tools,它从海量的tools里选择与任务最相关的几个tools发给大模型,避免过多过多token消耗。
css适配多浏览器,比如要实现屏幕旋转功能,编写函数在Firefox实现后,同样的函数在IE不适配,那就检查当前的浏览器,再if、else替换其他的适配函数。
任务的工作量在每做之前工程师是可以预估的,AI CLI开发完全没法Debug。
网站登陆界面最简单50行能实现,但是防范各种异常情况代码得暴增到500行以上。
传统程序逻辑很稳定,一次执行报错,重复运行依旧会报错,但 AI 命令行工具开发完全不一样,想让模型输出标准合法参数都格外费劲,实际踩过这些坑:
1、AI tools调用的逻辑里,前面10次调用正常,第11次可能失败
下面是合法的输出
[{"L": "car", "x": 0.08, "y": 0.55, "w": 0.15, "h": 0.08},{"L": "car", "x": 0.85, "y": 0.55, "w": 0.15, "h": 0.08}]
错误时可能输出下面待渲染格式,你说它错嘛,又好像没有
[{\n"L": "car", \n"x": 0.08, \n"y": 0.55, \n"w": 0.15, \n"h": 0.08},\n{\n"L": "car", \n"x": 0.85, \n"y": 0.55, \n"w": 0.15, \n"h": 0.08}]
还可能是下面节省token的方式,第三种情况还好解决,在tools的description给AI一个例子就能很稳定。但是输出里迁入 "\n" 修改提示词就很麻烦,至于原因看 “第3点”
["L": ["car", "car"],"x": [0.08, 0.85],"y": [0.55, 0.55],"w": [0.15, 0.15],"h": [0.08, 0.08],]
2、同样的prompt和tools描述在不同厂家AI模型返回的结果有差异,反复选择几个AI都适配的prompt
假设有3个待框选的对象,我希望每个为每个对象调用一次tools,同一个prompt模型A能调用多次prompt,模型B只调用一次,以至于我怀疑模型B不支持多次tools调用,修改tools description要求按照list/array方式传递
3、由于存在 “1” 所以 “2“ 单纯修改提示词,也不能保证持续执行
4、同一个厂家的大模型,模型A和模型B对tools的描述要求不一致、或者说tools兼容性能有差异,模型A能接受参数是json数值、模型B智能多维度参数

END
来源:程序员写个解
夜雨聆风