白山网站制作企业网站备案备注

张小明 2026/1/9 10:34:28
白山网站制作,企业网站备案备注,分析网站建设发展措施,10g免费空间申请文章目录1 什么是 MCP#xff08;Model Context Protocol#xff09;2 为什么要做一个 ROS2 的 MCP 工具3 工具选型3.1 现阶段 Agent 能用的工具形态3.2 为什么选择 Qoder#xff0c;以及 Qoder 如何支持 MCP3.2.1 为什么是 Qoder3.2.2 Qoder 中对 MCP 的支持方式4 MCP Serv…文章目录1 什么是 MCPModel Context Protocol2 为什么要做一个 ROS2 的 MCP 工具3 工具选型3.1 现阶段 Agent 能用的工具形态3.2 为什么选择 Qoder以及 Qoder 如何支持 MCP3.2.1 为什么是 Qoder3.2.2 Qoder 中对 MCP 的支持方式4 MCP Server 实现核心代码4.1 MCP Server初体验4.2 获取 ROS2 Node List 的底层实现4.3 暴露为 MCP ToolAgent 可调用4.4 启动 MCP Server5 解决关键问题ROS2 环境如何注入 MCP5.1 解决方案启动脚本统一环境6 在 Qoder 中注册 MCP 服务6.1 注册MCP服务6.2 验证7 效果Agent 如何“使用”这个能力谨以本文记录我第一次使用自定义 MCP 服务将Agent接入ROS2 系统的全过程。1 什么是 MCPModel Context Protocol简单来说MCP 是一种标准化协议用于让大模型发现你暴露的能力Tools / Resources理解参数含义Schema调用外部系统将执行结果重新纳入上下文进行推理与传统 API 不同MCP 并不是“给人调用的接口”而是专门为大模型设计的“能力协议”它解决的是三个核心问题模型如何知道“你能做什么”模型如何安全、结构化地调用能力调用结果如何自然进入模型上下文2 为什么要做一个 ROS2 的 MCP 工具在机器人与自动化系统中ROS2 是事实上的基础设施但它有一个天然痛点系统状态复杂但对外不“可读”比如当前有哪些节点在运行系统是否处于预期状态是否可以安全执行下一步操作如果 Agent 想要真正参与系统决策它必须先**“看见世界”**。因此我选择从一个最基础、也是最关键的能力入手让 Agent 能够获取当前 ROS2 Node List这是一个只读无副作用非常适合 Agent 推理的能力3 工具选型3.1 现阶段 Agent 能用的工具形态在当前阶段大模型真正“可用”的能力主要集中在三类函数 / Tool 调用Function Calling通过结构化参数调用外部能力模型可以基于返回结果继续推理。上下文注入Context / Resource将外部系统状态作为“只读信息”提供给模型用于决策判断。有限的执行代理Agent Loop在“看 → 想 → 做”的闭环中逐步推进任务完成。但在工程实践中可以明显感受到一个问题模型并不适合直接“操作系统”它更擅长“理解系统状态”。因此本次设计并没有一上来就做“启动 / 停止 ROS2 节点”之类的强执行能力而是从最安全、最基础、也最有价值的工具开始读取 ROS2 Node List让 Agent 对当前系统状态形成认知这类工具具备三个特点只读、无副作用可反复调用非常利于模型推理这也是“Agent 先看世界再动手”原则在工程层面的具体落地。3.2 为什么选择 Qoder以及 Qoder 如何支持 MCP在工具选型上我最终选择了Qoder作为 Agent 侧的承载平台主要基于以下几个现实原因。3.2.1 为什么是 Qoder首先是可落地性。Qoder 是阿里体系内推出的 Agent / 编程助手工具在国内网络环境下具备几个非常明显的优势无需复杂网络环境调用稳定整体成本可控性价比高相比一些需要海外网络、或者对账号和配额要求较高的方案Qoder 在工程实践中更容易长期使用。其次是定位非常工程化。Qoder并不是单纯的“聊天模型”而是天然围绕代码理解工具调用工程上下文来设计的这使得它非常适合用来承载 MCP 这种“面向系统能力”的协议。3.2.2 Qoder 中对 MCP 的支持方式从使用体验来看Qoder 对 MCP 的支持是非常直接且工程友好的。其核心机制可以概括为三点通过配置文件注册 MCP Server启动时自动发现 MCP Tool在对话中按需调用并回收结果也就是说只要 MCP Server 符合标准协议Qoder 就可以自动识别你暴露了哪些工具理解工具参数含义在合适的上下文中主动调用将执行结果注入到模型上下文中在本文的实现中MCP Server 使用 Python 编写通过 stdio 方式运行Qoder 负责进程生命周期管理这使得整体架构非常干净Qoder ↓ MCP标准协议 自定义 MCP ServerPython ↓ ROS2 rclpyAgent 不需要关心 ROS2 的任何细节而 ROS2 系统也不需要“适配模型”MCP 成为了两者之间稳定、可演进的接口层。4 MCP Server 实现核心代码4.1 MCP Server初体验importasynciofrommcp.server.fastmcpimportFastMCP mcpFastMCP(Hello-MCP)def_get_node_list()-list[str]:importrclpyfromrclpy.nodeimportNodeifnotrclpy.ok():rclpy.init()nodeNode(mcp_list_nodes_tmp)nodesnode.get_node_names()node.destroy_node()returnnodesmcp.tool()asyncdefget_ros2_node_list()-list[str]:returnawaitasyncio.to_thread(_get_node_list)if__name____main__:mcp.run()FastMCP提供了一个非常轻量的方式来定义 MCP Server不需要关心底层协议细节。4.2 获取 ROS2 Node List 的底层实现def_get_node_list()-list[str]:importrclpyfromrclpy.nodeimportNodeifnotrclpy.ok():rclpy.init()nodeNode(mcp_list_nodes_tmp)nodesnode.get_node_names()node.destroy_node()returnnodes几点说明使用rclpy原生接口临时节点只用于查询不参与通信返回值是list[str]非常利于模型理解4.3 暴露为 MCP ToolAgent 可调用mcp.tool()asyncdefget_ros2_node_list()-list[str]:returnawaitasyncio.to_thread(_get_node_list)这里有两个关键点使用mcp.tool()显式声明能力通过asyncio.to_thread避免阻塞 MCP 主线程这一步完成后Agent 已经可以“看见”这个工具了。4.4 启动 MCP Serverif__name____main__:mcp.run()默认使用stdio 模式非常适合 IDE / Agent 集成。5 解决关键问题ROS2 环境如何注入 MCP一个非常容易踩的坑是conda 环境中的 Python 默认无法 import rclpy原因是rclpy并不是 pip 包它依赖 ROS2 的环境变量5.1 解决方案启动脚本统一环境#!/usr/bin/env bashsource/opt/ros/humble/setup.bashsource~/Softwares/Miniconda/bin/activate robot python3 path_to/server.py这个脚本保证了ROS2 环境已就绪MCP Server 运行在 conda 的robot环境中rclpy 可以被正确 import6 在 Qoder 中注册 MCP 服务最后一步是让 Qoder 知道这个 MCP Server 的存在。这里也很简单6.1 注册MCP服务按下ctrlshift,进入Qoder设置页面。选中MCP服务。点击右上角 添加会打开一个json文件编辑页面输入以下内容即可。{mcpServers:{My-mcp:{command:/home/caston/Code/mcp/start_ros2_mcp.sh}}}6.2 验证添加完成后不要急我们还需要验证一下是否有问题回到配置页面看一下是否和我的截图一样工具一栏出现了如果有恭喜你配置成功。如果没有标红那么你还需要检查一下是不是哪里搞错了。根据报错解决以后执行一下刷新。如果一切ok那就ok了。哈哈说句废话。配置完成后Qoder 会启动 MCP Server发现get_ros2_node_list工具在合适的时机自动调用将返回的 Node List 注入模型上下文此时Agent 已经真正具备了感知 ROS2 系统状态的能力。开始享用美食7 效果Agent 如何“使用”这个能力仍然简单!!!问他命令他。ok我们向Qoder提问“看看现在有哪些ROS2节点”Qoder老老实实的调用了自定义的MCP工具并给出准确的答复。nice从 Agent 的视角看行为大致是调用get_ros2_node_list获得当前系统节点列表判断系统状态是否符合预期根据指令考虑还有哪些步骤需要执行决定是否执行下一步操作未来扩展整个过程无需人为干预。后续我会继续记录 MCP ROS2 Agent 的更多实践最终目标是让大模型长出双手成为一个真正“理解并参与系统运行”的 Agent而不仅是对话工具。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

