近来AI的热潮一波又一波,MCP,RAG,SKILL等各种专业词汇频繁出现在视野里,也看到了很多人在社交媒体发布一些利用AI提高工作效率的教程。
作为传统守旧派,大多数时候我还是停留在使用网页问答版AI,因为更多的需求是有问题就问,或者让AI写个简单的脚本,没有大型的开发需求,像OpenClaw,cursor,claude这种火爆产品也只是停留在看看文章别人是怎么用的,没有上手调试过。
正好上周有个活,任务多,但是格式较为固定,步骤重复繁杂,人工来做相当耗费时间,并且效率极低,于是决定用用AI提高一下生产力。
这项任务的内容是要为4000个POC数据包编写检测规则。POC数据包类似于这种
1 | POST /kylin/api/projects HTTP/1.1 |
需要编写规则格式如下
1 | signature custom-rce-apache-kylin-cve-2022-24697 { |
匹配规则很简单,主要分为两部分,一是漏洞利用路径,二是去匹配payload,两者都命中的话就告警。
如果数量少的话,人工去做还能接受,但是4000条数据包,肯定是要想点办法去提高一下效率的。
一开始想着用程序去自动化,其实不太好做,首先请求包分为GET和POST,有时payload出现在URI路径,有时出现在请求体里,有时还出现在UA头里,程序里只能写死,没办法很好去适配。但是AI能够理解自然语义,看起来是较优解。
0x01 问答式
最初的想法就是利用网页AI,问答形式。开启一个新的对话,先在这个对话先输入提示词,然后接下来给它数据包,它来回复sig规则,拿到sig规则再去测试这条规则是否正确。流程如下
1 | 用户输入提示词 --》 用户输入数据包 --》 AI回复sig规则 --》 用户验证 |
但是很快就发现了一个问题,它在思考回复内容的时候我是无事可做的,只能等,并且我需要频繁切换页面,需要给它输入POC数据包,需要粘贴出规则去验证。如果第一次它生成了一个错误的答案,还得让它重新思考,这套验证动作又得重新做一遍,感觉就很笨笨的,一直在重复没用的动作。
0x02 半自动
这时候我希望能自动输入内容,然后让大模型一直生成规则,我只需要去粘贴输出去验证就行了。
于是写了个python脚本,这个脚本流程大概就是逐行读取本地POC数据包,发送给大模型的API接口,然后返回sig规则。这样就多线程了,脚本跑着,大模型一边生成,我一边验证,如果出现错误规则最后再统一处理。
为了让大模型能输出固定格式的规则,肯定是需要先给它一段提示词的。由于发现我用的那个API没法固定会话,也就是每次发送都是新开启一轮对话,所以初始的做法是把提示词编码在python脚本里,每次发送POC数据包的时候都带上这段提示词,让大模型知道我想要做的事情。交互了几次后发现,这个重复的动作也比较蠢,而且很消耗token,无法接受。开始找解决方法,如果是专业的agent工程师可能会很有经验的解决,但是作为刚入门agent的小白,没有想到如何通过优化整体架构来解决这个问题,最后是选择了阿里百炼平台搭建一个智能体。
平台上可以配置提示词,然后点击发布,发布后在python脚本里配置应用ID就可以使用了。可能消耗的token差不多,但是可以不用每次发送都带着提示词。
现在通过智能体和脚本就实现了半自动,我只需要粘贴python脚本的输出去验证就可以了。
流程如下
1 | 脚本读取POC数据包输入 ---》 智能体 --》输出sig规则 (线程1) |
0x03 全自动
但是用着用着还是不太满足,实际上验证规则也是很重复的事情,就是把规则粘贴进去,执行check脚本,看日志中有无告警就行了,这件事我能否也交给AI去做完全解放人,实现全自动化呢?
想要实现全自动化有一个难点,要让智能体长出”手”。
也就是能够让它能够在我的服务器上执行验证这个动作。为了让智能体长出手,很自然而然的想到MCP协议,但是在这里我不太想用MCP,我想要不那么麻烦的去实现这个自动化场景,于其自己搭一个MCP服务器,还不如搭一个n8n更顺手:kissing_heart:。
我的想法是想让智能体能调用脚本,用一个脚本去执行命令,一个脚本获取日志就行了。如果是这样的话就不能用阿里百炼这种平台化的智能体了,因为需要一个能够调用本地脚本的智能体,在我之前的了解中claude code和cursor都是能够做到这件事的,但是毕竟是国外的软件,要买账号,要挂代理,主要是为了验证一个demo很不值得,所以选择了国内的trae去平替。
安装完之后就是漫长的编写提示词以及调试脚本的过程,其实还挺费事,这里我们直接化简流程,只记录关键部分。
创建智能体
一共是创建了两个智能体,分别用于 编写规则 和 验证规则

规则编写智能体的workflow是
1 | 读取excel里的POC数据 |

校验智能体的workflow是
1 | 传输excel里的规则到远程服务器 |
注册skill和MCP
可以看到,两个智能体都需要读取写入本地excel文件和调用脚本以便能和远程服务器进行交互。
经过测试,没开启excel MCP的trae是读不太懂excel里的内容的,它为了读懂会自己写脚本然后在沙箱里运行,如果不想让大量一次使用的脚本污染项目文件夹的话,可以使用市场里已经配置好的excel MCP,直接添加启用就可以了。
此外,为了能让智能体知道什么场景该调用哪个脚本, 我注册了两个skill

一个是传输规则技能,调用传输脚本

一个是获取日志技能,传递不同参数获取不同日志
solo coder模式

trae有个solo coder模式,具备调用其它智能体的能力,这里我就让它当整个系统的大脑,负责规划拆解任务和调用其它智能体
效果展示

可以看到,solo coder会先给每个智能体分配任务,该编写的去编写,该校验的去校验
然后每个智能体开始干活

直到任务完成
现在 从生成 到 校验 到 修复 到 写入,只需一条指令,即可让这个Mult-Agent系统去全自动化完成。流程如下
1 | 用户输入指令 --》 solo coder拆解分配任务 --》 编写智能编写规则 --》 校验智能体校验,修复规则 --》 正确的规则写入 (线程1) |
完全解放人类双手,输入完指令只需等任务完成即可,在这期间可以去干别的事。
当然,这里只是实现一个简单的demo,在我实际使用起来还是有很多问题
比如:
每执行一步都需要思考几十秒,整套流程下来耗时反而比半自动耗时要长,需要去优化流程,减少这套系统的思考次数。
不听话,即使提示词已经再三强调格式问题,还是会出幻觉导致花费大幅文章不停重复的去处理格式问题而不是匹配内容,尤其是当某个会话出现一次被带入上下文后,甚至之后的回复都会出现这个问题,需要新开启一个会话才能解决。
还是会尝试自己去写脚本解决问题,一个任务完成后会发现文件夹里多出十几个脚本

0x04 总结
通过trae搭建了一套Mult-Agent系统去全自动化编写检测规则。
其实对能跑通这个demo个人还是挺爽的,虽然效率不够,但是作为一个小玩具还是合格的,带来了很多思路。
并且只有切身去体验调试,才能知道在自己使用下,大模型的能力边界在哪里。比如可能这个模型就是很nb,但是在我的使用下,它就成为了一个总是记不住提示词的捣蛋鬼,也有可能是我的提示词写的有问题,也有可能是它就是不适合处理这个场景。为了弥补这个缺点,我的做法是会在模型输出之后,用代码的逻辑去限制一层,去校验一遍,以减少不确定性,确保每个输出节点都是能被下一个节点正确使用的格式。