AI Agent技能生成实战:从文档网站到RAG知识库的自动化转换

news2026/5/10 5:56:55
1. 项目概述与核心价值最近在折腾AI智能体Agent的开发发现一个挺普遍但又很棘手的问题怎么让Agent快速、准确地“学会”使用某个工具或框架很多优秀的开源项目、SaaS服务都提供了详尽的官方文档但这些文档是给人看的不是给AI“吃”的。直接让Agent去读一个复杂的文档网站就像让一个刚学中文的人去啃一本专业词典效率低下且容易出错。我们需要一种方法能把结构化的网页文档转换成AI Agent能高效理解和调用的“技能”Skill。这就是我最近深度使用并改造的Agent Skills Generator项目要解决的核心问题。它不是一个简单的网页转Markdown工具而是一个专门为AI Agent场景优化的文档处理流水线。简单来说它能将一个完整的文档网站比如Flutter官方文档、某个API的参考手册爬取下来经过清洗、转换和组织生成一套结构清晰、内容纯净的Markdown文件。这套文件可以直接作为RAG检索增强生成系统的知识库或者被封装成Agent可调用的具体“技能”模块。这个项目特别适合两类朋友一是正在构建企业级AI应用或Copilot的开发者你需要为你的Agent注入稳定、可靠的专业知识二是任何希望将现有文档资产快速AI化的团队或个人它能极大降低从文档到可用技能之间的工程化门槛。我自己就用它把几个内部系统的帮助文档转化成了技能库让内部问答机器人的准确率提升了不止一个档次。接下来我就结合自己的实战经验把这个工具里里外外拆解一遍分享如何用它高效地“喂养”你的AI Agent。2. 项目架构与工具选型解析Agent Skills Generator 提供了两套互补的实现分别面向不同的使用场景和用户习惯这种设计本身就体现了实用性思维。2.1 双轨设计GUI与CLI的哲学VS Code扩展和Go CLI并非功能重复而是针对不同工作流的精准设计。VS Code扩展定位是交互式、探索性、低门槛的技能生成。它的核心价值在于“可视化”和“即时反馈”。当你面对一个陌生的文档网站不确定哪些路径有用、哪些是噪音时在VS Code里通过图形界面添加规则、实时点击“Fetch Skills”并立刻在编辑器中看到生成结果这个闭环体验非常顺畅。它适合文档工程师、技术写作者或前端开发者在编写与文档相关的Agent技能时可以边调整规则边查看产出像使用一个智能的文档处理插件。Go CLI则定位是自动化、高性能、可集成的批处理工具。Go语言编译出的单一可执行文件没有运行时依赖天生适合嵌入CI/CD流水线。当你需要定期例如每晚同步某个快速迭代的框架文档或者一次性处理成百上千个文档页面时CLI的高并发爬取和稳定的文件输出能力就是刚需。它适合后端工程师、运维或需要将文档处理流程自动化的团队。我的选型心得我个人的工作流是两者结合。初期探索和规则调试阶段绝对是用VS Code扩展图形化操作试错成本极低。一旦规则稳定下来我就会把配置导出为YAML交给Go CLI去执行定时任务或集成到更大的自动化脚本中。项目作者提供这两种形态确实考虑到了从“玩一玩”到“生产部署”的全过程。2.2 技术栈背后的考量为什么是Go和TypeScript/Node.js这背后有很实际的性能与生态考量。Go CLI选择Go语言核心目标就两个速度和部署简便性。网络爬取是典型的I/O密集型任务Go的轻量级协程goroutine模型非常适合并发处理大量HTTP请求能极大缩短抓取大型文档站的时间。相比用Python的asyncioGo的并发模型对开发者更友好且最终编译成一个静态二进制文件在任何机器上./agent-skills-generator就能跑彻底摆脱了Python版本、虚拟环境、依赖包冲突的噩梦。这对于需要在纯净服务器环境或Docker容器内运行的任务至关重要。VS Code扩展选择TypeScript则是生态决定的。VS Code本身就用TypeScript/Electron开发其官方扩展API对TS支持最为完善开发体验最好。利用VS Code内置的UI组件如Tree View、Webview Panel可以快速构建出体验一致的侧边栏面板。Node.js的生态也确保了处理文件、网络请求等操作有丰富的库支持。这种技术选型使得两个工具都能在各自领域发挥长处而不是用一个技术栈勉强实现所有功能。3. VS Code扩展可视化技能工坊详解让我们深入VS Code扩展看看如何把它变成一个高效的“技能锻造台”。3.1 安装与初次配置避坑指南按照项目README的安装步骤是基础但有几个细节决定了初次使用的成败克隆与依赖安装克隆仓库后务必确保终端当前路径在vscode-extension/目录下再执行npm install。我遇到过直接在根目录运行安装命令导致依赖装错位置扩展无法启动的情况。调试启动按F5后会弹出一个新的VS Code窗口标题通常为[扩展开发主机]。关键点来了你需要在这个新窗口里操作扩展而不是原来的开发窗口。很多新手会在这里困惑为什么自己原来的窗口没变化。找不到视图在新窗口中如果活动栏最左侧竖条没有看到“Agent Skills”图标可以按CtrlShiftP打开命令面板输入View: Show Agent Skills即可手动调出侧边栏面板。3.2 核心功能规则管理的艺术扩展的核心是规则管理界面。一个配置得当的规则是产出高质量技能的关键。URL模式的理解这里的URL不是简单的单个链接而是一个“入口点”或“基准路径”。例如你输入https://docs.flutter.dev/爬虫会从这个页面开始。subpaths: true是这个规则的精髓它告诉爬虫“从这个基准路径出发跟踪所有属于docs.flutter.dev域名下且路径以此基准开头的链接”。这能确保你抓取的是Flutter文档这个“子树”而不会跑到博客或社区页面去。Include/Ignore逻辑这是进行精细化控制的武器。假设Flutter文档站有一个/api/路径是核心参考一个/tutorials/是教程一个/changelog/是更新日志。你只想要API参考可以这样设置Action: IncludePattern: /api/。这表示只抓取包含/api/的路径。 更常见的用法是Action: Ignore来排除噪音。比如你想抓取整个文档站但排除所有PDF文件和中文翻译页面可以添加多条Ignore规则Pattern: .pdf$(忽略所有以.pdf结尾的链接)Pattern: /zh/(忽略所有包含/zh/路径的链接假设这是中文版)实操心得规则的调试不要企图一次就写出完美的规则。我的建议是“小步快跑”。先设置一个范围较大的规则如仅包含根路径点击“Fetch Skills”抓取少量页面。然后在生成的Markdown文件里检查看看有没有抓进来不想要的东西如导航栏、页脚、广告。根据这些不想要的页面的URL特征去添加或调整Ignore规则。反复这个循环2-3次就能得到一组非常精准的过滤规则。配置导出与导入这个功能非常适合团队协作。当你为某个复杂的文档站比如Kubernetes官网调试好一整套完美的规则后可以将其导出为一个JSON文件。团队其他成员直接导入这个文件就能立即获得完全相同的爬取配置保证了技能库生成的一致性避免了每个人重复踩坑。3.3 生成技能与输出结构解析点击“Fetch Skills”后扩展会开始工作并在VS Code的输出面板显示日志。完成后技能文件会保存到你预设的输出目录默认为项目根目录下的.agent/skills。输出文件命名与组织扩展会基于页面的标题title标签和URL路径生成一个对人类和机器都友好的文件名。例如https://docs.flutter.dev/get-started/install可能被保存为get-started-install.md。所有文件默认以扁平结构存放这主要是为了兼容性。很多向量数据库和RAG系统在处理文件时简单的扁平列表比复杂的嵌套目录更容易管理和索引。生成Markdown的内容质量这是工具的核心价值所在。它并非简单粗暴地调用html2markdown。根据我的代码分析和实际输出对比它做了大量优化噪音剔除会自动移除典型的网页噪音元素如导航菜单、侧边栏、页脚版权信息、社交媒体分享按钮等。这些内容对人类浏览是辅助对AI理解则是干扰信息。结构优化会将HTML的div布局转换为更符合Markdown语法的标题层级#,##,###并合理保留代码块、表格、列表等结构化信息。添加元数据Frontmatter在每个Markdown文件的顶部会以YAML格式插入元数据通常包含--- source: https://docs.flutter.dev/get-started/install title: Install Flutter crawled: 2023-10-27T08:15:30Z ---这个source字段至关重要。当Agent基于此技能内容生成回答时可以附带引用来源URL增强了可信度和可追溯性。4. Go CLI高性能自动化引擎实战对于稳定、批量的技能生成任务Go CLI是你的不二之选。它的所有配置通过一个YAML文件驱动非常适合自动化。4.1 从编译到运行确保环境就绪虽然go build很简单但在生产服务器上我推荐使用静态链接编译以消除对系统GLIBC版本的依赖cd go-cli CGO_ENABLED0 go build -ldflags-s -w -o agent-skills-generator main.goCGO_ENABLED0禁用CGO-ldflags-s -w用于压缩二进制文件体积。编译出的agent-skills-generator可以随意拷贝到任何Linux/amd64机器上运行。4.2 核心配置文件skills.yaml深度解读CLI的强大与灵活几乎全系于这个配置文件。我们逐项拆解output: .agent/skills/flutter_docs # 输出目录 flat: true # 是否使用扁平结构 concurrency: 10 # 并发请求数自定义添加非常重要 delay: 100ms # 请求间延迟避免对目标服务器造成压力 rules: - url: https://docs.flutter.dev/ subpaths: true action: include maxDepth: 3 # 最大爬取深度自定义添加 - url: https://api.flutter.dev/ subpaths: true action: include ignorePatterns: # 忽略特定模式自定义添加 - /flutter/.*/obsolete - .*\\.pdf$output: 指定技能文件的存放根目录。建议按项目或文档来源建立子目录方便管理。flat: true: 这是为RAG优化的重要设置。设为true时所有Markdown文件都直接放在输出目录下或仅根据规则简单分组。设为false时可能会尝试保留原始URL的目录结构。在绝大多数RAG应用场景如使用LangChain的DirectoryLoader或LlamaIndex的SimpleDirectoryReader中扁平结构更易于加载和分块。concurrency与delay: 这两个参数需要平衡。concurrency越高爬取越快但对目标服务器压力越大也更容易触发反爬机制。delay是每个请求之间的暂停时间出于礼貌和稳定性考虑建议至少设置为100ms。对于公开的大型文档站我通常用concurrency: 5, delay: 200ms。rules: 规则列表。每个规则定义了一个爬取起点和范围。url: 起始URL。subpaths: true: 爬虫会跟踪所有以此URL为前缀的同域名链接。这是抓取整个文档子站的关键。action: 可以是include或ignore但在此处作为规则属性通常与url和subpaths结合来定义抓取范围。maxDepth:强烈建议添加。从起始页算起最多跟踪多少层链接。防止因网站有循环链接或无限深的归档页面而导致爬虫“失控”。对于文档站深度3到5通常足够覆盖所有主要内容。ignorePatterns:高效抓取的秘诀。使用正则表达式列表在爬虫发现链接时就直接过滤掉。这比抓取下来再在内容中过滤要节省大量资源和时间。例如忽略所有PDF、忽略特定版本如/v1.0/当你在抓取v2.0、忽略临时页面或测试页面。4.3 运行、监控与结果验收运行命令很简单./agent-skills-generator crawl --config path/to/your/skills.yaml监控日志CLI会输出详细的日志信息包括正在爬取的URL、成功保存的文件、被忽略的链接等。首次运行一个复杂规则时建议将输出重定向到文件以便审查./agent-skills-generator crawl --config skills.yaml 21 | tee crawl.log结果验收爬取完成后你需要检查输出目录。数量检查看看生成的文件数量是否符合预期。如果远少于预期可能是maxDepth太小或ignorePatterns太严格。质量抽检随机打开几个Markdown文件检查内容核心正文内容是否完整、清晰无关的导航、广告、评论是否已被移除代码块、表格的格式是否正确元数据sourcetitle是否准确覆盖度检查手动访问文档网站的几个关键章节看看对应的页面是否都被抓取并生成了技能文件。5. 从Markdown到Agent技能后续处理与集成方案工具生成了干净的Markdown但这还不是终点。如何让AI Agent真正用起来这些“技能”还需要最后一步的加工和集成。5.1 技能内容的优化与后处理生成的Markdown虽然已经很干净但根据你的具体Agent框架可能还需要微调分块Chunking对于很长的文档页面如一个完整的API参考直接将其作为一个整体放入向量数据库可能效果不佳。你需要根据语义将其分割成大小适中的块例如每块500-1000字符重叠100字符。可以使用LangChain的RecursiveCharacterTextSplitter或LlamaIndex的SentenceSplitter。# 示例使用LangChain进行分块 from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.document_loaders import DirectoryLoader loader DirectoryLoader(‘.agent/skills/flutter_docs‘, glob“**/*.md”) documents loader.load() text_splitter RecursiveCharacterTextSplitter( chunk_size1000, chunk_overlap200, length_functionlen, separators[“\n\n”, “\n”, “ “, “”] # 按段落、换行、空格分割 ) chunks text_splitter.split_documents(documents)添加技能描述与元数据为每个技能文件或一组相关文件编写一个简明的技能描述Skill Description。这个描述应该用自然语言说明这个技能是干什么的、包含哪些关键信息。这个描述可以放在一个单独的manifest.yaml文件里也可以作为附加元数据嵌入向量存储中。当Agent需要选择技能时可以通过对比用户意图和技能描述来进行匹配。构建索引将分块后的文本连同其元数据来源URL、标题、技能描述等存入向量数据库如Chroma Pinecone Weaviate或简单的FAISS。这一步是为RAG查询做准备。5.2 与主流Agent框架的集成思路不同的Agent框架调用技能的方式不同但核心思想一致将处理后的知识库与Agent的决策循环连接起来。LangChain / LangGraph你可以将生成的技能库作为Retriever。当Agent收到用户查询时先使用Retriever从技能库中获取最相关的文档片段然后将这些片段作为上下文与用户问题一起提交给LLM生成最终回答。你可以将这个过程封装成一个自定义的Tool或Runnable让Agent在需要时调用。AutoGen / CrewAI在这些多智能体框架中你可以将某一领域的技能库封装成一个“专家智能体”的内部知识。或者创建一个专门的“检索智能体”其唯一职责就是查询技能库并返回信息供其他决策智能体使用。自定义Agent如果你是从头构建流程可以设计为用户输入查询。系统将查询向量化在技能库向量数据库中做相似性检索获取Top-K个相关片段。将检索到的片段和原始查询组合形成给LLM的提示词Prompt。LLM生成基于技能库知识的回答并可选择引用来源URL。5.3 持续集成与技能更新文档是活的会不断更新。因此技能库也需要定期刷新。你可以用Go CLI编写一个简单的脚本结合cron job或GitHub Actions实现自动化更新。示例GitHub Actions工作流name: Update Agent Skills on: schedule: - cron: ‘0 2 * * *‘ # 每天UTC时间2点运行 workflow_dispatch: # 支持手动触发 jobs: crawl-and-commit: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Setup Go uses: actions/setup-gov4 with: go-version: ‘1.21‘ - name: Build and Run Crawler run: | cd go-cli go build -o agent-skills-generator main.go ./agent-skills-generator crawl --config ../skills.yaml - name: Commit and Push if changed run: | git config user.name GitHub Actions Bot git config user.email actionsgithub.com git add .agent/skills/ git diff --quiet git diff --staged --quiet || (git commit -m chore: update agent skills [$(date %Y-%m-%d)] git push)这个工作流会每天自动爬取最新文档更新技能库并提交回仓库确保你的Agent始终基于最新的知识运行。6. 常见问题、故障排查与性能调优在实际使用中你肯定会遇到各种问题。下面是我踩过坑后总结出来的排查清单。6.1 爬取过程常见问题问题现象可能原因排查与解决步骤爬取到的页面数为01. 网络问题或URL错误。2. 初始页面被JavaScript渲染爬虫获取到空HTML。3.ignorePatterns或maxDepth设置过于严格。1. 用curl或浏览器手动访问rules中的url确认可访问。2. 查看爬虫日志看是否解析了初始页面但没找到任何链接。对于JS渲染站可能需要改用Puppeteer等无头浏览器方案本工具不适用。3. 暂时注释掉ignorePatterns将maxDepth设为1测试是否能抓到初始页的链接。爬取过程意外中断1. 遇到非200状态码如403 404 500。2. 遇到无法解析的HTML或畸形链接。3. 内存不足对于极大站点。1. 查看日志最后的错误信息。工具通常有容错机制个别页面失败会跳过。如果频繁遇到403可能需要添加User-Agent请求头需修改工具代码。2. 同上工具应跳过解析错误的页面。3. 对于超大站增加maxDepth限制或分多个规则分批抓取。生成的文件内容杂乱包含大量导航文本目标网站的HTML结构可能与工具内置的清洗规则不匹配。这是最常见的问题。需要“训练”你的规则。打开一个生成效果差的Markdown文件对照浏览器中该页面的“检查元素”找出那些噪音内容对应的HTML标签或CSS类名。然后你可以考虑1.更精确的ignorePatterns如果噪音来自特定路径如/sidebar/在规则中忽略它。2.修改工具代码在Go CLI的HTML解析逻辑中添加针对该网站特定标签或类名的删除规则。这需要一定的Go编程能力。爬取速度非常慢1.concurrency设置过低。2.delay设置过高。3. 目标服务器响应慢。1. 适当提高concurrency如从5调到10。2. 在礼貌的前提下降低delay如从200ms调到50ms。3. 使用工具的网络超时设置如果提供避免在慢响应上等待过久。6.2 输出内容质量问题代码块语言标识错误工具通常根据HTML中的CSS类名如class“language-python”来判断编程语言。如果目标网站没有使用标准类名生成的Markdown代码块可能没有正确的语言标识符。这会影响后续语法高亮和某些LLM对代码的理解。解决方法同样是修改工具的解析逻辑或对生成后的Markdown文件进行批量后处理用脚本识别内容特征并添加语言标签。图片链接失效工具可能会将图片的src属性转换为Markdown的图片语法但如果是相对路径如../images/logo.png在脱离原网站上下文后可能无法访问。如果图片内容对技能不重要可以在清洗规则中直接移除img标签。如果重要可能需要配置工具下载图片到本地并调整Markdown中的链接路径这属于高级功能当前工具可能不支持。公式丢失或错乱如果文档包含LaTeX数学公式而网站是用MathJax或KaTeX渲染的标准的HTML到Markdown转换可能会丢失公式信息或得到一堆无意义的符号。处理包含大量数学公式的文档如学术论文、技术规范是本工具目前的短板需要寻找专门的解决方案。6.3 性能与资源调优控制爬取规模在skills.yaml中善用maxDepth和ignorePatterns是控制规模最有效的手段。在开始全站爬取前先用小深度maxDepth: 1测试估算一下页面数量。处理速率限制对于公开API文档要心怀敬意。过高的并发和零延迟可能会被视为攻击导致你的IP被暂时封禁。始终设置合理的delay建议不低于100ms并考虑使用轮换User-Agent等策略这需要修改工具代码。磁盘空间大型文档站如整个MDN Web Docs抓取下来可能占用数百MB甚至上GB的磁盘空间主要是文本图片另算。确保输出目录有足够空间并定期清理旧版本。这个工具是我在构建企业级AI助手过程中找到的一块瑰宝它精准地击中了从文档到技能的工程化痛点。它不是万能的对于结构特殊、重度依赖JavaScript或包含复杂交互内容的网站可能需要更定制化的爬虫方案。但对于绝大多数静态或服务端渲染的文档网站而这正是API文档、框架文档的主流形式它都能出色地完成任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2555500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…