正文
现在我要做一个“传入容器名然后去火焰图的api里获取火焰图链接”的效果:
因为skill的文件夹格式是比较固定的,所以先创建一个文件夹:
1 | skill-create_flamegraph_task/ |
其中 skill.md长这样:
1 | --- |
skill.md的用途就是:
- 这个 skill 的目的是什么?(几句话)
- 何时应该使用这个 skill ?
- 实际中如何使用这个 skill ?(引用所有资源文件)
- 用祈使句,或者是类似“To extract parameters; To call the convert_date.py script; To return the result.”这样适合复杂逻辑的不定式。
然后再去create_task.py 就正常写逻辑就行,代码我就不放了。
整个效果如图:
写完之后,把这个文件夹打包成.zip形式,然后上传到ai平台里,流程这样:
1 | Skill代码 → 打包成zip → 上传到AI平台 → 平台加载Skill → 用户通过Tika使用 |

然后就可以用起来了,甚至可以多个skill混搭使用,效果如图:

感想
- 首先感觉skill跟不同的脚本还是不同的,首先skill的运行模式太宽松了,而脚本对启动的参数还是有一定的要求的。其次对参数的格式限制用脚本写很难受,但是在skill里用中文在skill.md写一下就行了,效果也非常好。
- 目前ai还不能直接改你的skill内容,比如你skill的py里有一个常量,想从A变成B,你跟AI说改一下,ai做不到因为他没权限,还是需要你手动改好然后上传上去。
- 这俩skill里我硬编码了我账号的密钥,这代表我这个skill一旦上架skill market,别人随便用我的密钥,搞出了事儿然后让我背锅,为了解决这个问题要用到skill-sdk,不过我还没深入研究这块,或者把密钥改成常量。
- 如果你的代码里没有写并发,那么你传入多个参数,ai平台会串行的执行多次skill。
- 我公司的ai平台在运行这些skill的时候还是慢,我写过一个skill,就是大故障的时候,拉“故障找人地图”文档里的值班人以及对应的puo、安全等等20多号人进群,但是给ai下发命令后足足跑了2~3分钟,有这个时间我自己都拉完了。
- 回答一下文章开头的“为啥ai为啥不能当定时任务?”,因为ai没有状态(虽然他有上下文的能力),而且它每次调用有严格的时间限制,不能无法执行长时间运行的进程。所以它还是一个网页,说完话提交就OK。