在白嫖cloudfare worker和搭建 公网服务的时候发现api.cloudflare.com无法访问了于是乎又搭了一个worker,大家看到了可以直接用:ddns.nb404.cn 访问它就相当于访问.cloudflare.com,又可以愉快白嫖了! 原文链接: cloudflare的api无法访问问题 作者: lixusocool
一文读懂AI自动化核心:Workflow与Agent的区别,建议收藏
今天我们聊一个近期 AI 圈里的热门话题 — 和 Agent**。** 一提到 AI,大家总说“让 AI 帮我干活”,可真要让 AI 落地做事,离不开 Workflow 与 。这俩到底在 AI 里扮演了什么角色,又有什么区别? 今天我们就来详细聊聊**,揭开 AI 自动化的秘密**。 1 Workflow:深耕多年的“流程老管家” Workflow,也叫。很多人以为它是 AI 带火的新词,其实它早就在各行业成熟应用了。比如: 职场人熟悉的审批流:请假时,从提交申请到审批通过,每一步都有固定顺序,缺一不可; 程序员常用的持续集成:代码提交后,自动触发编译→测试→部署,全程按预设步骤走,无需人工干预; 这些场景的本质就是提前把规则写死,严格按照预设步骤执行。就像工厂里的流水线,螺丝拧几圈、零件放哪里,早就定好了,工人只要按流程走就行。 它的核心工作流也不复杂,主要分为四步: 触发:谁来启动这条流程? 满足某个条件就自动开跑,比如点击提交、到达某个时间点、检测到有文件上传。 编排:接下来按哪条路走? 先做什么、后做什么,遇到不同情况走哪条分支,都提前设计好,相当于流程的“路线图”。 执行:具体怎么干活? 按照路线图真正去办事:比如提交后的发送消息通知、计算汇总数据、调用外部接口等,把每一步操作落地。 结束:怎么收尾? 流程跑完后,再把结果告知相关人,更新状态、保存记录,让这件事有一个完整闭环。 可以说,传统 Workflow 就像一套按部就班、严谨执行的固定“剧本”,不会自主思考、也不会灵活变通。 而当 AI 时代到来,Workflow 也迎来了新的角色与价值。 AI 的落地离不开(LLM),但大模型再智能,也只是一个擅长理解生成、却不懂统筹调度的“超级大脑”。当我们需要把零散的思考变成可执行的步骤时,就需要一个统一调度的角色 — Workflow。它会决定什么时候调用大模型、让它处理什么内容、结果传给谁、下一步怎么走。 正是这样,传统工作流才真正具备了理解意图、生成内容的智能能力,升级为 AI Workflow。 比如 AI 智能客服,它的流程非常清晰: 用户咨询 → 大模型识别意图 → 生成应对答案 → 回复用户。 还有常用的 AI 生成社交文案的流程: 输入需求 → 大模型提取关键词 → 生成文案 → 人工微调 → 发布 ...
Agent-browser浏览器自动化CLI
跨平台、功能丰富、极快:重新定义AI上下文通信的优先紧凑文本输出。 对于者来说,在开发AI Agent时与浏览器交互是一个频繁的过程。让AI Agent更高效地操作浏览器是一个具有挑战性的问题。最近,在搜索AI测试解决方案时,我发现了Vercel开源的agent-browser,这是一款专为AI Agent设计的自动化CLI。 agent-的特性: 基于引用:快照返回带有引用的可访问树。 Agent优先:高效利用AI上下文,节省token。 会话:支持多个具有独立身份验证的隔离浏览器实例。 功能完整:支持超过50个命令,包括导航、表单操作和截图。 跨平台:支持macOS、Linux和Windows平台。 1、安装agent-browser 在安装agent-browser之前,请确保您的计算机上已安装Node.js。 在命令行中输入以下命令。-g选项表示全局安装。 npm install -g agent-browser 成功安装agent-browser CLI后,继续输入命令agent-browser install,这将开始下载Chromium浏览器。 安装Chromium浏览器... 需要安装以下软件包: [email protected] 确定继续?(y) y 成功安装Chromium浏览器后,命令行将输出成功安装的消息。 正在下载Chrome for Testing 145.0.7632.6 (playwright chromium v1208)... 162.3 MiB [====================] 100% 0.0s ... ✓ Chromium安装成功 2、使用agent-browser 2.1 打开网页 agent-browser open https://agent-browser.dev/ 输出: ✓ 无头浏览器自动化 for AI https://agent-browser.dev/ 2.2 获取当前网页的可访问树 agent-browser snapshot -i 输出: - 链接 "Made with love by Vercel" [ref=e1] - 链接 "agent-browser" [ref=e2] - 链接 "16k" [ref=e3] - 链接 "npm" [ref=e4] ... - 按钮 "Ask AI" [ref=e26] 2.3 使用引用进行交互 agent-browser click @e3 输出: ...
开发板常见问题
问题类型 占比 可预防性 过热降频/关机 40% ⭐⭐⭐⭐⭐(加风扇即可) 电源不足 25% ⭐⭐⭐⭐(换好电源) 内核/驱动崩溃 20% ⭐⭐⭐(升级内核) 内存/存储故障 10% ⭐⭐(依赖硬件质量) 工具/配置错误 5% ⭐⭐⭐⭐(规范操作) 原文链接: 开发板常见问题 作者: lixusocool
浏览器自动化agent体验(brower-use,magentic-ui-fara7B)
优点 缺点 brower-use 使用官网SDK写一个python的api,挺好用的能识别网页绿色框框数量 官网api收费,使用免费的api不太好用github的部署麻烦,没有成功 magentic-ui-fara7B 部署简单成功也能识别绿色框框 调用的qubrid的api,几下就用完了。。。需要设置docker的普通用户权限 原文链接: 浏览器自动化agent体验(brower-use,magentic-ui-fara7B) 作者: lixusocool
成功破解geetestv4极验滑动验证码
花了我两三天,结果还是好的达到了我的预期 (o゜▽゜)o☆[BINGO!] 先看下效果: 如图所示脚本运行可以自动点击join按钮和滑动按钮,按时签到薅羊毛! 我采用的是pyautogui+方式,非传统自动化工具如Selenium和Playwright,不过使用了DrissionPage来获取缺口图和背景图。 已经适配windows和debian系统,最新的浏览器(其他没试)。 分享源码给大家一起学习测试使用(不可用做非法用途!发生的非法事件与本人无关特此声明) :https://github.com/haolixu/geetest-auto :https://gitee.com/haolixu/geetest-auto 那个依赖我没搞定,尝试了pip > requirements.txt和pipreqs . –encoding=utf-8 –force 但是没啥用。。。还是缺依赖,你们有什么好的方法吗? 需要注意的是浏览器需要设置一下: win:D:\浏览器\QQBrowser\QQBrowser.exe -sc=desktopshortcut -fixlaunch=0 —debugging-port=9222 :/usr/bin/qqbrowser-browser-stable %U -sc=desktopshortcut -fixlaunch=0 –remote-debugging-port=9222 原文链接: 成功破解geetestv4极验滑动验证码 作者: lixusocool
基于 ModelScope-Agent 框架构建可落地的大模型 Agent 应用实践
干货分享,感谢您的阅读! 随着大语言(Large Language Model,LLM)能力的持续提升,业界对“让模型真正做事”的期待,已经从单轮对话生成文本,转向了具备自主决策、工具调用与多步执行能力的 Agent(智能体)系统。 在这一演进过程中,一个逐渐清晰的共识是:Agent 并不是“更强的大模型”,而是“以大模型为大脑,外部系统为四肢”的工程系统。 记忆、规划、、行动执行,这些能力本质上并不来自模型本身,而是通过工程框架将模型与外部能力进行组织、编排与约束的结果。正是在这一背景下,围绕 Agent 的研究与工程实践迅速发展,催生了诸如 ReAct、Auto-GPT、LangGraph、MetaGPT 等一系列方法与框架。 我们将聚焦于 ModelScope-Agent 这一由阿里云魔搭社区推出的 框架,从能力结构、运行机制、典型任务示例与工程实践角度,系统解析如何基于该框架构建一个可扩展、可落地的 Agent 应用。 一、为什么 Agent 不等于? 在深入 -Agent 之前,有必要先澄清一个常见误区:Agent ≠ 更大的模型 ≠ 多轮 Prompt。 从系统架构视角来看,一个可用的 Agent 至少包含以下几个核心组件: 推理核心(LLM):负责理解用户意图、进行任务拆解、生成行动决策。 工具系统(Tools / Plugins):提供模型无法直接完成的能力,如搜索、计算、生成图片、调用 API 等。 执行与调度层(Executor / Orchestrator):将模型输出的“意图”转化为真实的函数调用或外部服务请求。 记忆系统(Memory):保存历史对话、中间结果、长期偏好,用于后续决策参考。 规划与反思机制(Planning & Reflection):用于多步骤任务拆解、执行顺序安排,以及失败后的自我修正。 从这个角度看,Agent 是一个系统工程问题,而不是单一模型能力问题。ModelScope-Agent 正是试图在工程层面,为这些能力提供一套可组合、可扩展的实现框架。 二、ModelScope-Agent 框架概览 ModelScope-Agent 是魔搭社区推出的一个 通用 Agent 开发框架,其目标并非“封装一个黑盒 Agent”,而是提供: 标准化的 Agent 抽象 灵活的工具接入机制 可插拔的记忆与规划模块 面向多模态任务的统一调用方式 从系统结构上看(如下图所示,老版本结构,仅供参考): 利用ModelScope-Agent框架开发的Agent,除了可以提供文本创作之外,还能生成图片、视频、语音等内容。单个Agent具有角色扮演、LLM调用、工具使用、规划、记忆等能力。 技术上主要具有以下特点: 简单的Agent实现流程:仅需指定角色描述、大模型名称、工具名列表,即可实现一个Agent应用,框架内部自动实现工具使用、规划、记忆等工作流的编排。 丰富的模型和工具:框架内置丰富的大模型接口,例如Dashscope和Modelscope模型接口,OpenAI模型接口等。内置丰富的工具,例如代码运行、天气查询、文生图、网页解析等,方便定制专属Agent。 统一的接口和高扩展性:框架具有清晰的工具、大模型注册机制,方便用户扩展能力更加丰富的Agent应用。 低耦合性:开发者可以方便地直接使用内置的工具、大模型、记忆等组件,而不需要绑定更上层的Agent。 三、ModelScope-Agent 的核心能力解析 (一)内容生成能力 与许多只聚焦文本任务的 Agent 框架不同,ModelScope-Agent 天然支持多模态工具接入,使 Agent 能够完成: ...
Agent记忆技术及落地实践
做记忆模块搭建的相关研发工作,一开始认为agent的记忆就是维护上下文,应该和chatbot的对话管理差不多,但真的做一段时间之后,才发现和对话管理相比还是区别比较大的,而且记忆模块对agent的实现效果以及后期可扩展性有比较重要的影响。 agent记忆与chatbot上下文的区别 我们拿agent记忆与上下文来作下比较,暂且不考虑长期记忆,就拿短期记忆来作对比,短期记忆(工作记忆)主要就是维护上下文,更官方一点的说法就是上下文工程,那chabot的对话管理不是也是在维护上下文吗?那两者有什么区别呢? 目标 agent记忆和chatbot上下文的目标看上去是一致的:给LLM/agent添加合适的状态来做下一步的决策。但是从服务对象,组织形式和维护重点的扩展来看有比较大的区别。 服务对象 虽然两者都算是人机交互,拿服务的对象都可以算作是人,但从现阶段的主要技术实现来看,服务对象还是存在差异的。 chatbot的服务对象是人这个毋庸置疑,做图灵测试也是为了验证对面和你说话的那个AI,有没有可能骗过你,而从让你以为它是个人,chatbot展开的多轮对话也是围绕人的实际需求展开。 agent虽然也存在与人的交互,agentic workflow中一般也会有人工输入的节点,但现阶段我们搭建agent的主要任务,更多时候是在自动完成一个复杂任务,因此服务对象可以认为是复杂任务。 组织形式 从组织形式上来看,由于agent具备了行动能力,所以和chabot产生了组织形式的不同。 chatbot主要的构成是一问一答的形式,包括我们调用大模型api一般也遵循这个结构,可以表示为{[q0,a0],[q1,a1],…[qt,at]}。 agent记忆的构成以最常见的react模式为例,主要是动作(tool)和动作结果(tool_result)的时序集合,可以表示为{a0,o0,a1,01,…at,ot}。 维护重点 对于记忆和上下文,很重要的一个功能是维护,但维护的侧重点也是有所不同的。 chabot的上下文虽然也存在前后关联,不会每一轮都紧密联系,但会存在频繁的意图切换,如何理解意图并且实现有效的意图切换识别是上下文维护的重点。 而agent记忆的每一个步骤都是按迭代规划进行的,缺失某个步骤或跳过某个步骤都可能会导致任务失败,因此它的维护重点是如何在有限的窗口中记录对下一步决策产生影响的所需关键信息。 另外agent和chatbot还存在一个很大不同的点是的必要性。对于chatbot,长期记忆主要是记住个人信息和偏好用于个性化服务。而对于agent,长期记忆需要通过情景记忆来记住之前的迭代轨迹,这样不仅能通过检索的方式来获取与当前决策相关的上下文信息,还可以实现经验复用,在下一次遇到类似任务时,可以将之前的经验作为参考,马普所今年2月份发这篇论文时候就指出情景记忆是当前agent所缺少的[1]。 agent短期记忆-业界技术分享 anthropic anthropic提到agent在长程任务上的三种管理上下文方式[2]包括:压缩,结构化笔记和采用子agent架构。 压缩通过对上下文关键内容的提取,改写和无关内容删除实现上下文瘦身; 结构化笔记是把关键信息以结构化形式存入笔记,让agent可以阅读到关键信息; 子agent架构则是通过子agent维护自己的独立上下文再将关键结果返回主agent实现上下文解耦。 oepnai openai的短期记忆管理[3]则是围绕agent sdk来谈到管理短期记忆的两个主要方式:裁剪(trimming)和压缩(summarizing)。 压缩和anthropic的compact是一样的,裁剪就是把旧的历史信息直接剪掉。 trimming的好处是实现比较简单,延时友好而且不会引入偏移信息(相比压缩),但缺点也显而易见,裁剪的内容可能包含当前决策需要的信息,所以一般适用于任务独立,上下文关联不大,低延迟要求场景。 langchain & manus langchain与最近的一次交流[4]提到manus的三种上下文管理方式:reduce ,offload context和isolate context。 reduce context包括将工具执行结果进行压缩放在窗口内,而降完整结果保存在文件系统中,在上下文触发窗口限制时对整个轨迹进行整体压缩; context isolate类似于anthropic的sub agent方法,但细分为两种方式:对于简单任务main agent通过function call的方式将指令传递给子agent,子agent在自己的窗口执行任务;而对于复杂任务,子agent会和主agent共享上下文。 context offloading和anthropic的结构化笔记虽然都是将内容存入文件,但处理思路不一样。manus的方式是将大多数操作卸载到沙盒层,在沙盒中通过bash工具就可以实现多样化的文件读写操作,这样就可以把工具执行结果保存到文件,在需要时通过bash的grep等查询命令进行访问。另外manus的这个设计相当于把大部分先验知识文件化,让agent按需通过读取文件内容获取先验来指导行动,anthropic的skill实现应该也是类似的思路。 agent记忆-项目实践 初版记忆实现 在实际搭建agent时,工具模块,记忆模块,提示词模块是三个重要的基础模块。工具模块和提示词模块相对简单或者说比较成熟的方案,而记忆模块的搭建则有不同的设计思路和实现方式,但核心思路一致 - “给agent提供恰当的上下文”,但难就难在"恰当",首先受限于LLM的上下文窗口,所以累计上下文就不能过长。 另外上下文中堆积无关或者重复的内容不但会影响推理规划,也是不经济的。还有一个重要原因是上下文中的内容对于agent来说不是等权重的,对于当前决策而言,有的内容相对其它内容就会更重要,类似于需要一个attention机制来选择关键信息,那以什么形式来管理上下文获取更相信的信息加入就尤为关键了。 在近期的一个agent项目实践中,实现记忆模块的初始版本,设定的原则是"状态是记忆的投影",以记忆作为事实的唯一来源,同时要求不在agent中维护状态,把记忆事实作为状态来源,放入agent的上下文中让agent自己进行决策。思路看上去是没有问题,但实际测试后就发现想简单了。 对于agent而言本身依赖的LLM是无状态的,所以agent也可以认为是无状态的,但是记忆的目的就是为了让agent具有状态。在初版的实现里,每一轮迭代都把obs写入工作记忆,同时读取当前轮之前的工作记忆中的结构化历史信息,把obs作为上下文唯一来源,直接注入到下一轮迭代的上下文,这样做是比较省事,但是一旦agent内部迭代出现问题,因为obs和工作记忆之间的这种耦合设计,很难追溯问题来源。 第二版记忆重构优化 在发现第一版的问题后,开始进行第二版改进。第二版的改进主要是基于看到的相关的技术博客和论文,重新设计了记忆方案。首先记忆模块的目录设计应该把短期记忆和长期记忆做清晰分划分,维护当前agent迭代执行任务所需上下文的就是短期记忆(工作记忆),而记录完整迭代过程的是长期记忆(情景记忆),产生对应产出的也是长期记忆(语义记忆)。其中比较容易混淆的是工作记忆和情景记忆,从持久化的角度来说,把工作记忆持久化就可以理解为情景记忆,但实际上是存在差别的。 对于一个agent的迭代轨迹{a0,o0,a1,o1,…at,ot},可以直接把这个迭代轨迹放入上下文,也可以对这个迭代轨迹的每一步进行摘要提取,仅保留关键信息和引用,比如某步生成了一个很大的结构化,在进入下一轮时没有必要把整个json全部放入上下文,可以只放入一个引用,但是会把完整的json存入情景记忆,在下一轮迭代使用这个引用时再从情景记忆中取出这个对应的json,这样能避免大段内容直接进入到上下文中。 同时还需要考虑到上下文长度限制和成本问题,一般的工作记忆还会考虑使用最近k轮的策略,上下文只保留最近k轮的迭代记录,但是全局信息以结构化的信息记录,把这个结构化信息也注入到上下文中,这样也不至于让agent丢失掉全局信息。而第一版的问题就在这里,状态不应该只是记忆的投影,状态是对记忆的删减和加工,实际上的改进就是在短期记忆和长期记忆之间加一个桥接适配层,来实现短期记忆和长期记忆的搭配使用。 而为了agent项目的阶段性扩展和迭代,在前期工程化实现时就应该考虑长期记忆。在一个agent的迭代循环里,如果迭代轮数比较长,上下文窗口和LLM的上下文利用效率已经开始明显下降,就需要考虑结合长期记忆使用了。而为了缩减上下文,在删减掉比较早期的迭代信息后,需要识别出长期记忆中已保存的迭代记录中,哪些记忆内容会对当前轮决策有用,就选择加入到上下文。这个一般会使用retrival的方法,从长期记忆中进行检索。技术实现上会结合结构化和向量检索,而实际的实践需要根据场景需求去做设计和调整记忆存储和读写方式,可以使用slot,sql数据库,向量数据库,图数据库等等。 实践过程汇总有一个原则可以参考:记忆模块在开始实现之初,就应该把短期记忆和长期记忆进行解耦设计,这不但为上下文管理留有比较大的优化空间,在符合可审计性原则之外还为经验复用和未来可能的RL积累数据基础。 同时第二版的改进上,还有一个比较重要的改进点是还原了obs的单纯职责,obs只应该对当前轮的act和执行结果进行记录,不应该注入历史内容,obs保持职责单一只把当前轮的执行和执行结果(或摘要)放到工作记忆,工作记忆再去通过记忆模块补充历史上下文,这样修改之后,obs和工作记忆的职责也分的比较清晰了。 另外在agent的工层化实现过程中,造成可审计比较困难的一个点就是对工程化实现过程的不同组件的职责理解和划分不清晰,一旦出了bug,bug溯因就会因为这种不清晰的边界设计增加debug的难度,所以需要在设计之初就厘清不同模块的边界再动手进行实现。 agent记忆相关研究进展 上面提到RL微调,就再展开谈一下在agent在记忆管理方向的相关研究。agent记忆管理是一个很复杂的问题,从工程角度来看,agent的记忆管理可以分为两类技术方案,一种将复杂问题简化,另外一种是自动化。目前相关的记忆研究在这两个方向论文也比较多,找到了几篇比较有代表性的论文。前者是提供系统化/可插拔的记忆管理底座框架,如[5],A-MEM[6],后者是将手动/规则维护记忆的方式转为自动化,如Memory‑R1[7],MEM1[8],Memp[9], MEMSearcher[10]等。 ...
服务器测试整理
(一) 测试工具(服务器) /etc/systemd/system/natapp.service 编号 名称 版本 用途 工具状态 1 Unixbench 5.1.3 测试操作系统综合处理能力。 开源工具 2 Spec2006 2006 测试 CPU 性能。 商用软件 3 iozone 4.3.0 测试磁盘读写性能(Mb/s),包括随机、顺序读写、最大最小和平均读写速度等。 开源工具 4 Netperf 2.7.0 测试网络传输速率、网络吞吐率、网络响应时间等,包括 TCP、UDP 流吞吐速率、TCP 请求/响应、丢包率、误包率等。 开源工具 5 SPECjvm2008 2008 测试 JAVA 虚拟机的性能。 开源工具 6 LMbench 3.0 测试操作系统性能 开源工具 7 LTP LTP 20160510 测试系统稳定性 开源工具 8 Stream 5.09 测试内存带宽性能 开源工具 9 FIO 2.1.10 测试磁盘读写性能 开源工具 (2) uos deb http://mirrors.163.com/debian stable main 内核更新: apt install linux-image* linux-header* 卸载多余内核: apt remove linux-image-5.6.0-2-arm64 deb https://uos.deepin.cn/uos eagle main contrib non-free deb https://enterprise-packages.chinauos.com/server-enterprise fou/sp2 main contrib non-free apt-key adv –keyserver keyserver.ubuntu.com –recv-keys deb https://professional-store-packages.chinauos.com/appstore eagle appstore 麒麟v10源: deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.0 main restricted universe multiverse deb http://archive.kylinos.cn/kylin/partner juniper main 定制版uos: mkdir /tmp/livecd mount -o loop uos*.iso /tmp/livecd mkdir -p livecd/cd rsync --exclude=/live/filesystem.squashfs -a /tmp/livecd/ livecd/cd mkdir livecd/squashfs&&mkdir livecd/custom modprobe squashfs mount -t squashfs -o loop /tmp/livecd/live/filesystem.squashfs livecd/squashfs cp -a livecd/squashfs/* livecd/custom cp /etc/resolv.conf livecd/custom/etc/ cp /etc/apt/sources.list livecd/custom/etc/apt/sources.list chroot livecd/custom apt install xrdp htop gnome-disk* rm -rf livecd/custom/recovery* mksquashfs livecd/custom ./filesystem.squashfs && chmod -R 777 ./*.squashfs uos无需激活即可root: nano /etc/pam.d/su #auth requisite deepin_security_verify.so 命令行激活试用:uos uos-activator-cmd -t 1 (3) unixbench wget http://github.itzmx.com/1265578519/unixbench/master/5.1.3/unixbench.sh chmod 777 *.sh && ./unixbench.sh 多核的话改一下run文件,第 109,110,111,112 行修改数字为当前系统 CPU 核数,然后./Run -c 核数 nano Makefile ,47行 1GL_LIBS = -lGL -lXext -lX11 lm nano Run,111行 # '3d' => { 'name' => "3D Graphics Benchmarks",'maxCopies' => 8 }, make all && ./Run graphics 1 (4) iozone wget http://www.iozone.org/src/current/iozone3_487.tar tar -xvf iozone3_487.tar cd iozone3_487/src/current/ make linux ./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 8G | tee -a iozone.log ./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 16G | tee -a iozone.log ./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 32G | tee -a iozone.log wgethttps://gitee.com/haolixu/test/raw/master/iozone.sh&& bash iozone.sh (5) 远程桌面 apt install xrdp apt install gnome* echo “gnome-session –session=gnome-classic” > ~/.xsession /etc/init.d/xrdp start 19.12.23更新! ...
Agent接口测试中实践
在接口测试中实现“自动解析文档→生成用例”的核心是通过**“文档结构化解析→元数据提取→场景规则映射→用例自动化编排”**的全流程自动化,结合的语义理解与测试领域知识,将非结构化的接口文档转化为覆盖全面、可直接执行的测试用例。 一、整体流程框架 整个过程分为4个核心阶段,由“接口解析Agent”和“用例生成Agent”协同完成,依赖“文档同步模块”“元数据存储模块”“规则引擎”三大支撑组件: graph TD subgraph 准备阶段 A[接口文档同步] --> A1[对接Swagger/OpenAPI] A --> A2[监听文档变更(Webhook)] A --> A3[历史文档版本管理] end subgraph 解析阶段(接口解析Agent) B[元数据提取] --> B1[基础信息:路径/方法/描述] B --> B2[参数信息:类型/约束/位置] B --> B3[响应信息:状态码/schema/字段] B --> B4[依赖关系:前置接口/动态参数] end subgraph 生成阶段(用例生成Agent) C[场景规则映射] --> C1[正向场景:合法参数组合] C --> C2[异常场景:参数校验失败] C --> C3[边界场景:临界值/极限值] C --> C4[依赖场景:接口调用链] end subgraph 输出阶段 D[用例格式化] --> D1[Postman/JMeter格式] D --> D2[pytest脚本格式] D --> D3[测试管理工具格式(TestRail)] end 二、具体步骤与技术实现 阶段1:同步——确保解析源实时准确 目标:获取最新接口文档(如/OpenAPI),并监控变更以触发后续解析流程。 具体操作: 文档接入方式: 主动拉取:通过定时任务(如每小时)调用接口文档地址(如https://api.example.com/v3/api-docs),获取JSON格式的Swagger文档; 被动接收:配置Git Webhook,当接口文档代码(如后端项目的Swagger配置)提交时,自动推送最新文档至Agent系统。 文档版本管理: 将每次获取的文档存储在版本库(如Git),标记版本号(如v2.3.1),便于后续对比变更(如参数新增/删除)。 阶段2:元(接口解析Agent核心工作) 目标:从接口文档中提取结构化元数据(基础信息、参数、响应、依赖),为用例生成提供“原材料”。 ...