MCP协议:让AI工具互联互通,告别点对点适配
MCPModel Context Protocol最近在AI开发者圈子里讨论度非常高简单说它就是给AI工具之间定的一套“普通话”。以前每个AI应用想接外部工具都要开发一堆私有接口换一个平台就得重新适配一遍要么写胶水代码要么做定制插件成本高、难维护。MCP要解决的就是这个适配成本问题它让AI模型能以统一的方式发现工具、调用工具、读取资源、执行指令整个链路从“点对点焊死”变成“插上就能用”。这篇文章我会从协议本身的架构讲起再用一个实际的工具链搭建过程说明MCP怎么落地最后整理一些我自己踩过的坑和排查经验。适合正在做AI应用开发、做Agent工具链或者想把现有的数据服务对接到模型上用的开发者参考。1. 为什么AI工具之间需要一种“通用语言”1.1 信号烟囱困境做系统集成的朋友一定对“烟囱式架构”不陌生。企业内部有客户系统、订单系统、库存系统每个系统有自己的接口、鉴权方式、数据格式和错误处理逻辑。以前做一个跨系统查询往往需要写专门的适配层一个接口一个接口地手工对接。你把这些接口暴露给了某个AI助手当这个助手要去连接另一个外部服务时同样的适配工作又要重做一遍。这种问题在AI时代被放大了。因为AI模型本身并不会主动“理解”一个接口的语义它需要的是接口描述、参数类型、返回结构的完整信息。传统的REST API给的是JSON文档但文档里往往缺少模型可消费的语义层。比如某个接口需要传入一个日期范围返回值里有个状态字段模型怎么知道这个状态字段是枚举值还是布尔值怎么知道边界条件MCP把这个问题提升到协议层面用一套标准化的元数据描述解决“模型不知道工具怎么用”的痛点把工具定义、参数约束、返回格式、错误码统一封装起来。1.2 从插件市场到开放协议过去一两年很多AI产品都推出了自己的插件机制。插件机制的本质是垂直集成平台方定义一套规范开发者按照规范写插件插件然后被加载进平台运行。这种玩法好处是生态可控坏处是每一家平台都有自己的SDK、发包规范和认证方式。开发者做一个插件往往要适配好几个平台还得跟着平台的版本演进不断维护。MCP的思路不一样它更像是一个水平协议层。一端是模型运行环境客户端另一端是数据源、工具服务和业务系统服务器中间用标准化的消息格式进行交互。开发者写一次MCP服务器任何支持MCP的客户端都能直接调用不需要再关心对方平台的私有格式。这有点类似于最早HTML和HTTP的关系浏览器只要实现HTTP协议就能访问所有符合HTTP规范的服务内容怎么渲染是网站自己的事。MCP想做的是类似的事情只不过连接的不再是“网页”而是“AI能操作的工具”。1.3 MCP的定位用最通俗的话说MCP把“AI应用如何连接外部世界”这件事拆成了两个清晰的边界模型侧不需要知道每一个工具背后的实现细节工具侧不需要知道模型是从哪里来的、用什么推理框架只要双方都遵守MCP规定的消息结构和生命周期它们就能正常协作。个人开发者不需要重复实现复杂的工具管理逻辑只要关注自己的领域逻辑。平台和框架也无需为每一种工具开发专门的适配器因为大家都说同一种“普通话”。2. MCP协议的核心架构拆解2.1 一段话理解整个架构MCP采用典型的客户端-服务器模型。这里的客户端通常是AI应用本身比如本地运行的Agent框架、IDE里的智能助手、或者是某个可以调用外部工具的聊天界面。服务器则是提供能力的服务可以是一个本地Python进程也可以是一个通过HTTP对外提供服务的远程端点。客户端负责发起会话、发起请求、处理结果。服务器负责注册工具、接收调用、返回结果。两者之间通过传输层进行通信传输层之上是消息层消息层遵循JSON-RPC 2.0规范。每次交互由请求、响应、通知三类消息组成。请求必须有一个方法名和一组参数响应要么返回结果要么返回错误通知则是单向的不需要回应。架构里还有一个容易被忽略的角色SDK。MCP官方提供了Python和TypeScript的SDK用来屏蔽底层协议细节。你不需要自己解析JSON-RPC消息也不需要管理连接状态SDK已经把大部分工作做完了。这种设计对开发者非常友好我最初没意识到SDK帮我们省掉了多少体力活等到自己尝试用纯手动方式去构造一次协议交互时才知道有多繁琐。2.2 传输通道的选择MCP支持两种主流传输方式标准输入输出stdio和HTTPSSE。两种方式适合的场景完全不同传输方式适用场景优缺点stdio本地工具、命令行应用、单进程Agent简单直接无需开放端口和本地进程天然配合HTTPSSE远程服务、多用户共享、部署在服务器上可跨网络访问但需要处理跨域、鉴权、并发连接实际项目中如果你只是给个人开发环境接入一个工具用stdio就够了。客户端直接启动一个子进程通过标准输入输出和这个进程通信。这种方式的好处是权限边界清晰没有网络暴露面。但如果你的工具要供多个人使用或者要部署到某个中心节点那就必须使用HTTP模式把MCP服务器暴露成一个HTTP端点然后通过SSE保持服务端到客户端的推送通道。我在本地开发时通常先用stdio跑通逻辑确认无误后再封装成一个HTTP服务。这样调试效率最高因为可以直接在终端里看到所有原始输出。2.3 能力协商机制MCP不是一个静态的接口列表它有非常灵活的能力协商机制。客户端和服务器建立连接后先进行一次初始化握手。客户端发送自己的协议版本和支持的能力服务器也返回自己的能力列表双方在此基础上对齐后面要使用的消息类型。这和传统REST API有本质区别。REST API一旦发布接口就是固定的客户端只能按约定调用。MCP让双方动态确认能力服务器可以告诉你“我支持工具调用也支持资源读取但我不支持日志输出。”客户端就能据此适配自己的行为。这个设计解决了模型交互场景中很现实的问题不同模型、不同框架对工具能力的支持程度不一样。有的模型只能自然语言调用工具有的模型需要结构化的指令有的模型可以读取文档型资源但无法执行操作。通过能力协商MCP让服务端不用为了迁就某个特定客户端而降低能力上限。2.4 权限模型必须说明的一点是MCP协议本身不是安全边界。它不负责身份认证不负责沙箱隔离也不负责敏感操作拦截。MCP的定位是把工具暴露给AI用至于这个“暴露”是否安全完全取决于部署方自己的实现。打个比方MCP像是给你家装了一个智能门禁门禁系统本身只负责识别指令并执行开关门的动作。至于哪些人能拿到授权授权后能开哪个门这需要你自己配置门禁不会替你做决定。所以在生产环境里MCP服务器一定要保留自己的鉴权和审计逻辑。工具函数内部要校验调用者的身份对涉及写操作、删除操作、发送消息这类有副作用的动作要有明确的确认机制。不要因为“AI调用工具”这个场景新鲜就放松了对传统安全边界的警惕。3. 从零搭建一个MCP工具链3.1 环境准备我建议用Python来搭建第一个MCP服务器因为Python的SDK最成熟迭代也最快。你需要准备一个3.10以上版本的Python环境建议用虚拟环境隔离依赖。核心依赖就是官方SDK安装命令很简单pip install mcp如果你不想从零开始写SDK层面的初始化代码也可以用更高层的框架来定义工具底层会自动帮你完成协议处理。我自己更倾向于先用官方SDK写完一个最小实现再用高层框架提升开发效率这样可以更清楚地理解协议层面的交互过程。3.2 实现一个最小MCP服务器下面我用一个模拟的“库存查询服务”作为例子。这个服务暴露两个能力按商品编号查询库存数量、按仓库编号查询仓库容量。from mcp.server.fastmcp import FastMCP mcp FastMCP(模拟库存服务) # 模拟库存数据 STORAGE { A1001: {name: 无线鼠标, stock: 238, warehouse: W-01}, A1002: {name: 机械键盘, stock: 96, warehouse: W-01}, B3005: {name: 显示器支架, stock: 0, warehouse: W-02}, } mcp.tool() def query_stock(item_id: str) - dict: 根据商品编号查询库存数量与所在仓库位置 Args: item_id: 商品唯一编号例如 A1001 if item_id not in STORAGE: return {error: 商品不存在, item_id: item_id} data STORAGE[item_id] return { item_id: item_id, name: data[name], stock: data[stock], warehouse: data[warehouse], } mcp.resource(warehouse://{warehouse_id}) def get_warehouse_info(warehouse_id: str) - str: 通过资源URI读取某个仓库的信息 warehouses { W-01: 华东一号仓面积12000平方米主营电子配件, W-02: 华南二号仓面积8000平方米主营办公外设, } return warehouses.get(warehouse_id, 仓库不存在) if __name__ __main__: mcp.run()这段代码看起来很短但它已经包含了MCP的核心能力拆解mcp.tool()定义了一个工具函数SDK会自动把函数签名和docstring转换成工具描述信息mcp.resource()定义了一个资源通过URI格式访问mcp.run()启动服务默认使用stdio传输工具描述不是随意写的它是模型理解工具的关键。docstring里写清楚每个参数的语义、格式和示例模型才能正确生成调用参数。如果描述含糊模型就会乱猜参数值。3.3 MCP客户端怎么接入服务端跑起来以后需要在客户端配置MCP服务器。市面上主流的AI客户端工具都支持在配置文件中声明MCP服务器声明方式大同小异。下面是一个典型的配置示例{ mcpServers: { inventory: { command: python, args: [/path/to/inventory_server.py], env: {} } } }配置完成后客户端会在启动时自动拉起这个Python进程并通过stdio方式通信。你不需要手动启动服务也不需要关心通信细节。客户端会自动发送初始化消息然后请求工具列表AI应用就能看到“查询库存”这个工具了。这里有个容易忽略的细节配置里的command和args字段决定了客户端会启动哪个进程参数路径必须写绝对路径或者确保相对路径能被正确解析。很多时候工具列表加载不出来就是因为路径配置错误进程启动失败但又没有明显的报错信息。3.4 本地服务器与远程连接本地单机场景用stdio一片祥和但如果你想把同一个MCP服务器部署到多台机器共享就需要切换成HTTP模式。官方SDK支持通过FastMCP的run方法传入传输参数来启动HTTP服务if __name__ __main__: mcp.run(transporthttp, host0.0.0.0, port8000)启动后会有一个HTTP端点客户端配置里不再写command和args而是写url字段指向这个HTTP地址。这种模式适合集中部署、统一更新。但要注意HTTP模式意味着你的工具服务暴露在了网络上必须做好鉴权、限流和审计。不要把写操作、删操作、发消息这类工具随意暴露在公网上否则一旦被恶意调用后果会很严重。我在团队内部做过一次远程MCP服务试点把数据查询类工具统一部署成一个中心服务各个客户端通过HTTP接入。好处是数据规则改了只需要更新中心服务客户端配置完全不动。但这个模式对稳定性要求比较高因为所有客户端都依赖同一个服务一旦服务不可用所有接入方的的工具都会失联。4. 核心机制深潜工具、资源、指令之间的对话4.1 三种原语各管一摊MCP协议定义了三种核心原语每个原语承担不同的职责理解它们的区别是设计MCP服务的关键。工具Tools是模型可以主动调用的函数有输入有输出通常带有副作用。适合用于查询、计算、发送请求、生成报告这类任务。工具的元信息包括名称、描述、输入参数的JSON Schema模型会根据这些信息决定是否调用以及怎么传参。资源Resources是模型可以读取的数据。资源通过URI定位可以是文件内容、数据库查询结果、API返回体等。资源不执行动作只返回数据适合用于让模型“查阅资料”。指令Prompts是预定义的提示词模板包含固定的指令序列。模型可以通过指令快速进入某个特定工作流。例如约定好“入门指令”让模型扮演某个角色或者“分析指令”让模型按固定维度分析数据。这三者的关系有点像操作系统的“程序、文件、脚本”工具是程序可以执行资源是文件可以读取指令是脚本可以调度程序和文件。4.2 一次真实请求的完整生命周期为了更好地理解MCP的作用机制我拆解一个真实场景用户问AI助手“目前仓库里有哪些商品库存为零”。客户端已经配置好MCP服务器启动后服务器加载工具列表客户端发送initialize消息双方协商版本和能力客户端发送tools/list请求服务器返回工具清单包含“查询库存”这个工具的元信息模型根据用户的自然语言问题决定调用“查询库存”工具客户端发送tools/call请求携带参数指定要查询的商品类别或仓库范围服务器执行工具函数返回库存数据和空库存商品列表模型根据返回数据组织自然语言回答向用户呈现结果整个生命周期里模型只面对工具抽象出来的接口不需要知道库存数据存在哪个数据库里不需要知道服务器是怎么查询的。这种解耦设计让工具方可以随时替换底层实现完全不影响模型侧。4.3 上下文管理与多轮协同MCP的上下文管理能力体现在“会话”概念上。一次连接建立之后客户端和服务器可以保持会话状态服务器能记录工具调用历史供后续请求参考。这在多轮交互中特别有用。举个例子用户第一轮问“查一下A1001商品的库存”第二轮说“帮我把它补货到300件”。如果上下文管理到位服务器能记得A1001指的是什么不需要用户重新完整描述。如果上下文管理不到位模型可能把第二轮的请求理解成一个全新的工具调用。MCP的会话机制保证了这种连贯性但具体实现质量取决于SDK版本和服务器端的记忆管理策略这属于开发者在设计时就要重视的问题。我自己设计MCP服务时习惯把“无状态工具”和“有状态会话”分开。无状态工具适合做查询有状态会话适合做多步骤操作。两者混在一起很容易让服务器的状态管理复杂化。5. 常见问题与排查技巧实录5.1 工具列表加载不出来这是最常见的问题especially在刚配置完客户端时。现象是客户端界面里看不到任何工具或者报错提示无法连接服务器。第一步要确认服务器进程是否真的启动了。用stdio配置时在命令行里手动跑一次服务器脚本看看有没有报错。Python脚本如果缺少依赖、路径写错、端口被占启动时都会报错。另一个原因是SDK版本不匹配。MCP协议还在快速演进服务器端和客户端用的SDK版本差太多可能导致能力协商失败。解决办法是统一升级两端的SDK到较新版本尽量不要跨大版本混用。5.2 工具参数老是传不对如果模型调用了工具但传的参数总是不符合预期多半是工具描述写得不清楚。模型是通过docstring和函数签名来理解参数的函数签名里的参数名和类型要足够直观docstring里要写明每个参数的取值范围和示例格式。另外JSON Schema的约束会直接影响模型生成参数的方式。如果你定义了枚举类型模型就会从枚举值里选如果你定义了字符串格式模型就会按格式生成。所以合理利用类型约束比反复提示词更有效。5.3 返回数据报错但服务没崩工具函数内部如果出现类型异常、空指针访问之类的问题返回的错误信息可能不够明确。FastMCP默认会捕获异常并返回协议层面的错误但错误信息往往不够详细。建议在工具函数内部自己包一层异常处理返回可读性强的业务级错误码。比如上面的库存查询我更倾向返回一个包含“error”字段的字典而不是直接抛异常。因为模型拿到异常信息后能做的事情有限但拿到业务错误码后它可以尝试其他参数或者换一个工具。5.4 远程服务连不上HTTP模式远程连接失败先检查网络可达性再检查跨域和鉴权配置。很多MCP客户端是本地应用跨域请求会受限。如果服务器没有在响应头里适配跨域客户端可能连接成功但收不到响应。另外一些平台要求在请求头里带上认证信息如果你漏掉了这个配置会得到401或403错误。排查的思路先用命令行工具直接请求HTTP端点看能不能拿到响应排除网络问题。再查看客户端日志定位是连接阶段失败还是握手阶段失败对症处理。6. 再分享一个实用的工作流MCP最让我觉得顺手的地方是它把“工具发现”和“工具调用”这两个动作统一了。以前做一个Agent工具链最繁琐的部分不是业务逻辑而是有一套种各样的注册和管理机制。MCP出现之后我几乎所有的外部连接都通过MCP来做本地工具用stdio共享服务用HTTP。日常我开发一个Agent应用时习惯先把数据读取类接口封装成resource把有副作用的操作封装成tool。这样模型在多数场景下只读数据做推理分析只有在用户明确要求执行某个操作时才调用带副作用的工具。这种“读归读写归写”的划分既安全也清晰。还有一个心得是MCP服务器的工具函数命名要遵循统一的命名风格。不要一会儿英文一会儿中文一会儿带下划线一会儿驼峰。模型对工具名的语义理解非常依赖名称本身服务端提供什么命名客户端就会形成对应的调用习惯。命名一致性直接影响模型行为。7. 几个核心心法与建议最后分享几条我在实际使用中总结出来的经验。第一元信息比实现更重要。MCP工具函数的docstring和参数描述直接决定模型使用工具的质量。你花半个小时打磨工具描述比花半天调参更有效益。写描述时要站在模型的视角想如果我不认识这个系统只给了这段描述我能正确使用它吗第二错误处理要走在模型前面。MCP服务器返回的错误越结构化模型就越能理解并给出正确的处理策略。不要随便抛一个字符串异常最好返回包含错误码、错误信息、可操作建议的数据结构。第三权限意识要前置。MCP服务器一旦接入Agent工具就可能被自动触发。除了查数据的只读工具外其他操作一定要有授权校验。我见过不少开发者在本地环境跑得很欢觉得“反正只有我能访问”等部署到共享环境忘了加认证结果被乱调用数据一团糟。第四版本记录要留意。MCP的SDK和协议规范更新很快官方SDK偶尔会有接口变更。项目里固定SDK版本升级时先在测试环境验证工具加载和调用流程再切生产否则一个SDK升级就可能打乱整个工具链。MCP本身还在快速演进中但它把AI工具互联互通这个方向做了一个很好的标准化尝试。现在接入成本已经很低任何人都可以在十几分钟内把一个自定义工具变成AI能调用的能力。如果你想让你的数据和工具真正被AI时代利用起来MCP是一个值得尽早入手的路径。

