Agent搭建记录
今天开始用codex在自己的opsAgent搭建web Agent的功能。
目的是在日常的运维工作中需要做一些重复性的、费时的网页点击操作配置。Agent要能接受我输入的自然语言然后完成相应的动作。
在使用codex的时候目前要在完成一轮对话后及时检查codex都做了什么,怎么做的。今天做的时候发现在让codex做了几轮后没有搭建基于llm的核心能力,而是通过代码判断固定逻辑实现的。浪费了一些token(用gpt5.5后感觉token消耗的变快了...)
实际上我在工作中需要的确实是固定的执行工作流sop,用playwright脚本也能实现。但不顺应发展趋势,且灵活性较差。目前想法是搭建出类似browser use的功能,然后需要新的工作流的时候,用web agent完成操作,成功后让agent总结生成skill或者对应的提示词之后可以复用。免去了自己分析DOM、写代码搭建的过程。
实际搭建agent会遇到一些问题,比如codex最开始设置的超时时间不合理,需要根据实际测试以及网站相应速度进行调整。codex做出的人机交互功能(一些敏感操作需要人工确认)会把当前网站的会话关闭,接收到人类指令后再重头开始。搭建出的功能暂不支持点击iframe中的元素。以上问题还暂未解决,因为额度用没了,这周的额度只剩4%了。。。
在vibe coding完成一些阶段的功能要定时审查,可以让codex写出一份review-report文档,包括做了什么,为什么做,怎么做的,怎么平衡的优劣等。然后基于review-report看代码,跑测试,边学边做。看代码是一个比较费时间的事。很需要一个工具能够自动分析代码,把一个项目的结构讲的清清楚楚,能够让本低智商人类快速吸收。前两天看到gemini在github repo上上线了个实现类似功能的工具,但是看完后并没有尝试过。
搭建web agent的过程中也更了解到昨天的记录与调研是有价值的。codex是很强大,但是用agent搭建另一个agent,要明确告诉他采用什么样的思想,比如要用ReAct框架,接收到自然语言指令 -> 拆解任务 -> 执行web动作 -> 解析DOM ->继续执行的循环,对于llm的输入用pydantic构建schema等。要学会知道ai怎么完成一件事。
对ReAct框架的理解
找了个github仓库看了看面试题,自己给自己回答一下:
ReAct不同于传统的chatbot只能进行思考和对话,通过推理->执行->反馈->循环,让ReAct能够处理复杂任务,减少幻觉。llm收到自然语言指令后解析指令,然后进行推理思考拆解任务,根据对应的任务调用对应的执行工具,工具执行后再接受工具的执行结果然后再继续思考执行直到任务成功完成。
优势在于能够减少幻觉,任务执行更精确,善于处理复杂任务,适合需要任务拆解的task
不足在于上下文会很长,token消耗多;如果最开始的决策不对后会陷入死胡同;会陷入死循环;工具的选择会有错误;真正执行的时候会存在安全问题
对应不足的解决思路:
- 上下文压缩,分层搭建记忆系统,按需加载记忆,将记忆分为短期、长期、会话记忆
- ToT、self-reflection解决最开始决策错误的问题,树形结构使得agent支持回溯,self-reflection能够自我优化
- 设定agent的必要结束约束,比如最长执行时间、执行步数、重试次数等。设置任务完成需要达到的判断条件
- 将工具分类,做工具register,做router
- 工具执行按照风险等级分类,高风险需要人类确认,执行前先做dry run,执行动作留痕
小结
it ain't all good, but it ain't all bad either.
最近效率比较低,还得学习怎么和AI相处,怎么和自己battle
不要懒于思考,不要停止思考
做agent应用开发不知道是否要了解transformer、多模态模型、强化学习、模型微调等知识,这些之后找时间也要看一下
加油