宁波网站建设lonoowordpress页面内

ag-ui TypeScript SDK终极指南:构建类型安全的AI应用 【免费下载链接】ag-ui 项目地址: https://gitcode.com/gh_mirrors/agu/ag-ui 你是否曾经在开发AI应用时,因为类型错误而花费数小时调试?或者因为数据结构不匹配而导致整个应用崩…

张小明 2025/12/31 17:04:02 网站建设

服务网站建设企业湘潭企业网站建设 p磐石网络

MinIO开源版本与商业版本深度对比分析:技术选型指南与部署最佳实践 【免费下载链接】minio minio/minio: 是 MinIO 的官方仓库,包括 MinIO 的源代码、文档和示例程序。MinIO 是一个分布式对象存储服务,提供高可用性、高性能和高扩展性。适合对…

张小明 2025/12/31 17:04:03 网站建设

网站开发需要看哪些书seo的优化技巧有哪些

HFI高频方波注入方案stm32f405 无感FOC控制 直接闭环启动 永磁同步电机无感控制,0速带载启动,堵转保持扭矩 低速HFI, 高速SMO,全速域运行。 基于stm32f405。 高频注入零速启动三步走:1 .先是高频注入,角度…

张小明 2025/12/31 17:04:05 网站建设

做视频网站侵权吗获客引流100种方法

目录后台任务与WebSocket实时应用开发指南1. 引言:现代Web应用的实时需求 {#引言}1.1 实时应用的关键指标1.2 技术选型对比2. 技术架构概览 {#技术架构}2.1 系统架构图2.2 核心组件交互流程3. 后台任务系统设计与实现 {#后台任务系统}3.1 任务调度器设计4. WebSocke…

张小明 2026/1/9 8:44:00 网站建设

wordpress建站动画wordpress学生

1、首先,聊一聊什么是 Agent? 先来看看openAI给出的定义: 也就是: Agent 是能够代表你独立完成任务的系统。 说简单一点,可以理解 Agent 就是变个形式的 “人”,不仅可以思考,而且可以实际行动。 传统 LLM…

张小明 2026/1/7 12:51:29 网站建设

网页制作与设计自考seo的主要分析工具

Path of Building PoE2珠宝系统入门指南:从零开始掌握天赋树优化 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2作为流放之路最强大的免费角色构建工具,其…

张小明 2026/1/7 23:48:43 网站建设