相关新闻

rea trace 命令实战:从一行字符串线索到功能实现代码的三步闭环

rea trace 命令实战:从一行字符串线索到功能实现代码的三步闭环

rea trace 命令实战:从一行字符串线索到功能实现代码的三步闭环 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea 拿到一个程序&#xff…

2026/10/16 5:53:44 阅读更多 →
GLSL mod() 取模函数深度解析:The Book of Shaders 中实现周期性平铺、索引与动画的基石

GLSL mod() 取模函数深度解析:The Book of Shaders 中实现周期性平铺、索引与动画的基石

【免费下载链接】thebookofshaders Step-by-step guide through the abstract and complex universe of Fragment Shaders. 项目地址: https://gitcode.com/gh_mirrors/th/thebookofshaders 点击查看 免费下载 导读 mod() 是 GLSL 中最基础也最高频的数学函数之一…

2026/10/16 5:52:44 阅读更多 →
ExplorerPatcher 配置指南:三套套餐把 Windows 11 任务栏与开始菜单改回 Win10 经典样式

ExplorerPatcher 配置指南:三套套餐把 Windows 11 任务栏与开始菜单改回 Win10 经典样式

ExplorerPatcher 配置指南:三套套餐把 Windows 11 任务栏与开始菜单改回 Win10 经典样式 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher…

