先放源码,非常简单,使用nodejs和原生javascript fetch调用大模型的HTTP接口(使用OpenAI传统chat接口),完成监控摄像头的运营管理的小例子。
注:测试使用的是随便找的一家平台服务商,用的deepseek和minimax模型测试,其它兼容OpenAI接口规范的一样。并且这段代码也是另一个编程智能体写的——Visual Studio Code的Copilot免费额度生成。仅作概念讲解,勿无脑照搬。
其主要逻辑就是:
- 定义给AI调用的工具(用人话给AI描述工具是干什么的,再映射到真实程序是怎样实现的,类似现在大火的Skills但那个要更复杂些)
- 从命令行输入读取用户输入命令(并记住所有的输入输出的文字,类似会话上下文的概念,实际工程要更复杂)
- 封装请求通过HTTP接口发给大模型平台(OpenAI定义的事实上的标准API接口格式,虽然它家出了新版本接口)
- 平台返回大模型生成的文字(或匹配到工具调用参数)
- 执行工具调用,并将工具的输出归并再发给大模型
- 多次循环调用工具直到不再需要工具调用
- 大模型综合分析所有输入和输出得出结论
虽然简单,但已经描述清楚一个典型的智能体底下究竟干了什么——利用大模型来理解自然语言的需求输入,再综合分析人和机器的各种输入、输出来得出结果。
大模型不干具体的活,它只是负责分析需求输入,找工具人干活,再拼装零碎的中间输出内容,形成最后输出。妥妥的产品经理是不是,哈哈哈哈……
1 | import { execSync } from 'child_process'; |
实际测试日志,可以清晰看到大模型的思维和决策路线:
它能理解你要干什么,能自动解析任务格式的摄像头数据结构并找到你说的“前台”“办公室”是指的摄像头名称,能理解你工具里定义的检测摄像头状态就是用ffplay去尝试播放一下再看日志输出,能解析出日志里播放状态和播放的视频参数格式。
如果使用传统编码方法,你可能需要定义复杂的正则匹配或者更专业一些的编程技巧(例如:tcp连接探测,rtsp协议分析等等),而AI智能体,可以通过有限的信息综合上下文进行判断,容错性也更高。
1 | node test.js |

