大模型Agent在AIOps运维场景的实践 任志强字节跳动智能运维架构师 任志强 字节跳动智能运维架构师 多年专注AIOps的实施和建设,帮助企业运维数字化建设和转型在字节主要负责AIOps解决方案的设计和实施参与信通院AIOps和可观测性等多个工具成熟度标准编写 01A g e n t的 背 景 目录contents 02A g e n t的 建 设 实 践 03A g e n t的 场 景 建 设 实 践 04Agent未 来展望 PART01Agent的背景 大模型下的Agent LLMbaseAgent •LLM:通用人工智能-语料->互联网-NLP->多模态 •Agent = LLM+Planning+Feedback+Tool use•在LLM语境下,Agent可以理解为某种能自主理解、规划决策、执行复杂任务的智能体。•Agent并非ChatGPT升级版,它不仅告诉你“如何做”,更会帮你去做。如果CoPilot是副驾驶,那么Agent就是主驾驶。 设想一个由智能代理构成的和谐社会,人类也可以参与其中。场景取材自《原神》中的海灯节。 Agent的一个框架 1.帮助用户从日常任务、重复劳动中解脱出来,减轻人类的工作压力,提高解决任务的效率; 2.不再需要用户提出显式的低级指令,就可以完全自主的分析、规划、解决问题; 3.在解放用户的双手以后,尝试解放大脑:在前沿科学领域充分发挥潜能,完成创新性的、探索性的工作。 常见的Agent分类 生成式LLM->单Agent->多Agent •自治的任务Agent->反思/拆解/规划+自动工具执行- >Agent •思考的快与慢:sys1 sys2->复杂任务->Agent•人类简史:穴居人vs智人->量变引质变,多样性,社会性->Multi-Agent•记忆脑:工作记忆、笔记:短/长memory;做梦->FT Agent的通用框架 •AutoGPT•BabyAGI•Langfuse•HuggingGPT•XAgent:“双循环”结合;plan,dispatch,act•AutoGen•MetaGPT•ChatDev•... 比传统AIOps的优势 1.流程:使用Agent的planning的能力,实现分析/执行等任务的自动化执行。 2.整合:工具和数据的整合,可以利用反思和工具调用,实现传统工具的调用,不同类型数据自动分析。 3.知识:利用LLM和RAG的方式,充分利用公域和私域的知识,能更好的优化运维相关的分析和操作场景 4.交互:从web页面的交互方式,向“对话”的交互方式转变,降低交互复杂度。 5.编程:通过编程能力,可以实现故障自愈,性能优化等场景。 LLM Agent基础架构 LLM Agent的常用范式/方法 基于可编排的平台,使用常用的范式和工具,根据具体的运维场景进行定制化的编排。 反思(Reflection) 工具使用(Tool Use) LLM检查自己的工作,以提出改进方法。通过反思提升单次回答的效果。与CoT相似 LLM拥有网络搜索、代码执行或任何其他功能来帮助其收集信息、采取行动或处理数据。可使用ReAct和function call的方式 协作方式:对话+工具+反思->角色+协作方式+规划/流程+具身创新性:知识要补充+更新,生成式的模型的Temperature要合理,prompt要引导自学习:要格式化总结知识和问答突破token限制:attention重构,RAG+compress,大模型重构 记忆管理(RAG/prompt) 规划计划(Planning) LLM通过检索等方式补充知识,方式回答的幻觉,更新最新的知识。prompt给予短期的记忆,给予指令。 LLM提出并执行一个多步骤计划来实现目标。可以先规划后执行,也可以逐步反思和任务拆解来规划任务。 环境互动/人工介入 多智能体协作(Multi-Agent) 通过感知和工具的使用,实现对于环境感知和互动,并通过工具的学习,实现工具库。通过人工介入实现半自治。 多个AI智能体一起工作,分配任务并讨论和辩论想法,以提出比单个智能体更好的解决方案。 多Agent协作 多Agent的主要困境 •角色多样性、区分度:LLM理解和区分难•网络式协作策略难:流程/主持人vs自治/社群网络vs对抗•协作方式多样/复杂,难于控制:计划->执行,竞争,共同,补充,否定,指派/驳回,结对,委托,辩论,决策,投票/会签......•通讯方式多变,记忆长:主动对话vs监听/订阅,角色记忆vs共享记忆•具身行动:环境互动,需大量工具,难于做到具身行动•容易进入无限循环:多角色复杂任务容易导致进入多层梦境,无法完结•人机交互策略僵化:人工介入策略通用性不强,难于判断交互时机,交互目标,协作策略选择等 大模型Agent在运维的应用 单Agent 运维咨询 运维咨询(知识/信息/数据)运维可视化-指标/日志/告警查询解析异常风险分析.....多Agent故障诊断/根因分析故障修复..... 故障排查 先使用单Agent,充分利用tool调用异常检测:告警,机器学习/深度学习,基于LLM多模态根因分析:流程+规则,算法,流程+规则+算法,LLM规划反思+工具规划计划:zero-shot,one-shot, few-shotcot, tot, gotReAct, self-ask,plan-and-execute 问题:近日应用app001发现应用响应迟钝,部分响应超过了7秒,请帮忙定位故障 智能问答的场景 调用->Agent固有流程->Agent反思检索前:拆分-从小到大/格式拆分/语义合并多模态-图片/表格/KG检索中:问题重写-HyDE,重写-检索-读取,Step-Back,Query2doc多路检索-向量,关键词,搜索引擎,图搜索,数据检索,元数据Embedding-动态,可微调 检索后: 重排-相似性重排/LLM的重排过滤-相似过滤/交叉编码/LLM过滤压缩-LLM总结,stuff/mapreduce/refine生成-cot,incontext, ..... 反思评估: Self-Reflective RAG,CRAG,Adaptive RAGMetric评价ragas, trueLens 多Agent故障修复 使用多Agent的方式来实现故障的会诊,通过主持人计划/反思,驱动不同的角色使用工具,进行诊断,并通过工具使用和编码能力完成故障处置和修 多Agent的计划与协同 1.根据不同领域的配置不同角色的Agent,专注角色特点,领域知识/工具,解决领域问题2.使用“主持人”模式,实现计划的编排,角色之间的调度,可减少利用“协作”和“对抗/反思” Agent下的知识、工具与环境 1.通过FT和RAG讲知识进行增强,如故障库2.利用传统工具+模型建立工具箱,形成“环境”3.引入KG,如:动态拓扑 基于大模型的多模态异常检测 1.基于Transformer架构,引入多模态信息进行异常检测 智能问答-oncall-整体场景 问题拦截:针对知识咨询和信息检索的需求,在于机器人单聊中,通过RAG和text2sql等技术,利用知识库/搜索引擎,实现多模态知识的回答。如果无法回答问题,人工创建工单,进入下个阶段工单辅助:在创建工单后,oncall在问题的知识问答外,增加对运维工具的使用,实现辅助SRE进行故障的排查、分析和修复。 针对Agent在AIOps的应用还有很远的路要走 未来规划 多模型的糅合+FT LLM + RL.... 将强化学习和大模型结合起来,尤其是在规划计划和环境互动的层面,是否可以寻找到更好的解题路径,这里还是有很多的想象空间。 对于一个agent可以考虑根据需要选择合适的模型;使用FT对领域模型的能力进行持续的优化;使用中小模型在领域内使用。 数据+安全 业务的持续演进 AI从训练到应用,都需要“数据”,收集整理更多的数据,并进行达标是持续优化的基础。安全,模型的使用安全+数据安全。 RAG和工具的使用等支撑的业务场景,还有很多技术优化的可能,针对业务设计需要持续的更新演进 我们是字节跳动STE团队(SystemTechnologies&Engineering,系统技术与工程),聚焦系统技术领域的前沿技术动态,技术创新与实践、行业技术热点等,期待与你的交流。 欢迎关注【字节跳动SYS Tech】公众号 Thanks 高效运维社区DevOps时代 荣誉出品 THANKS 感谢大家观看