2026/10/16 5:52:44 阅读更多 →

最新新闻

Lunar 6.7.11 修复说明:Sync Mode 在 MacBook Air 与 iMac 上改用 nits 同步

Lunar 6.7.11 修复说明:Sync Mode 在 MacBook Air 与 iMac 上改用 nits 同步

桌面应用 【免费下载链接】Lunar Intelligent adaptive brightness for your external monitors 项目地址: https://gitcode.com/gh_mirrors/lu/Lunar 点击查看 免费下载 Lunar 6.7.11 是一个针对 Sync Mode(同步模式) 的定向修复版本。此次…

2026/10/16 6:27:53 阅读更多 →
MooTool Next-Compose 增量演进:MCP stdio 工具链、F03 格式化引擎与更新下载流的工程化落地

MooTool Next-Compose 增量演进:MCP stdio 工具链、F03 格式化引擎与更新下载流的工程化落地

桌面应用开发工具 【免费下载链接】MooTool Handy tool set for developers 项目地址: https://gitcode.com/gh_mirrors/mo/MooTool 点击查看 免费下载 导读 本篇以仓库中的增量开发记录 next-compose/docs/diff/561-mcp-reformat-update-env-net-vault-css-slice…

2026/10/16 6:27:53 阅读更多 →
AtCoder Beginner Contest 478

