- 博客(63)
- 收藏
- 关注
原创 MCP 的三种数据传输模式教程(stdio / SSE / Streamable HTTP)
本文介绍了MCP协议的三种数据传输模式:stdio、旧版HTTP+SSE和推荐的streamable-http。stdio适用于本地单机场景,通过标准输入输出通信;旧版HTTP+SSE已废弃,仅用于兼容历史系统;streamable-http是当前远程服务的标准方案,支持单端点JSON或SSE响应。文章详细对比了三种模式的优缺点,提供了选型建议和迁移指南,强调新项目应优先使用stdio或streamable-http,并给出了调试排障清单和团队规范建议。
2026-03-25 16:50:22
1087
原创 AI 调用 MCP 的全流程教程(基于 Streamable HTTP)
AI 调用 MCP 全流程摘要 MCP(Model Control Protocol)规范了AI系统与工具间的交互流程。核心步骤包括: 配置MCP Server地址(TOML/JSON) 模型解析用户请求,生成工具调用意图 建立MCP会话(initialize/initialized握手) 获取工具目录(tools/list) 执行工具调用(tools/call),支持JSON/SSE两种返回格式 结果回注模型生成最终回答 关键特性: 支持流式返回(SSE)和会话复用 错误处理区分协议错误和业务错误 需记录
2026-03-25 16:43:15
672
原创 Python MCP 完整示例:Server + Client
Python MCP 完整示例摘要 本文提供了Python MCP(Microservice Communication Protocol)的最小完整实现示例,包含Server和Client两部分: Server端:实现两个工具函数 add():整数加法 build_daily_report():生成格式化工日报 Client端:通过stdio连接Server 列出可用工具 调用add工具计算7+5 调用日报生成工具并输出结果 运行方式: 安装依赖:pip install "mcp[cli]&qu
2026-03-24 15:57:53
345
原创 MCP 教程:MCP Server,MCP Client,AI模型之间的关系
MCP系统架构与调用流程解析 本文详细阐述了MCP系统中Server、Client和AI模型三者的关系与职责分工: 角色分工: MCP Server作为能力提供方,负责暴露工具/资源并执行具体操作 MCP Client作为协议执行方,处理连接、握手、调用和结果回传 AI模型作为决策方,判断何时调用哪个工具 调用流程: 用户请求→模型决策→Client发起调用→Server执行→结果返回模型→生成最终响应 实践指导: 提供了Codex配置和Python自建Client两种实现方案 区分了自动调用与强制调用场景
2026-03-24 15:56:27
715
原创 Skills 实际运用教程
摘要 本文是一份面向落地的Skills实战教程,详细介绍了如何从真实需求出发构建有效的Skill。主要内容包括: Skill开发流程:从定义目标、确认触发词、划定边界,到设计目录结构和验证步骤的完整工作流。 关键实践: 先明确任务边界再开发 优先写好description和元数据 将详细知识下沉到references目录 可重复操作脚本化 实用模板:提供了可直接使用的SKILL.md模板,强调写清输入输出、检查点和失败分支。 实战案例:以MediaCrawler项目为例,展示如何构建"爬取结果后处
2026-03-19 11:29:50
662
原创 Skills 理论知识教程
本文系统介绍了AI代理中的Skill概念,将其定义为"可复用任务模块"。Skill不同于普通提示词、脚本或知识库,它通过结构化流程设计、渐进式信息加载和自由度控制,实现任务执行的稳定性和复用性。文章详细阐述了Skill的三层加载机制(元数据层、主体说明层、附加资源层)、五大设计理论(上下文预算、渐进式披露、自由度控制等)以及标准目录结构,强调Skill的核心价值在于将隐性经验转化为显性流程,并按需加载资源而非一次性灌满上下文。最后指出适合使用Skill的场景特征和设计原则。
2026-03-19 11:27:57
820
原创 Python 文件处理知识点(实际实践)
本文总结了Python中常用的文件处理实践方法,包括:1)文本文件读取(全量/逐行/分块)和写入;2)JSON/CSV/Excel等结构化数据的读写;3)XML文件解析与生成;4)文件批量操作与复制移动;5)二进制文件处理;6)结合Pandas的数据处理流程。涵盖了从基础文件操作到复杂数据处理的全套解决方案,并提供了日志处理、数据清洗归档等综合应用示例。这些代码片段可直接用于实际项目开发,帮助开发者高效处理各类文件操作需求。
2026-03-17 11:45:51
201
原创 Python 文件处理知识点(理论知识)
本文总结了Python文件处理的核心知识点,主要包括:1)文件与路径基础,包括路径分隔符、绝对/相对路径和使用pathlib.Path;2)文件对象与I/O原理;3)文本与二进制模式的选择;4)编码解码处理;5)上下文管理器的使用;6)各种文件模式详解;7)大小文件的不同读写策略;8)常见文件类型与数据格式;9)标准库和第三方库的应用;10)文件权限与锁问题;11)稳定性和性能优化建议。文章系统性地介绍了Python文件操作的各个方面,特别强调了编码一致性、资源管理和大文件处理等关键问题。
2026-03-17 11:28:57
415
原创 Linux进程卡住导致调度阻塞——排查与治理
本文针对Linux系统中进程卡死导致调度阻塞的问题,提出了一套完整的排查与治理方案。首先分析了调度系统被阻塞的原因,指出仅判断进程存在是不够的。然后给出了正确的判断策略,包括状态过滤、超时检测和健康进程标准。文章详细介绍了超时阈值的设置原则、终止流程的信号机制、运行时长的判断方法,并提供了实用的排查命令。最后给出了稳定性治理建议、常见误区以及推荐排查流程,强调可靠的调度系统必须包含健康检查和超时处置能力,才能避免单个卡死进程影响整个任务链。
2026-03-02 17:05:53
443
原创 Linux进程还在但任务不动——进程状态基础
本文介绍了Linux进程状态的基础概念与排查方法。主要内容包括:进程是程序的运行实例,每个进程有独立PID;进程存在不等于健康,可能处于运行、等待、暂停或僵尸状态;通过ps命令查看进程状态,重点关注STAT字段(如R运行、S睡眠、D不可中断、T停止、Z僵尸);僵尸进程是已结束但未回收的进程;进程不动的常见原因包括IO卡死、资源耗尽等。排查时应关注进程状态、运行时长和资源占用情况,而非仅检查PID是否存在。
2026-03-02 17:03:58
348
原创 aiohttp.web 实践
本文介绍了使用aiohttp.web构建异步Web服务的最小闭环实践。从安装依赖开始,展示了一个基础可运行服务示例,并逐步扩展路由参数、JSON请求处理、中间件和后台任务等常见功能。提供了三种部署方式:直接运行、Gunicorn多进程和systemd守护进程。针对生产环境,建议使用Nginx反向代理、结构化日志和连接池管理等优化措施。最后给出了性能调优要点和Docker部署模板,可作为快速构建可部署aiohttp.web服务的参考指南。
2026-02-27 15:51:01
456
原创 aiohttp.web 原理
aiohttp.web是一个基于asyncio的高性能异步Web框架,其核心原理是事件循环+协程模型。框架通过让出IO等待时间实现高并发处理,请求处理流程包括事件循环监听、HTTP解析、路由匹配和异步handler执行。关键组件包括Application容器、Router映射、Request/Response对象和中间件链。异步机制依靠协程在await处让出执行权,事件循环调度其他任务,IO就绪后恢复执行。框架支持流式响应、生命周期管理和中间件处理,适合IO密集型场景,可通过多进程扩展性能。相比同步WSGI
2026-02-27 15:31:43
301
原创 MCP 教程(下):AI 运作、意图转化与部署实战
摘要: MCP教程详解AI操作流程与部署方案,通过标准路径(初始化→能力发现→计划执行)实现意图转化,强调模型仅生成工具调用指令而非直接操作系统。提供两种部署方式:本地单机用stdio,远程/多人共享选Streamable HTTP。附FastMCP示例代码(含工具/资源/模板)及运行指南,并对比主流浏览器方案(Playwright官方版、弃用的Puppeteer参考版及Browserbase云方案),包含安装命令与典型工具列表。核心逻辑是将功能封装为可组合模块,通过协议交互实现AI与系统的安全协作。
2026-02-25 11:35:07
674
原创 MCP 教程(上):原理、架构与协议基础
MCP(Model Context Protocol)是一种标准化的AI交互协议,旨在实现跨工具、跨服务的可组合集成。文章介绍了MCP的定位、分层架构、核心基元、消息结构和传输方式。MCP包含服务器侧的工具、资源和提示词三类基元,以及客户端侧的根目录、采样和补充信息请求能力。协议采用JSON-RPC消息格式,通过stdio或HTTP传输,并包含初始化、运行和关闭三个阶段。HTTP传输需要严格的安全措施,而stdio传输则通过环境变量验证身份。MCP为AI应用提供统一的"USB接口标准",
2026-02-25 10:21:03
386
原创 CSS 选择器详细教程:原理、语法、方向/“轴”与实战
面向:爬虫与自动化同学(Python 为主),从原理到实战。重点讲“方向/轴”的概念与 CSS 的能力边界。
2026-01-28 13:59:00
630
原创 Playwright 的 BrowserContext 与 Page:原理与实践指南
Page适合做爬虫/渲染服务(尤其是“一个 worker 长驻 + 多请求并发”)时作为设计参考。
2026-01-21 18:03:07
903
原创 asyncio.gather 内部原理与运行机制(详解)
适用版本:本文以的实现为准(不同版本细节可能略有差异,但核心机制一致)。其中task_list可以是Task、或Future(更广义叫 “awaitable”)。
2026-01-21 15:58:06
692
原创 Python异步----------信号量
sem = asyncio.Semaphore(100)原理信号量机制=计数器+等待队列1,初始值100表示有100个令牌2,async with sem 等价于 先await sem.acquire() 再sem.release()1,前100个进入acquire()拿到令牌,继续执行 并在io上await2,第101个协程在await acquire()处被挂起,被放进semphore的等待队列,事件循环会去跑别的可运行任务3,当某个已经进入临界区的协程执行完毕退出时 sem.releas
2026-01-19 15:22:26
224
原创 crawl4ai------AsyncPlaywrightCrawlerStrategy使用教程
js_code可以是字符串或字符串列表,策略会执行并把结果写到,最终在里可取到。点击“加载更多”关闭弹窗展开折叠内容() => {""" , scan_full_page = True , max_scroll_steps = 10 , wait_for = "css:article" , # 等正文出现)js_code往往需要配合wait_for,否则点击后内容还没渲染完就取 HTML 了。在goto前后插入逻辑(改 headers、注入脚本、设置路由)
2026-01-14 11:40:06
1531
原创 crawl4ai------BFSDeepCrawlStrategy使用教程
BFSDeepCrawlStrategy 摘要 BFSDeepCrawlStrategy 是 crawl4ai 库(0.7.8版本)提供的广度优先深度爬取策略。它从起始URL出发,按层级(depth)逐层发现并抓取链接,支持以下核心功能: 深度控制(max_depth):限制爬取层级,depth=0为起始页 页面限制(max_pages):控制成功抓取页面总数 链接过滤:通过filter_chain控制可抓取URL,支持URLPatternFilter(通配符/正则)和自定义过滤器
2026-01-14 11:11:55
762
原创 Crawl4AI 学习指南(适用于 v0.7.x,更新于 2025-12-18)
Crawl4AI 是一个开源的浏览器爬虫框架,专为LLM优化,可将网页转换为干净的Markdown/HTML。它基于Playwright,支持CSS/XPath/LLM等多种提取策略,适用于RAG、数据收集等场景。安装需Python≥3.9,并配置Playwright浏览器。核心组件包括异步爬虫入口、浏览器配置和运行参数管理,提供丰富的Hook机制。文档包含快速入门、配置选项、批量爬取示例及性能优化建议,如控制并发、过滤噪音内容等。还提供CLI和Docker支持,便于快速部署使用。
2025-12-18 10:59:17
2592
原创 Playwright 全方位教程(理论、架构、执行原理与实战)
Playwright 全方位教程摘要 Playwright 是一个跨浏览器自动化工具,支持 Chromium/Firefox/WebKit,提供统一 API 接口和内置测试框架。其核心架构采用多进程模型,通过 WebSocket/CDP 协议与浏览器通信,具有自动等待、元素重试、网络拦截等特性。教程详细介绍了 Playwright 的对象模型(Browser→Context→Page)、常用配置参数、反爬策略及实战示例(Python/Node.js)。重点包括: 独立上下文隔离会话 智能元素定位与等待机制
2025-12-18 10:55:52
3249
1
原创 Python requirements.txt如何只生成当前项目使用到的库
【代码】Python requirements.txt如何只生成当前项目使用到的库。
2025-10-10 15:26:55
440
原创 Pandas 日常方法记录之填充NAN类型为其他类型
panda会将数据中空值以NaN类型来展示,在python环境中很多库无法识别该类型导致报错,所以我们在解析数据时需要注意NaN的转换。
2024-08-29 09:52:46
283
原创 Pandas 日常方法记录之日期格式转换
在日常使用pandas读取表格时,有些列是日期格式但是经pandas转换成dataframe后变成了字符串格式,于是需要进行二次转换。
2024-08-29 09:45:28
1022
原创 Python的语言特性
在编译期间就确定变量类型的语言是静态语言。在运行期间才知道变量类型的是动态语言。不同类型的变量是否允许隐式转换。2,python是强类型语言。1,python是动态语言。
2024-07-10 16:08:25
268
原创 Python根据某一个字段值进行分组
现有一个由多个字典构成的列表,根据字典某一字段进行分组。1,首先根据分组字段groupName 进行排序。2,使用groupby方法进行分组。
2024-04-29 10:52:32
823
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