大家好,我使用Agent有一段时间了,因为开发一个项目,每天都是高频高时长的使用,产生了一点自己使用的心得,所以想跟大家聊聊如何高效的使用Agent,欢迎讨论。首先,说说我目前在用哪些Agent。本地部署AgentHermes(主力使用),开发项目全程使用。OpenClaw(配合使用),处理辅助性任务。Mini-Agent(Sub-Agent),通过ACP接口,协同Hermes处理任务,处理能力可圈可点。QClaw,主要用于疑难解答,消耗免费送的4000万 Token,腾讯还是挺敞亮的,并且今天看到官方消息,QClaw走出了国门,在国外多国上线海外版,给个赞!辅助工具IMAIMA,作为知识库,可以通过API被Agent直接调用,实时存储或者调用IMA的知识库和笔记。配置很简单:–请安装 ima 技能
如果想深入了解IMA,欢迎查阅文章:免费50G空间!腾讯Ima帮你从”存知识”升级到”用知识”养成建立个人知识库的习惯很重要,即是对知识的沉淀,同时也能够帮助Agent进化,提升其能力。直入主题,说说如何让Agent更高效的工作。第一点,Agent的问题Agent解决。这是最重要的一点。如果你不是专业的编程人员,不要去解决问题,Agent运行的时候反馈问题,让Agent解决,你可以提供解决问题的路径思路,但是不要动手。有时候Agent反馈问题,换个方式描述任务也许就能够解决,多尝试。有时候不是Agent解决不了,是它思路没打开。第二点,与Agent对话必须细节拉满。不要把Agent处理问题的思路与人脑类比,Agent是通过概率来判断你的对话内容的,默认Agent能够完全理解你的意图,那是最大的错误,起码现在的Agent做不到。这就像跟人对话,如果没有细节,别人也很难判断你说话的意图,描述有细节,是逻辑的基本保证。所以,你要毫无保留的跟Agent沟通,不要让它去猜你的意图。尽量把你想让Agent做的任务,细节描述清楚,尤其是保证你说话的主语保持一致。比如,你说帮我生成一张“中华田园犬”图片,那么后续你对这张图片的主体细节,图片样式描述的时候,主体就都用“中华田园犬”。但也不要描述太多限制条件,影响Agent泛化处理和推理能力。第三点,分解复杂任务。如果任务内容很复杂,最好把任务分解为多个完整的单一任务,结构化描述,让Agent分别处理,可能得到更好的结果当然你把任务整体描述清楚,由Agent去分解任务,你确认后再执行也是可以的。推荐由人来分解任务。任务过于复杂,上下文过长,会稀释Agent注意力,遗漏信息。复杂任务含有多个子任务和隐含需求,当目标不明确、逻辑关系不强、描述模糊、前后矛盾的时候,Agent会感到困惑。一次性塞太复杂的任务,可能丢了西瓜捡芝麻,核心需求没处理,只处理了边缘需求。长文本处理可能增加Token消耗,当发生错误的时候,Agent可能不断滚动请求,导致大量Token被无效消耗。第四点,人机协同。在处理复杂任务的时候,让Agent设置中间检查点,不要一键到底,及时纠正偏差,避免整个任务偏差太大,导致无效处理。第五点,循环检查。Agent处理完成一个任务后,不要一个个点去抠任务完成的情况,排查错误,让Agent创建检查清单,逐项排查。可以如下描述:创建任务检查清单,检查清单给我确认后再执行。根据检查清单全面排查全部错误,修正错误后,再全面排查一遍,如再次发现错误,继续全面排查,直到没有错误。经过这样的一个循环检查程序,能够高效排查错误,优化处理结果。以上内容,是我与Agent协同工作这段时间得到的一点经验体会,水平有限,读者朋友如有其它方面的心得,欢迎交流。一篇论文给大家参考。论文题目为《Lost in the Middle: How Language Models Use Long Contexts》的论文系统地研究了语言模型如何利用长上下文信息。下载地址:https://arxiv.org/pdf/2307.03172