基于MCP协议为AI智能体赋予本地桌面自动化能力

news2026/5/16 4:13:45
1. 项目概述为AI智能体赋予“手和眼”的桌面操作技能如果你正在使用像Cursor、Claude Code或Codex这类AI编程助手可能会发现一个痛点它们能帮你写代码、分析问题但无法直接操作你的电脑。你想让它帮你打开一个软件、填写一个表单或者整理一下桌面文件它只能告诉你“我做不到”。CUA Desktop Operator Skill这个项目就是为了解决这个“最后一公里”的问题。它本质上是一个标准化的“技能包”能让任何支持MCP协议的AI智能体获得安全、可控地操作Windows桌面的能力。简单来说这个项目为你的AI助手装上了一双“眼睛”和一个“机械臂”。“眼睛”用来观察屏幕截图、识别窗口“机械臂”用来执行操作点击、输入、启动应用。最核心的设计理念是**“本地优先”和“智能体中立”**。所有操作都在你的本地电脑上完成无需将屏幕截图上传到云端进行分析保护了隐私和安全。同时它提供了一套统一的接口无论是哪个AI智能体Cursor、Claude Code、Codex等只要支持MCP就能以相同的方式调用这些操作无需为每个智能体单独开发适配层。这个技能包的设计非常“干净”。它不是一个庞大的、侵入式的自动化框架而是一个可以即插即用的模块。你只需要将整个项目仓库克隆到你的AI智能体的技能目录下智能体读取其中的SKILL.md文件后就能自动理解并配置如何使用它。对于开发者或高级用户而言这意味着你可以让AI助手帮你完成一系列重复性的桌面任务比如自动化软件安装后的初始配置、批量重命名文件、自动填写网页表单或者执行一套复杂的软件测试流程。2. 核心设计思路为什么选择MCP与本地执行架构在深入实操之前理解这个项目的架构选择至关重要。市面上桌面自动化的方案很多从简单的按键精灵脚本到庞大的RPA机器人流程自动化平台为什么这个项目选择了MCP协议和本地执行这条路径这背后是对现有方案痛点的深刻洞察和一系列务实的技术权衡。2.1 传统桌面自动化方案的局限性传统的桌面自动化尤其是与AI结合时通常面临两个极端方案一脆弱的脚本如AutoHotkey、Python pyautogui。这类方案直接录制或编写屏幕坐标点击、键盘模拟的脚本。其最大问题是缺乏“观察”能力。脚本一旦写好就假设屏幕上的按钮永远在同一个像素位置。一旦软件界面更新、窗口位置移动、显示器分辨率变化脚本就会失效。它无法“看到”屏幕当前的状态也就无法做出适应性的调整。这就像蒙着眼睛按照固定路线走路任何微小的环境变化都会导致失败。方案二重量级的智能体系统。这类系统通常内置了强大的视觉模型如GPT-4V来理解屏幕内容并配有复杂的任务规划器。它们很强大但问题在于耦合度太高且依赖云端。它们往往将视觉识别、决策规划和动作执行全部捆绑在一个特定的AI模型后端上。如果你想换一个AI模型或者想在本地离线运行几乎不可能。此外每一次操作都可能需要将屏幕截图发送到云端进行识别带来了延迟、成本和隐私风险。2.2 CUA Desktop Operator的差异化路径CUA Desktop Operator试图在“脆弱”和“笨重”之间找到一条优雅的中间道路。它的核心设计哲学可以概括为三点推理归智能体执行归本地技能这是最重要的分离。AI智能体如Cursor内置的模型负责“思考”——分析截图、理解任务、制定下一步操作计划。而CUA Desktop Operator只负责“执行”——接收智能体发出的明确指令如“点击这里”、“输入文字”并调用Windows API完成它。这样智能体可以自由更换或升级而执行层保持稳定。标准化接口MCP为了实现上述分离需要一个双方都能理解的“语言”。这就是模型上下文协议。MCP是一个新兴的开放协议旨在为AI智能体提供一种标准化的方式来调用外部工具如搜索、计算、文件操作。本项目将所有桌面操作观察、点击、输入等封装成一系列标准的MCP工具。任何支持MCP的智能体都能以完全相同的方式调用这些工具实现了“一次编写处处运行”。观察优先的工作流技能强制要求智能体在执行任何操作前必须先调用desktop_observe工具获取当前的屏幕状态截图、窗口列表。这确保了AI的决策是基于最新、最准确的现场信息而不是凭记忆或猜测行动大大提高了自动化流程的鲁棒性。这种架构带来的直接好处是极致的可移植性和复用性。你只需要维护一套CUA Desktop Operator的执行环境就可以让多个不同的AI智能体你电脑上安装的Cursor、Claude Code等共享使用。当底层Windows API或操作逻辑需要更新时你只需要更新这一个技能包所有智能体都能立即受益。3. 环境准备与快速上手十分钟内让AI动起来理论讲完我们进入实战环节。让AI助手开始操作你的桌面整个过程比想象中简单。以下步骤以在Cursor IDE中集成为例其他支持MCP的智能体如Claude Code、OpenCode流程类似主要区别在于技能目录的路径。3.1 第一步克隆技能仓库到本地首先你需要找到你的AI智能体存放技能的目录。通常这些目录位于你的用户文件夹下。打开Windows PowerShell或终端执行对应的克隆命令。以下命令会自动创建正确的目录结构对于Cursorgit clone https://github.com/Marways7/cua_desktop_operator_skill $HOME\.cursor\skills\cua_desktop_operator_skill对于Claude Codegit clone https://github.com/Marways7/cua_desktop_operator_skill $HOME\.claude\skills\cua_desktop_operator_skill对于Codex/OpenCodegit clone https://github.com/Marways7/cua_desktop_operator_skill $HOME\.codex\skills\cua_desktop_operator_skill实操心得如果上述标准路径不存在你可能需要先在对应的配置文件中启用或指定技能目录。对于Cursor通常.cursor文件夹在用户目录下是自动创建的。如果克隆失败可以手动创建skills文件夹后再执行克隆。3.2 第二步安装运行时依赖技能的核心是一个用Python编写的本地MCP服务器它需要一些Python库和Windows组件的支持。进入刚刚克隆的仓库目录运行安装脚本cd $HOME\.cursor\skills\cua_desktop_operator_skill .\scripts\setup_runtime.ps1这个PowerShell脚本会完成以下工作检查Python 3.11是否已安装如未安装会提示你。创建一个独立的Python虚拟环境推荐避免污染你的全局Python环境。使用pip安装所有必需的依赖包主要包括pyautogui/pymouse用于模拟鼠标点击和键盘输入。pillow用于图像处理和截图。pygetwindow/pywinauto用于窗口管理和识别。mcp用于实现MCP服务器协议。可能会安装或验证Windows UI Automation相关的支持组件。注意事项安装过程可能需要联网下载Python包请确保网络通畅。如果遇到权限问题请以管理员身份运行PowerShell。安装完成后建议关闭并重新打开终端以确保环境变量生效。3.3 第三步启动本地MCP服务器依赖安装成功后需要启动本地的MCP服务器进程它将作为AI智能体和Windows桌面之间的桥梁。在仓库目录下运行启动脚本.\scripts\start_mcp_server.ps1运行成功后你应该能看到类似以下的输出表明服务器已在本地某个端口或stdio标准流上启动并等待连接[INFO] Starting CUA Desktop Operator MCP server... [INFO] Server started successfully. Waiting for connections...关键点这个服务器进程需要保持运行。你可以让它在前台运行当前终端窗口不要关闭或者根据你的喜好将其配置为后台服务或开机自启。3.4 第四步引导AI智能体读取技能这是最“魔法”的一步。你不需要手动去编辑复杂的JSON配置文件来告诉Cursor如何连接这个MCP服务器。你只需要在Cursor的聊天框中给它一个指向SKILL.md文件的路径。例如你可以这样说“请阅读并分析这个技能文件C:\Users\你的用户名\.cursor\skills\cua_desktop_operator_skill\SKILL.md然后告诉我你能用它做什么。”SKILL.md文件是这个技能包的“自述说明书”它遵循一种特定的格式向AI智能体清晰地说明了这个技能是什么桌面操作技能。如何使用通过MCP协议连接本地服务器。提供了哪些工具desktop_observe、desktop_click_relative等工具的详细描述和参数。推荐的工作流观察 - 计划 - 执行 - 验证的循环。当Cursor读取这个文件后它会自动理解自己可以通过MCP调用这些工具并通常会主动提示你它已获得新的桌面操作能力。至此环境搭建全部完成。4. 核心工具详解与实战工作流技能包提供了约20个MCP工具我们可以将其分为四大类观察类、窗口管理类、原始动作类和宏指令类。理解每类工具的使用场景和优先级是高效、稳定地进行自动化的关键。4.1 观察类工具自动化之眼desktop_observe- 核心观察工具这是所有自动化任务的起点。调用它技能会立即捕获当前桌面的完整截图识别出当前活动窗口列出所有可见窗口并可选地针对某个目标窗口生成裁剪后的截图。同时它会生成一个结构化的JSON文件记录下此刻的桌面状态如窗口句柄、位置、尺寸。何时使用在开始任务前在执行任何一个可能改变界面的操作后在遇到错误需要诊断时。输出返回截图文件路径、JSON状态文件路径、活动窗口信息、窗口列表等。AI智能体需要解析这些信息来决定下一步行动。desktop_get_last_artifacts/desktop_cleanup_artifacts- 产物管理前者用于获取最近一次观察或操作生成的产物截图、日志路径便于AI进行连续分析。后者用于在任务成功完成后清理本次任务产生的所有临时文件保持磁盘整洁。4.2 窗口管理工具锁定操作目标在桌面上一切操作都关联于某个窗口。错误地点击了背景窗口会导致任务失败。desktop_list_windows/desktop_find_window快速获取窗口列表或根据标题关键词过滤窗口。用于让AI了解当前有哪些应用程序在运行。desktop_focus_window- 关键前置操作这是最容易忽略但至关重要的一步。在向某个窗口发送键盘输入如打字前必须先使用此工具将该窗口激活并置于前台。Windows系统下键盘输入只会发送到当前焦点窗口。忘记聚焦是导致“打字打到别处”的最常见原因。参数通常需要提供目标窗口的标题或其在窗口列表中的索引。desktop_launch_app启动应用程序。支持直接执行命令如notepad、打开文件路径、打开网页URLhttps://...或运行快捷方式.lnk。4.3 原始动作工具精细化的“机械臂”当宏指令不适用时就需要使用这些基础动作来组合完成复杂操作。它们的使用有一个明确的优先级顺序这直接关系到自动化的稳定性。操作优先级从高到低desktop_run_macro最高优先级如果当前要做的操作如“点击播放按钮”、“打开设置”在宏目录中有定义永远优先使用宏。宏封装了更稳定、经过测试的交互模式如使用快捷键CtrlL聚焦浏览器地址栏远比直接点击某个可能移动的像素坐标可靠。desktop_click_relative当需要点击一个按钮且已知它位于某个特定窗口内时使用。你需要提供目标窗口的信息以及相对于该窗口左上角的(x, y)坐标。这比绝对坐标稳定因为只要窗口本身不改变内部布局按钮的相对位置就是固定的。desktop_uia_click/desktop_uia_type当目标控件可以通过UI AutomationUIA技术可靠地识别时使用。UIA可以按控件类型如Button、自动化ID或文本来查找元素。这比坐标点击更语义化但依赖于应用程序对UIA的支持程度。现代Windows应用如WinUI、WPF、部分Qt应用支持较好。desktop_click_absolute最后手段使用屏幕绝对坐标进行点击。仅在以上所有方法都失效时使用因为绝对坐标对屏幕分辨率、缩放布局、窗口位置极度敏感是最脆弱的操作方式。其他关键原始动作desktop_send_keys发送单个按键或组合键如CtrlC,AltTab。desktop_type_text输入简短的ASCII文本。desktop_paste_text对于输入中文、长文本或特殊格式内容必须使用此工具。它先将文本复制到剪贴板然后模拟CtrlV粘贴避免了直接模拟输入可能遇到的编码和速度问题。desktop_scroll滚动窗口内容。desktop_wait显式等待。用于在操作后等待界面加载完成是避免“操作过快导致失败”的缓冲器。4.4 宏指令工具封装最佳实践宏是一组预定义的高阶操作对应常见的、稳定的GUI交互模式。使用宏能让AI的指令更简洁也让自动化脚本更易读、更健壮。例如search_box_submit这个宏可能封装了以下步骤1) 发送快捷键CtrlF聚焦搜索框2) 粘贴查询文本3) 按下Enter键提交。AI只需要调用desktop_run_macro(macro_id”search_box_submit”, query”hello world”)即可。你可以通过调用desktop_run_macro(macro_id”__catalog__”)来获取所有可用宏的列表及其描述。4.5 实战工作流示例让AI自动打开记事本并保存文件让我们通过一个完整的、简单的例子串联起上述工具看看AI智能体应该如何思考和执行。AI初始指令用户对Cursor说“请帮我打开记事本输入‘Hello from AI’并保存到桌面文件名为‘test.txt’。”AI执行流程步骤1 - 观察AI首先调用desktop_observe()获取当前桌面状态。它看到桌面上有浏览器、资源管理器等窗口。步骤2 - 启动应用AI决定使用desktop_launch_app(command”notepad”)来启动记事本。它调用该工具。步骤3 - 等待与确认AI调用desktop_wait(seconds2)给记事本窗口弹出留出时间。然后再次调用desktop_observe()确认名为“无标题 - 记事本”的窗口已经出现并成为活动窗口。步骤4 - 聚焦与输入为确保安全AI调用desktop_focus_window(title”无标题 - 记事本”)。然后因为要输入文本它选择更可靠的desktop_paste_text(text”Hello from AI”)进行输入。步骤5 - 保存文件AI知道保存的通用快捷键是CtrlS。它调用desktop_send_keys(keys”ctrls”)。步骤6 - 处理保存对话框再次desktop_observe()发现弹出了“另存为”对话框。AI需要将焦点切换到对话框。它调用desktop_find_window(title”另存为”)找到对话框然后用desktop_focus_window()聚焦它。步骤7 - 输入路径在聚焦的保存对话框里文件名输入框通常已默认被选中。AI调用desktop_paste_text(text”C:\Users\你的用户名\Desktop\test.txt”)输入完整路径。步骤8 - 确认保存最后AI调用desktop_send_keys(keys”enter”)按下回车键确认保存。步骤9 - 最终验证与清理AI最后调用一次desktop_observe()确认记事本窗口标题已变为test.txt - 记事本表明保存成功。任务完成后AI调用desktop_cleanup_artifacts()删除过程中产生的所有临时截图和日志文件。这个流程完美体现了“观察-计划-执行-验证”的循环以及优先使用高层操作启动应用、粘贴文本、发送快捷键的原则。5. 高级配置、调试与故障排查即使按照指南操作在实际集成和使用过程中也难免会遇到问题。本章节将分享一些高级配置技巧和常见的故障排查方法。5.1 自定义产物存储路径默认情况下技能运行产生的截图、JSON状态文件等临时产物会保存在%LOCALAPPDATA%\desktop-operator\artifacts目录下。如果你希望将它们保存到其他位置例如一个专用的监控文件夹可以设置环境变量DESKTOP_OPERATOR_ARTIFACTS。在PowerShell中临时设置仅当前会话有效$env:DESKTOP_OPERATOR_ARTIFACTS D:\MyAutomationLogs .\scripts\start_mcp_server.ps1在Windows中永久设置系统级右键点击“此电脑” - “属性” - “高级系统设置”。点击“环境变量”按钮。在“用户变量”或“系统变量”部分点击“新建”。变量名输入DESKTOP_OPERATOR_ARTIFACTS变量值输入你的目标路径如D:\MyAutomationLogs。重启任何已打开的PowerShell或命令提示符窗口以使更改生效。5.2 验证技能是否正常工作项目提供了强大的端到端验证脚本用于测试技能的各项功能是否在你的系统上正常工作。这是排查安装问题的一大利器。运行全面的测试序列.\scripts\verify_real_tasks.ps1 --task all这个命令会依次测试observe截图和窗口检测功能。notepad完整的记事本打开、输入、保存流程。browser控制浏览器默认Edge/Chrome访问特定页面。settings打开Windows设置应用。media尝试向系统发送媒体播放/暂停命令。chat测试模拟切换聊天面板的快捷键。如果某个测试失败脚本会给出明确的错误信息。如果你想在测试后保留截图等产物以供分析可以加上--keep-artifacts参数。5.3 常见问题与解决方案速查表以下表格整理了新手最常遇到的问题及其解决方法问题现象可能原因解决方案AI智能体提示“无法连接MCP服务器”或“找不到工具”1. MCP服务器未启动。2. 技能路径不正确AI未正确读取SKILL.md。3. AI客户端未启用或未正确配置MCP支持。1. 检查start_mcp_server.ps1脚本是否在运行且无报错。2. 确认克隆路径完全正确并引导AI读取该路径下的SKILL.md。3. 查阅你所用的AI智能体官方文档确认其MCP功能已开启。操作执行了但没效果如点击没反应、打字没输入1.未聚焦目标窗口最常见。2. 屏幕缩放比例不是100%。3. 权限不足尤其是操作管理员权限的窗口。4. 坐标计算错误使用绝对坐标时。1.在执行键盘操作前务必先调用desktop_focus_window。2. 将Windows显示缩放设置为100%。或考虑使用UI Automation工具替代坐标点击。3. 以管理员身份运行启动MCP服务器的PowerShell窗口。4. 优先使用desktop_click_relative或宏指令。desktop_paste_text粘贴出乱码或内容不对1. 剪贴板被其他程序干扰。2. 目标输入框不支持直接粘贴。1. 在执行粘贴前确保没有频繁操作剪贴板。可插入短暂desktop_wait。2. 对于极少数控件可尝试回退到慢速的desktop_type_text。UI Automation (uia_) 工具找不到控件1. 目标应用程序不支持或未充分暴露UI Automation接口。2. 控件识别属性如automation_id动态变化或为空。1. 使用Windows SDK自带的Inspect.exe或Accessibility Insights工具检查控件属性。2. 如果UIA不可靠果断改用基于坐标的相对点击(desktop_click_relative)。脚本运行速度太快界面跟不上缺少必要的等待前一个操作未完成就执行下一个。在可能触发界面变化的操作如启动应用、点击按钮后插入desktop_wait(seconds1-2)。观察界面加载时间动态调整等待时长。杀毒软件或安全软件报警自动化脚本模拟输入和点击的行为可能被安全软件视为可疑。将你使用的Python解释器路径或虚拟环境路径和脚本目录添加到安全软件的信任区/白名单中。5.4 为特定应用程序编写自定义宏虽然项目内置了一些通用宏但真正的威力在于为你日常使用的特定软件如你的IDE、设计工具、内部业务系统编写自定义宏。这可以极大提升自动化效率。假设你经常需要在你公司的ERP软件里执行“新建订单”操作这个过程涉及多次点击固定位置的按钮。你可以通过修改技能包代码来添加一个自定义宏。大致步骤需要Python编程知识定位到desktop_operator_core目录下的宏定义文件例如macros.py。参考现有宏的格式编写一个新的函数。例如定义一个erp_create_new_order函数内部使用pyautogui或pymouse执行一系列desktop_click_relative和desktop_paste_text操作。将这个新宏注册到宏目录中。在references/macro-catalog.md文件中添加对新宏的说明。重启MCP服务器AI智能体就能通过desktop_run_macro调用你这个专属的“新建订单”宏了。深度建议在编写自定义宏时尽量使用相对点击和快捷键避免绝对坐标。同时在关键步骤后加入状态验证比如点击“提交”按钮后调用desktop_validate_state检查是否出现了“提交成功”的提示窗口使宏更加健壮。6. 安全考量与最佳实践将桌面操作权限赋予AI是一个需要慎重的决定。CUA Desktop Operator在设计上采取了一些安全措施但使用者仍需遵循最佳实践。安全设计本地执行所有操作都在你的本地计算机上完成截图、按键记录等敏感数据不会离开你的机器。需显式启动MCP服务器需要你手动运行脚本启动AI无法自行启动它。权限隔离技能以启动它的用户权限运行不会获得超出你当前账户的权限。使用者最佳实践最小权限原则不要使用管理员账户日常运行AI和此技能。创建一个标准用户账户进行操作。任务范围限制在向AI描述任务时尽量具体、有边界。例如说“请帮我将下载文件夹里的所有.jpg文件移动到‘图片’文件夹”而不是“请整理一下我的电脑”。监督模式在初期可以让AI逐步执行任务你手动确认每一步后再继续。观察AI是如何使用desktop_observe和制定计划的这既是学习也是安全监督。保护敏感信息自动化过程中可能会涉及输入密码、查看敏感文档。绝对不要让AI自动化处理包含密码输入或高度敏感文件的操作。对于需要登录的场景考虑使用已保存的会话或令牌。善用desktop_validate_state在关键的操作步骤如付款确认、文件删除后让AI调用此工具验证结果是否符合预期这能增加一层保险。一个重要的心理建设这不是一个全知全能、完全自主的AI管家。它是一个由你发起、受你控制、能力有限的工具。它的可靠性取决于你编写的提示词任务描述的清晰度以及它“观察”到的屏幕信息的准确性。把它想象成一个你可以用自然语言指挥的、更智能的“自动化脚本生成器”和“执行器”而非一个具有独立意志的智能体这样能更好地管理预期并安全地发挥其价值。从我个人的使用经验来看最成功的模式是将复杂的、多步骤的任务拆解分阶段交给AI执行并在关键节点进行复核。例如整理文档任务可以先让它观察并列出所有文件你确认列表无误后再让它执行移动或重命名操作。这种“人机协同”的方式既能享受自动化带来的效率提升又能牢牢掌控整个过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2613973.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…