我是如何使用Ai Agent的?
从聊天窗口到 Agent 的转变
在大模型出来很长时间里,我也和大家一样,只会使用聊天对话框和ai交流。这么做当然很大程度上满足了我提问的需求。我特别喜欢提问,一有不懂的地方就想问。包括执行代码什么的。但是在代码问题上,利用聊天窗口进行交流就会产生一个很严重的问题:你每次发现代码有什么问题的时候,都需要一遍一遍的把错误信息复制给聊天机器人,然后再由它回答。最后要反复很多次,甚至我有多次“鬼打墙”的经历,就是问着问着,ai给我的回答又回到原先的老路上。而这个回答明显是走不通的。所以效率很低很低。
直到我发现并开始使用了Agent工具以后,这个效率就大大提高了。当然,也使得我对整个过程的了解程度大大降低。我可能只知道个结果,至于代码是怎么实现我的要求的,我知之甚微。当然,可能我也不需要太了解其中的细节。
亲手打造 Agent 与发现 cli 工具
其实最早使用Agent还是跟ai聊天后生成的。大概是去年什么时候,我想说自己造一个Agent。我原本以为这很复杂很难,结果我去问ai,居然并不难。这个Agent是用py来搭建的。本质上还是个聊天机器人。但是它有记忆,而且它可以由我来塑造个性,也就是Soul。这个就很有意思了。在ai聊天机器人的帮助下,我应该那时候不用一天就搭建好了。然后我生成了几个Agent,赋予了不同的角色。
但是当我发现了cli工具以后,我就完全冷遇了这些我手造的机器人。我原本想等它们进化的。但是后来我实在无瑕顾及他们。
Obsidian 与 cli 的深度结合
我是怎么使用我的cli工具的呢?就是用obsidian这个笔记本工具。这个笔记本工具有一个好处:你不需要另外保存,你只要在上面打字,它就随时自动保存。我毋须增加额外的保存动作。还有一个是它的格式足够满足我的阅览需求。markdown格式是ai的通用格式嘛,而obsidian天然就使用markdown格式。
我建了若干仓库,其中第一个仓库大概便是一个问答库。
我把问题以文件名的方式写进问答库中。我可以一口气提无数的问题,然后把cli工具调出来,让它进行统一回答。如果在回答中,我发现了还有我不明白的地方,我可以添加注释,然后它就会在原地给我回答。反复再三。这个文件就会把我想了解的问题覆盖的很全面了。直到我觉得我已经掌握了这个问题的答案,我就会把这个问题进行归档。
本地问答库的优势:深度思索与追问
这种问答的好处就是它的所有过程都会保存在你的电脑上,你随时可以调阅。即便以后你忘记了,还是可以拿出来重新阅读一遍。如果问答是在聊天机器人上,你当然可以查阅聊天记录,但是非常麻烦。因为我试过很多次,它似乎不支持搜索。当然你可以说那就重问一遍呗。但是重问一遍,就意味着我放弃了当时的思索过程。还有包括追问的情况。如果你单独问,它只是一个单独的问题,它无法和母问题形成一个有机的整体。我特别喜欢这个追问的功能。因为它真的可以查缺补漏。
Agent 的核查功能与复杂配置
我觉得它还有一个很强大的功能就是调取数据。当然,你不要认为agent可以为你调出所有你想要的数据。这是不可能的。它调取的数据也是从网上搜来的。而网上的数据,本身就是不靠谱的。但是agent有一个功能,就是它有核查功能。如果你用它发现多个来源都是一致的时候,那么这个答案你就可以较大概率的去相信和接受了。
龙虾刚出来的时候,我也想去配置一个。但是发现配置实在很麻烦。怎么试都试不出一个结果来。我只好放弃。可是后来突然有一天我想起来,这个配置文件的工作不是交给cli工具来做吗?于是我就试着让cli替我做文件配置,还真的配成了。龙虾果然活了。但是不知道是不是大模型太弱的缘故,我并不怎么使用龙虾。包括后来的hermes agent,我也是用cli工具安装了,但是却基本上不怎么使用它。因为我觉得这些智能体,相对我的cli工具来说,似乎还是太弱了。可能本身的模型不行吧。
重新定义 cli:自然语言的力量
所谓的cli工具,其实就是命令行嘛。对很多人来说,可能命令行这个界面太古早了,太让人不适应了。但是要知道cli和真正的命令行是有本质的不同的。传统的命令行,你必须要用非常严格的语法去写语句,然后你就需要去记诵很多的命令。好比dos的时代,我们要记忆dir,move, copy, delete命令,和语法。这会增加很大的学习负担。但是在cli下,你完全不需要去记忆这些。你用自然语言就可以告诉cli应该怎么去写这些命令。真的是很方便。
实战案例:降雨量图与橡胶价格分析
我手上积攒了从2012年以来泰国的降雨量图,注意是降雨量图而不是降雨量数据。我拿它和ru的价格数据做了一个比较研究。要知道,在过去,如果靠人工来做这项工作,那是非常繁重的,几乎不可能完成的。但是通过cli工具,这项工作变得轻松多了。当然,我需要不断的去调试过程和结果,以使它更符合事实。
如果你对本文提到的概念有什么疑问,欢迎在评论区提出。