AtCoder Beginner Contest 478

AtCoder Beginner Contest 478 A - Grapes 题意:有N个人,编号为1到N,现在要把M颗葡萄分给他们。每次按照1, 2, …, N的顺序,每人分一颗,分到第N个人以后再从第1个人开始,直到所有葡萄分完。最后输出每个人分…

2026/10/16 6:27:53 阅读更多 →
google-api-nodejs-client 的 ondemandscanning 模块演进全解读:从 CHANGELOG 版本脉络到容器镜像漏洞扫描实战

google-api-nodejs-client 的 ondemandscanning 模块演进全解读:从 CHANGELOG 版本脉络到容器镜像漏洞扫描实战

后端 【免费下载链接】google-api-nodejs-client Googles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included. 项目地址: h…

2026/10/16 6:27:53 阅读更多 →
用Python和SQLite自建个人财务数据中台:从记账到自由分析

用Python和SQLite自建个人财务数据中台:从记账到自由分析

1. 从"financial-services"到个人财务数据中台:我为什么自建了一套记账分析系统先说个背景。我一直在关注"financial-services"这个方向,但说实话,金融服务的概念太大了——从银行App到支付工具,从个人记账软…

2026/10/16 6:27:53 阅读更多 →
Zabbix 监控 TACACS 服务实战:App TACACS Service 模板(net.tcp.service 简单检查)全解析

Zabbix 监控 TACACS 服务实战:App TACACS Service 模板(net.tcp.service 简单检查)全解析

【免费下载链接】community-templates Zabbix Community Templates repository 项目地址: https://gitcode.com/gh_mirrors/co/community-templates 点击查看 免费下载 本文围绕 Zabbix Community Templates 仓库中的 App TACACS Service 模板展开,讲解…

2026/10/16 6:26:53 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →