微信 iLink Bot SDK 技术文档一、概述1. 项目简介A. 是什么weixin-bot 是一个微信 iLink Bot SDK，支持 Node.js 和 Python 两种语言实现。它为开发者提供了一套简洁的 API，让任何 Agent 可以在 5 分钟内接入微信消息收发功能。B. 为什么需要它传统的微信机器人接入面临以下痛点：协议复杂，需要深入理解微信 iLink Bot APIcontext_token 管理繁琐，处理不当会导致消息投递失败Session 过期需要手动重新登录需要配置 Webhook 接收消息，部署复杂weixin-bot SDK 通过封装底层协议细节，解决了这些问题：零配置，开箱即用凭证自动保存和续期context_token 自动管理长轮询收消息，无需 WebhookC. 应用场景AI Agent 接入微信作为交互渠道客服机器人自动回复群聊助手和消息监听微信消息自动化处理2. 技术背景A. iLink Bot APIiLink Bot API 是微信提供的机器人接口协议，采用 HTTP 长轮询方式接收消息，通过 HTTP POST 发送消息。关键特性包括：扫码登录认证长轮询获取更新context_token 上下文传递机制Typing 状态支持B. 协议关键发现SDK 开发过程中发现的关键协议细节：context_token：回复消息时必须原样传回 APIsendtyping：唯一能触发"对方正在输入中"的方式message_state：GENERATING 状态在 API 层面可用，但微信客户端不渲染Session 过期：errcode 为 -14 时需要重新登录二、系统架构1. 整体架构graph TB Agent[Agent 应用] -->|调用| SDK[weixin-bot SDK] SDK -->|HTTP 长轮询| API[iLink Bot API] SDK -->|HTTP POST| API API -->|推送消息| User[微信用户] User -->|扫码/发消息| API SDK -->|保存凭证| Local[本地存储]2. 组件说明Agent 应用：使用 SDK 的上层应用，如 AI Agent、客服机器人weixin-bot SDK：封装 iLink Bot API 协议的 SDK 库iLink Bot API：微信提供的机器人接口服务本地存储：保存登录凭证，避免重复扫码3. 交互流程sequenceDiagram participant Agent as Agent 应用 participant SDK as weixin-bot SDK participant API as iLink Bot API participant User as 微信用户 Note over Agent,User: 1. 登录阶段 Agent->>SDK: bot.login() SDK->>API: GET /get_bot_qrcode?bot_type=3 API-->>SDK: 返回二维码 URL SDK-->>Agent: 终端显示二维码 User->>API: 微信扫码确认 API-->>SDK: 返回 bot_token + baseurl SDK-->>Agent: 登录成功，凭证已保存 Note over Agent,User: 2. 消息收发循环 Agent->>SDK: bot.run() loop 长轮询循环 SDK->>API: POST /getupdates (最多保持 35 秒) User->>API: 发送消息 "你好" API-->>SDK: 返回消息 + context_token SDK-->>Agent: 触发 onMessage(msg) Agent->>SDK: bot.sendTyping(userId) SDK->>API: POST /sendtyping Note over User: 显示 "对方正在输入中" Agent->>SDK: bot.reply(msg, "Echo: 你好") SDK->>API: POST /sendmessage (带 context_token) API-->>User: 推送回复消息 SDK->>API: POST /sendtyping (取消 typing) end Note over Agent,User: 3. 异常处理 API-->>SDK: 返回 errcode: -14 (Session 过期) SDK->>SDK: 自动触发重新登录 SDK->>API: 重新获取二维码和 token SDK-->>Agent: 自动恢复运行三、安装指南1. 系统要求Node.js：14+ 版本Python：3.7+ 版本网络环境：可访问微信 iLink Bot API2. Node.js 安装npm install @pinixai/weixin-bot3. Python 安装pip install weixin-bot-sdk四、快速入门1. Node.js 示例import { WeixinBot } from '@pinixai/weixin-bot' const bot = new WeixinBot() await bot.login() bot.onMessage(async (msg) => { await bot.sendTyping(msg.userId) await bot.reply(msg, `Echo: ${msg.text}`) }) await bot.run()2. Python 示例from weixin_bot import WeixinBot bot = WeixinBot() bot.login() @bot.on_message async def handle(msg): await bot.send_typing(msg.user_id) await bot.reply(msg, f"Echo: {msg.text}") bot.run()3. 运行流程创建 WeixinBot 实例调用 login() 方法，终端显示二维码使用微信扫码确认登录注册消息处理回调调用 run() 启动长轮询循环五、API 参考1. 核心方法方法参数说明login()force?: boolean扫码登录，已有凭证则自动跳过onMessage()handler: Function注册消息处理回调reply()msg, text回复消息，自动取消 typing 状态send()userId, text主动发消息，需已有 context_tokensendTyping()userId显示"对方正在输入中"stopTyping()userId取消输入状态run()无启动长轮询循环stop()无停止运行2. 消息对象interface Message { userId: string // 用户 ID text: string // 消息文本 contextToken: string // 上下文 token，SDK 自动管理 }3. 使用示例// 回复消息 await bot.reply(msg, "收到你的消息") // 主动发消息 await bot.send(userId, "你好") // 显示 typing 状态 await bot.sendTyping(userId) // 取消 typing 状态 await bot.stopTyping(userId)六、高级特性1. context_token 自动管理context_token 是 iLink Bot API 的关键机制：API 返回消息时携带 context_token回复消息时必须原样传回，否则消息无法投递SDK 内部自动管理，开发者无需关心2. Typing 状态sendtyping 是唯一能触发"对方正在输入中"的方式：await bot.sendTyping(userId) // 开始输入状态 // ... 处理消息 ... await bot.reply(msg, text) // reply 会自动取消 typing3. Session 过期自动处理当 Session 过期（errcode: -14）时：SDK 自动检测到错误自动触发重新登录流程恢复后继续运行4. 凭证持久化登录成功后，SDK 自动保存凭证：bot_tokenbaseurl后续启动自动加载凭证，无需重复扫码七、技术细节1. 长轮询机制SDK 使用长轮询获取消息更新：请求 /getupdates 接口最多保持 35 秒有消息立即返回无消息超时返回空数组循环往复持续监听2. 消息投递保证为保证消息成功投递：使用收到的 context_token 原样传回SDK 内部维护 userId 到 context_token 的映射避免跨会话复用 token3. 协议限制以下是协议分析和使用中发现的限制：message_state: GENERATING 在 API 层面可用，但微信客户端不渲染气泡更新，不建议使用sendtyping 是唯一可靠的 typing 触发方式Session 会定期过期，需要处理 -14 错误码八、最佳实践1. 消息处理建议bot.onMessage(async (msg) => { try { // 1. 先显示 typing，提升用户体验 await bot.sendTyping(msg.userId) // 2. 处理业务逻辑 const response = await processMessage(msg.text) // 3. 回复消息（自动取消 typing） await bot.reply(msg, response) } catch (error) { console.error('处理消息失败:', error) } })2. 错误处理bot.onMessage(async (msg) => { try { await bot.reply(msg, "处理中...") } catch (error) { if (error.code === -14) { console.log('Session 过期，SDK 会自动重连') } else { console.error('发送消息失败:', error) } } })3. 资源清理// 优雅退出 process.on('SIGINT', async () => { console.log('正在停止 bot...') bot.stop() process.exit(0) })九、故障排查1. 常见问题问题：登录后收不到消息检查网络连接确认 run() 方法已调用查看控制台是否有错误日志问题：消息发送失败确认 context_token 有效检查是否使用 reply() 方法而非 send()查看错误码和错误信息问题：频繁要求重新登录检查 IP 是否被限制确认账号状态正常Session 有效期可能较短，属于正常现象2. 日志调试SDK 输出详细日志，方便调试：登录状态消息收发错误信息十、生态资源1. 官方资源GitHub 仓库：https://github.com/epiral/weixin-bot协议文档：docs/protocol-spec.md（1200+ 行详细分析）2. 示例项目Node.js Echo Bot：完整示例，含日志和 typingNode.js 流式测试：GENERATING vs FINISH 测试Node.js Typing 测试：sendtyping vs GENERATING 对比3. 相关包@pinixai/weixin-bot：Node.js SDKweixin-bot-sdk：Python SDK参考资料epiral/weixin-bot - GitHub
rathole 入门指南一、概述1. 简介A. 是什么rathole 是一个用 Rust 编写的轻量级、高性能反向代理工具，用于 NAT 穿透。它可以将位于 NAT 后面的设备上的服务暴露到互联网上。与 frp 和 ngrok 类似，rathole 通过一台具有公网 IP 的服务器来中转流量，使内网服务可被外网访问。B. 为什么学解决家庭服务器或 NAS 无法直接访问的问题相比 frp 具有更高的性能和更低的资源占用用 Rust 编写，二进制文件可小至 500KiB，适合嵌入式设备C. 学完能做什么在公网服务器上部署 rathole 服务端在内网设备上配置客户端，将本地服务暴露到公网配置加密传输，保护数据安全热重载配置，无需重启服务二、环境准备1. 系统要求服务器：具有公网 IP 的 Linux 服务器客户端：位于 NAT 后面的设备（家用电脑、NAS 等）操作系统：Linux、macOS、Windows、支持 Docker 的平台2. 安装步骤从官方发布页面下载预编译二进制文件：Linux:wget https://github.com/rathole-org/rathole/releases/download/v0.5.0/rathole-x86_64-unknown-linux-musl.tar.gz tar -xzf rathole-x86_64-unknown-linux-musl.tar.gzDocker:docker pull rapiz1/rathole从源码编译：git clone https://github.com/rathole-org/rathole.git cd rathole cargo build --release3. 验证安装./rathole --version三、核心概念1. 基本术语服务端（Server）：运行在具有公网 IP 的服务器上，监听来自客户端的连接和来自外网的访问请求客户端（Client）：运行在 NAT 后面的设备上，主动连接服务端并注册需要转发的服务Token：服务端和客户端之间用于身份验证的密钥服务（Service）：需要转发的具体应用，如 SSH、Web 服务器等2. 工作原理graph LR A[外网用户] -->|访问公网端口| B[服务端] B <-->|加密通道| C[客户端] C -->|转发请求| D[本地服务]rathole 的工作流程如下：客户端主动连接服务端，并使用 Token 进行身份验证服务端记录客户端注册的服务映射关系外网用户访问服务端的公网端口服务端通过加密通道将流量转发给客户端客户端将流量转发到本地服务四、快速上手1. 基本示例：暴露 NAS 的 SSH 服务场景你有一台位于家庭网络的 NAS，希望从互联网上通过 SSH 访问它。服务端配置创建 server.toml 文件：[server] bind_addr = "0.0.0.0:2333" [server.services.my_nas_ssh] token = "use_a_secret_that_only_you_know" bind_addr = "0.0.0.0:5202"启动服务端：./rathole --server server.toml客户端配置创建 client.toml 文件：[client] remote_addr = "myserver.com:2333" [client.services.my_nas_ssh] token = "use_a_secret_that_only_you_know" local_addr = "127.0.0.1:22"启动客户端：./rathole --client client.toml验证连接ssh -p 5202 myserver.com2. 多服务配置可以在一个配置文件中定义多个服务：客户端配置：[client] remote_addr = "myserver.com:2333" [client.services.ssh] token = "ssh_token" local_addr = "127.0.0.1:22" [client.services.web] token = "web_token" local_addr = "127.0.0.1:8080" [client.services.minecraft] token = "mc_token" local_addr = "127.0.0.1:25565" type = "tcp"服务端配置：[server] bind_addr = "0.0.0.0:2333" [server.services.ssh] token = "ssh_token" bind_addr = "0.0.0.0:5202" [server.services.web] token = "web_token" bind_addr = "0.0.0.0:5203" [server.services.minecraft] token = "mc_token" bind_addr = "0.0.0.0:5204" type = "tcp"3. UDP 服务转发rathole 支持 UDP 协议转发：[client.services.quic] type = "udp" token = "quic_token" local_addr = "127.0.0.1:4433"[server.services.quic] type = "udp" token = "quic_token" bind_addr = "0.0.0.0:4433"五、进阶配置1. 传输层加密rathole 支持三种传输模式：TCP、TLS、Noise。TLS 加密服务端配置：[server.transport] type = "tls" [server.transport.tls] pkcs12 = "identity.pfx" pkcs12_password = "your_password"客户端配置：[client.transport] type = "tls" [client.transport.tls] trusted_root = "ca.pem" hostname = "example.com"Noise Protocol 加密Noise Protocol 是现代的加密协议，无需证书：[client.transport] type = "noise" [client.transport.noise] pattern = "Noise_NK_25519_ChaChaPoly_BLAKE2s" local_private_key = "your_base64_key" remote_public_key = "server_base64_key"2. 代理连接客户端可以通过代理连接服务端：[client.transport.tcp] proxy = "socks5://user:passwd@127.0.0.1:1080"支持 HTTP 和 SOCKS5 代理。3. 日志控制通过环境变量控制日志级别：RUST_LOG=error ./rathole config.toml可用级别：error、warn、info、debug、trace默认级别为 info。4. 性能调优从 v0.4.7 开始，rathole 默认启用 TCP_NODELAY，这对延迟敏感的应用（如 RDP、Minecraft 服务器）有益，但会略微降低带宽。如果带宽更重要，可以禁用：[client.transport.tcp] nodelay = false [server.transport.tcp] nodelay = false也可以针对单个服务配置：[client.services.my_service] nodelay = false5. 心跳与重连客户端心跳配置：[client] heartbeat_timeout = 40 retry_interval = 1服务端心跳配置：[server] heartbeat_interval = 30heartbeat_interval：应用层心跳发送间隔，设为 0 禁用heartbeat_timeout：心跳超时时间，必须大于 server.heartbeat_intervalretry_interval：重连服务器的间隔六、部署实战1. systemd 服务配置创建 /etc/systemd/system/rathole-server.service：[Unit] Description=Rathole Server After=network.target [Service] Type=simple User=root ExecStart=/path/to/rathole --server /path/to/server.toml Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target创建 /etc/systemd/system/rathole-client.service：[Unit] Description=Rathole Client After=network.target [Service] Type=simple User=root ExecStart=/path/to/rathole --client /path/to/client.toml Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target启用并启动：systemctl daemon-reload systemctl enable rathole-server systemctl start rathole-server2. Docker 部署服务端：docker run -d \ --name rathole-server \ -p 2333:2333 \ -p 5202:5202 \ -v /path/to/server.toml:/app/server.toml \ rapiz1/rathole --server /app/server.toml客户端：docker run -d \ --name rathole-client \ --network host \ -v /path/to/client.toml:/app/client.toml \ rapiz1/rathole --client /app/client.toml七、性能对比1. 与 frp 的对比rathole 在性能方面相比 frp 有显著优势：吞吐量：HTTP 吞吐量更高连接数：能处理更多并发连接内存占用：显著低于 frp延迟：与 frp 相当2. 性能基准根据官方基准测试结果：HTTP 吞吐量：比 frp 提升 2-3 倍（本地回环测试）TCP 比特率：显著优于 frp内存占用：仅为 frp 的 30-50%需要注意的是，这些测试是在本地回环环境下进行的，反映的是 CPU 限制场景下的性能。实际使用中，网络往往是瓶颈，此时性能提升可能不那么明显。但 rathole 的主要优势在于低资源消耗。3. 资源占用优化rathole 的二进制文件可以编译至约 500KiB，非常适合：路由器等嵌入式设备资源受限的 VPS需要同时运行多个服务的环境八、常见问题1. 连接失败问题：客户端无法连接到服务端排查：检查服务端防火墙是否开放监听端口确认 Token 配置是否一致验证 remote_addr 地址和端口是否正确查看服务端日志是否有连接记录2. 热重载不生效问题：修改配置后服务未生效解决：目前需要重启服务应用新配置HTTP API 配置功能正在开发中3. 性能不佳问题：转发服务变慢排查：检查客户端和服务端的网络延迟确认没有启用不必要的代理尝试调整 TCP_NODELAY 设置检查本地服务本身是否有性能问题参考资料rathole GitHub 仓库rathole 官方文档
Folio-OCR 三栏文档 OCR 工作台一、概述1. 简介A. 是什么Folio-OCR 是一款基于 GLM-OCR 和 Ollama 的三栏文档 OCR 工作台，专为书籍和文档的日常批量识别设计。它提供了一个现代化的 Web 界面，支持图片和 PDF 文件的批量光学字符识别，并具备智能版面分析、实时编辑和多种格式导出功能。B. 为什么学解决文档数字化过程中的人工识别效率问题利用本地化 OCR 方案保护数据隐私学习 FastAPI 前后端分离架构和版面分析技术了解如何将大型语言模型集成到实际应用中C. 学完能做什么搭建本地化的 OCR 识别服务批量处理 PDF 和图片文档使用版面分析技术提高识别准确率将识别结果导出为 Markdown、TXT 或 Word 文档2. 前置知识A. 必备技能基础的 Linux 命令行操作了解 Docker 基础概念B. 推荐知识Python 基础编程知识Web 开发基础概念OCR 和版面分析基础二、环境准备1. 系统要求操作系统：Linux、macOS、Windows 10/11Docker：20.10+（推荐使用 Docker 部署）Python：3.10+（本地部署）Ollama：已安装（本地部署）硬件：建议 8GB+ 内存，有 NVIDIA 显卡可获得更好性能2. 安装步骤Docker 部署（推荐）# 1. 克隆项目 git clone https://github.com/vorojar/Folio-OCR.git cd Folio-OCR # 2. 启动服务 docker compose up -d # 3. 下载 OCR 模型（约 2GB，只需执行一次） docker compose exec ollama ollama pull glm-ocr本地部署# 安装依赖 pip install -r requirements.txt # 拉取模型 ollama pull glm-ocr # 启动服务 python server.py # Windows 一键启动 start.bat3. 验证安装打开浏览器访问 http://localhost:3000，若能看到界面则表示安装成功。# 检查 Ollama 状态 curl http://localhost:11434/api/tags # 检查服务状态 curl http://localhost:3000/api/status三、核心概念1. 基本术语GLM-OCR：智谱 AI 开发的 OCR 模型，用于图像文字识别Ollama：本地化大模型运行平台，提供 GLM-OCR 的推理服务FastAPI：Python Web 框架，用于构建后端 APIPP-DocLayoutV3：PaddlePaddle 的文档版面分析模型SQLite：轻量级数据库，用于持久化存储文档和 OCR 结果版面分析：自动检测文档中的标题、正文、表格、图片等区域2. 工作原理graph LR User[用户] --> FE[前端界面] FE --> API[FastAPI 后端] API --> DB[(SQLite 数据库)] API --> Layout[版面分析模型] API --> Ollama[Ollama OCR 服务] Layout --> API Ollama --> API API --> FE API --> Storage[文件存储]系统采用三层架构设计：前端层：提供三栏式用户界面，负责文件上传、结果显示和用户交互后端层：FastAPI 提供 RESTful API，处理版面分析、OCR 调用和数据持久化服务层：Ollama 提供 OCR 推理服务，PP-DocLayoutV3 提供版面分析能力四、快速上手1. 基本使用流程graph TD A[启动服务] --> B[上传文档] B --> C[自动拆页处理] C --> D[版面分析] D --> E[OCR 识别] E --> F[编辑校对] F --> G[导出文档]2. 上传文档支持以下文件格式：图片：PNG、JPG、GIF、BMP文档：PDF支持多文件混合上传，系统会自动将所有文件合并为一个文档，并按页码顺序排列。3. OCR 识别系统提供两种 OCR 模式：单页识别：对选中的页面进行 OCR批量识别：点击 OCR All Pages 一键处理全部页面识别过程中会显示实时进度条和 ETA 时间估算，用户可以随时点击 Stop 按钮中断处理。4. 编辑与导出识别结果支持：Edit 模式：纯文本编辑，便于手动修正Preview 模式：实时渲染 HTML 表格和 Markdown 格式段落重排：自动合并因换行断开的段落导出格式：Markdown（.md）纯文本（.txt）Word 文档（.docx）五、核心功能1. OCR 引擎A. 版面分析使用 PP-DocLayoutV3 模型进行智能版面分析，自动识别以下区域：标题（title）正文（text）表格（table）图片（figure）页眉页脚、脚注、页码（自动跳过）B. 智能合并相邻文本区域会自动合并，减少 OCR 调用次数。例如 11 个文本区域可合并为 3 组，实现约 2.5 倍加速。C. LaTeX 处理自动将模型输出的 LaTeX 符号转换为 Unicode 字符：$\textcircled{1}$ → ①$\frac{1}{2}$ → ½其他常见数学符号D. 清理处理自动清理模型输出的 Markdown 围栏标记。2. 数据持久化使用 SQLite 数据库存储以下信息：文档元数据（ID、文件名、创建时间）页面信息（页码、文件名、OCR 结果、版面区域、处理时间）自动保存编辑内容（800ms 防抖）3. 界面交互A. 三栏布局左栏：页面缩略图，支持快速切换页面中栏：图片预览，显示版面分析区域框右栏：OCR 结果，支持编辑和预览B. 双向高亮点击图片中的区域框会高亮对应的文本块，点击文本块会高亮对应的图片区域。C. 全文搜索支持 Ctrl+F 全文搜索，跨页高亮显示匹配内容并统计命中次数。D. 键盘导航使用 ↑↓ 方向键快速切换页面。4. 网络容错所有网络请求都带有超时保护：状态检查：5 秒OCR 调用：180 秒其他请求：30 秒Ollama 断开后 UI 不会冻结，超时后会自动恢复可操作状态并通过 Toast 弹窗通知用户。六、技术架构1. 后端架构graph TB subgraph 后端服务 API[FastAPI Server] DB[(SQLite)] Layout[PP-DocLayoutV3] Uploads[uploads/ 目录] end subgraph 外部服务 Ollama[Ollama GLM-OCR] end API --> DB API --> Layout API --> Uploads API --> Ollama2. 版面分析流程sequenceDiagram participant U as 用户 participant API as FastAPI participant L as Layout 模型 participant O as Ollama U->>API: 上传图片 API->>L: 版面分析 L-->>API: 返回区域列表 API->>API: 合并相邻区域 loop 对每个合并区域 API->>O: OCR 调用 O-->>API: 返回识别文本 end API->>U: 返回完整结果3. 数据库设计erDiagram documents ||--o{ pages : 包含 documents { string doc_id PK string filename string created_at } pages { string doc_id FK integer num string filename text ocr_text text ocr_regions real ocr_time }4. 主要依赖依赖版本用途fastapi>=0.100.0Web 框架uvicorn>=0.23.0ASGI 服务器httpx>=0.25.0异步 HTTP 客户端pymupdf>=1.23.0PDF 处理Pillow>=10.0.0图像处理transformers>=4.40.0版面分析模型torch>=2.0.0深度学习框架python-docx>=1.1.0Word 文档生成七、部署架构1. Docker Compose 配置graph LR Host[宿主机] --> LB[Nginx/Proxy] LB --> App[App 容器] LB --> Ollama[Ollama 容器] App --> DB[(SQLite 数据卷)] App --> Files[uploads 数据卷]2. GPU 加速若有 NVIDIA 显卡，可编辑 docker-compose.yml 取消 deploy 段落的注释以启用 GPU 加速。services: ollama: deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]3. 常用 Docker 命令docker compose down # 停止服务 docker compose up -d # 重新启动（数据不会丢失） docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志八、性能参考操作时间说明模型冷启动首次请求~50 秒需加载模型到内存后续单页识别~0.5 秒版面分析 + OCRPDF 渲染取决于页数2x 缩放矩阵渲染整体加速比2.5x相比逐区域 OCR九、常见问题1. 安装问题Ollama 未找到错误信息：Ollama not found解决方法：先安装 Ollama 并确保其在 PATH 中# macOS/Linux curl -fsSL https://ollama.com/install.sh | sh # Windows # 从 https://ollama.com/download 下载安装包模型下载失败解决方法：检查网络连接，手动执行模型拉取ollama pull glm-ocr2. 运行问题OCR 超时可能原因：图片过大或网络问题解决方法：系统已设置 180 秒超时，等待即可检查 Ollama 服务是否正常运行尝试重启服务版面分析失败可能原因：模型未正确加载解决方法：确保已安装 torch 和 transformers检查服务器日志查看具体错误3. 使用问题PDF 拆页不清晰说明：系统使用 2x 缩放矩阵渲染 PDF 以保证 OCR 质量解决方法：如需更高分辨率，可修改 server.py 中的 mat 参数导出的 Word 文档格式问题说明：DOCX 导出基于 python-docx，解析 OCR 结果中的表格和标题解决方法：识别时确保版面分析正确检测到表格区域十、项目结构Folio-OCR/ ├── server.py # FastAPI 后端（单文件） ├── index.html # HTML 页面 ├── script.js # 前端逻辑 ├── style.css # 样式 ├── latex_unicode.json # LaTeX → Unicode 映射表 ├── requirements.txt # Python 依赖 ├── Dockerfile # Docker 镜像构建 ├── docker-compose.yml # Docker Compose 编排 ├── start.bat # Windows 启动脚本 ├── folio_ocr.db # SQLite 数据库（运行时生成） └── uploads/ # 上传文件目录（运行时生成）十一、API 端点方法路径说明GET/前端页面GET/api/status服务状态、Ollama 连通性POST/api/load-model启动 Ollama 并预热模型POST/api/upload上传文件，返回 SSE 页面流GET/api/images/{doc_id}/{filename}获取页面图片POST/api/ocr/{doc_id}/{page_num}单页 OCRPOST/api/ocr/{doc_id}/all批量 OCR 全部页面GET/api/documents列出所有文档GET/api/documents/{doc_id}获取文档详情DELETE/api/documents/{doc_id}删除文档PUT/api/pages/{doc_id}/{page_num}/text保存编辑后的文本POST/api/export/{doc_id}导出 DOCX参考资料Folio-OCR GitHub 仓库GLM-OCR 模型Ollama 官方文档FastAPI 官方文档PP-DocLayoutV3 模型
CLI-Anything：让所有软件成为 AI Agent 原生工具一、概述1. 简介A. 是什么CLI-Anything 是一个 Claude Code 插件，能够将任何软件自动转换为 AI Agent 可控制的命令行工具。通过一条命令，它可以为 GIMP、Blender、LibreOffice 等应用生成功能完整的 CLI 接口，让 AI Agent 获得直接控制专业软件的能力。B. 为什么学解决 AI Agent 使用软件难题：当前 AI Agent 虽然推理能力强，但难以使用真实的专业软件统一接口范式：CLI 是 AI Agent 的理想接口，结构化、可组合、自描述自动化生成：无需手动编写代码，自动分析软件架构并生成 CLI生产级质量：1,508 个测试用例验证，覆盖 11 个主流应用C. 学完能做什么为任何软件自动生成 CLI，让 AI Agent 可以控制理解 7 阶段自动化流水线的工作原理部署和使用生成的 CLI 工具通过 refine 命令迭代改进 CLI 覆盖率2. 前置知识A. 必备技能Python 3.10+ 基础基本的命令行操作经验理解 AI Agent 的基本概念B. 推荐知识Click 框架（Python CLI 工具）pytest 测试框架Claude Code 使用经验二、环境准备1. 系统要求Python 3.10 或更高版本目标软件已安装（如 GIMP、Blender 等）Claude Code 或其他支持的 AI 编码代理2. 安装步骤Claude Code 平台安装：# 添加 CLI-Anything 市场 /plugin marketplace add HKUDS/CLI-Anything # 安装插件 /plugin install cli-anything手动安装（可选）：# 克隆仓库 git clone https://github.com/HKUDS/CLI-Anything.git # 复制插件到 Claude Code 插件目录 cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything # 重新加载插件 /reload-plugins3. 验证安装安装完成后，在 Claude Code 会话中输入：/cli-anything:cli-anything --help三、核心概念1. 基本术语Agent-Native（Agent 原生）：专为 AI Agent 设计的接口，支持结构化输入输出Harness（工具套件）：为特定软件生成的完整 CLI 包REPL（交互式解释器）：命令行交互模式，支持状态持久化7-Phase Pipeline：从分析到发布的自动化流程2. 工作原理CLI-Anything 通过自动化流程分析软件源码，理解其功能架构，然后生成标准的命令行接口。生成的 CLI 直接调用真实软件的后端，确保功能完整性。graph TB A[软件源码/仓库] --> B[分析阶段] B --> C[设计阶段] C --> D[实现阶段] D --> E[测试规划] E --> F[测试编写] F --> G[文档更新] G --> H[发布安装] subgraph 生成产物 I[Click CLI] J[REPL 界面] K[JSON 输出] L[测试套件] end D --> I D --> J D --> K F --> L3. 架构设计graph LR A[AI Agent] -->|命令| B[CLI-Anything 生成的 CLI] B -->|调用| C[真实软件后端] C -->|渲染/处理| D[输出文件] B -->|JSON 输出| A B -->|人类可读| E[终端输出] subgraph CLI-Anything 核心 F[分析引擎] G[代码生成器] H[测试框架] end F --> G G --> H四、快速上手1. Hello World 示例生成第一个 CLI 工具：# 为本地 GIMP 源码生成完整 CLI（所有 7 个阶段） /cli-anything:cli-anything ./gimp2. 核心功能演示# 从 GitHub 仓库生成 /cli-anything:cli-anything https://github.com/blender/blender3. 代码讲解上述命令会自动执行以下流程：第 1 阶段：分析扫描源代码，映射 GUI 操作到 API第 2 阶段：设计架构命令组、状态模型、输出格式第 3 阶段：实现构建 Click CLI，包含 REPL、JSON 输出、撤销/重做功能第 4 阶段：测试规划创建 TEST.md，包含单元测试和端到端测试计划第 5 阶段：测试编写实现全面的测试套件第 6 阶段：文档更新 TEST.md 包含测试结果第 7 阶段：发布创建 setup.py，安装到 PATH4. 使用生成的 CLI# 进入生成的 harness 目录 cd gimp/agent-harness # 安装到 PATH pip install -e . # 使用帮助 cli-anything-gimp --help # 创建新项目 cli-anything-gimp project new --width 1920 --height 1080 -o poster.json # 添加图层 cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e" # 进入交互式 REPL cli-anything-gimp五、进阶内容1. 常用功能插件命令列表命令描述/cli-anything <path-or-repo>构建完整 CLI 工具套件/cli-anything:refine <path> [focus]改进现有工具套件，扩展覆盖率/cli-anything:test <path-or-repo>运行测试并更新 TEST.md/cli-anything:validate <path-or-repo>验证是否符合 HARNESS.md 标准refine 命令使用迭代改进 CLI 覆盖率：# 广泛改进 —— 分析所有功能的缺口 /cli-anything:refine ./gimp # 聚焦改进 —— 针对特定功能区域 /cli-anything:refine ./gimp "批量图像处理和滤镜功能"refine 命令会执行以下操作：分析软件完整能力与当前 CLI 覆盖之间的缺口为识别出的缺口实现新命令添加相关测试更新文档可以多次运行以稳步扩展覆盖率，每次运行都是增量且非破坏性的。2. 最佳实践真实软件集成原则CLI 必须调用实际软件进行渲染不使用简化替代品（如用 Pillow 替代 GIMP）生成有效的项目文件，然后调用真实后端测试策略# 运行特定 CLI 的测试 cd <software>/agent-harness python3 -m pytest cli_anything/<software>/tests/ -v # 强制已安装模式（推荐用于验证） CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -sJSON 输出模式AI Agent 可以通过 --json 标志获取结构化输出：cli-anything-libreoffice --json document info --project report.json返回格式：{ "name": "Q1 Report", "type": "writer", "pages": 1, "elements": 2, "modified": true }3. 性能优化使用批量操作减少命令调用次数在 REPL 模式下工作，保持会话状态JSON 模式比人类可读输出更快，适合 Agent 解析六、实战案例1. 场景描述为 LibreOffice 生成 CLI，让 AI Agent 能够自动创建文档、添加内容并导出为 PDF。2. 实现步骤步骤 1：生成 CLI/cli-anything:cli-anything https://github.com/LibreOffice/core步骤 2：安装生成的 CLIcd libreoffice/agent-harness pip install -e .步骤 3：使用 CLI 创建文档# 创建新的 Writer 文档 cli-anything-libreoffice document new -o report.json --type writer # 添加标题 cli-anything-libreoffice --project report.json writer add-heading -t "季度报告" --level 1 # 添加表格 cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3步骤 4：导出为 PDFcli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite3. 完整 REPL 交互$ cli-anything-blender ╔══════════════════════════════════════════╗ ║ cli-anything-blender v1.0.0 ║ ║ Blender CLI for AI Agents ║ ╚══════════════════════════════════════════╝ blender> scene new --name ProductShot ✓ Created scene: ProductShot blender[ProductShot]> object add-mesh --type cube --location 0 0 1 ✓ Added mesh: Cube at (0, 0, 1) blender[ProductShot]*> render execute --output render.png --engine CYCLES ✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background blender[ProductShot]> exit Goodbye!七、常见问题1. 安装问题问题：插件安装后无法识别解决：确认 Claude Code 版本，使用 /reload-plugins 重新加载2. 生成问题问题：生成过程失败或输出不完整解决：确保源码可访问，检查 Python 依赖是否安装完整3. 运行问题问题：生成的 CLI 命令无法执行解决：确认已运行 pip install -e . 安装到 PATH八、应用场景CLI-Anything 可用于多种软件类型：GitHub 仓库将任何开源项目转换为 Agent 可控工具，如 VSCodium、WordPress、Calibre、Zotero 等AI/ML 平台自动化模型训练、推理管道和超参数调优，如 Stable Diffusion WebUI、ComfyUI、InvokeAI 等数据与分析工具支持程序化数据处理、可视化和统计分析，如 JupyterLab、Apache Superset、Metabase 等开发工具简化代码编辑、构建、测试和部署流程，如 Jenkins、Gitea、Portainer、SonarQube 等创意媒体工具控制内容创建、编辑和渲染工作流，如 Blender、GIMP、OBS Studio、Krita、Kdenlive 等科学计算自动化研究工作流、模拟和复杂计算，如 ImageJ、FreeCAD、QGIS、ParaView 等企业办公将商业应用和生产力工具转换为 Agent 可访问系统，如 NextCloud、GitLab、Grafana、Mattermost 等九、测试结果CLI-Anything 在 11 个不同的应用上进行了全面测试，总计 1,508 个测试用例，100% 通过率。软件领域CLI 命令后端测试数量GIMP图像编辑cli-anything-gimpPillow + GEGL/Script-Fu107Blender3D 建模与渲染cli-anything-blenderbpy (Python scripting)208Inkscape矢量图形cli-anything-inkscape直接 SVG/XML 操作202Audacity音频制作cli-anything-audacityPython wave + sox161LibreOffice办公套件cli-anything-libreofficeODF 生成 + 无头 LO158OBS Studio直播与录制cli-anything-obs-studioJSON 场景 + obs-websocket153Kdenlive视频编辑cli-anything-kdenliveMLT XML + melt 渲染器155Shotcut视频编辑cli-anything-shotcut直接 MLT XML + melt154Zoom视频会议cli-anything-zoomZoom REST API (OAuth2)22Draw.io绘图cli-anything-drawiomxGraph XML + draw.io CLI138AnyGenAI 内容生成cli-anything-anygenAnyGen REST API50总计 1,508测试层级包括：单元测试：隔离测试每个核心函数E2E 测试（原生）：项目文件生成管道E2E 测试（真实后端）：真实软件调用 + 输出验证CLI 子进程测试：通过 subprocess.run 验证已安装命令参考资料CLI-Anything GitHub RepositoryClaude Code Documentation
reinstall 一键 VPS 重装脚本开源项目推荐一、新闻概述1. 标题reinstall：一键 VPS 系统重装脚本，支持 19 种 Linux 发行版和 Windows2. 发布时间持续更新中（最新更新：2026 年 2 月）3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容reinstall 是一个功能强大的一键 VPS 系统重装脚本，支持在无需 IPMI 或 U 盘的情况下重装系统。项目托管在 GitHub，由开发者 bin456789 维护，目前拥有超过 10,000 星标和 1,800 次分支。B. 核心亮点支持任意方向重装：Linux to Linux、Linux to Windows、Windows to Windows、Windows to Linux支持 19 种常见 Linux 发行版支持使用官方原版 Windows ISO 自动安装专门适配低配小鸡，内存要求低至 256 MB智能网络配置，支持复杂网络环境2. 关键信息A. 项目数据GitHub Stars：10,900+Fork 数：1,794开源协议：GPL-3.0代码质量认证：Codacy A 级、CodeFactor A 级B. 支持系统数量Linux 发行版：19 种Windows 版本：Vista 至 11（含服务器版本）C. 最低硬件要求内存：256 MB（部分系统）硬盘：1 GB 起3. 背景介绍A. 项目起源VPS（虚拟专用服务器）用户经常面临系统更换的需求，但大多数云服务商只提供有限的系统镜像。传统重装方式需要 IPMI 访问或物理 U 盘，对普通用户来说门槛较高。B. 相关上下文该脚本通过 DD（磁盘直接复制）技术实现系统重装，解决了云服务器用户系统更换的痛点，成为同类工具中的佼佼者。三、详细报道1. 主要内容A. 功能特性一键重装到 Linux：支持 Debian、Ubuntu、CentOS Stream、Rocky Linux、AlmaLinux、openEuler、Anolis、Fedora、Arch、Gentoo、NixOS、openSUSE、Alpine、Kali、安同 OS、飞牛 fnOS 等 19 种发行版自动根据机器类型选择优化内核最大化利用磁盘空间一键重装到 Windows：使用官方原版 ISO，非自制镜像支持自动查找 ISO 链接、自动安装自动安装 VirtIO、XEN、AWS、GCP、Azure、Intel 等公有云驱动支持绕过 Windows 11 硬件限制一键 DD Raw 镜像：支持 raw 和固定大小的 vhd 镜像支持多种压缩格式：gz、xz、zst、tar、tar.gz、tar.xz、tar.zstDD Windows 镜像时自动扩展系统盘其他实用功能：重启到 Alpine Live OS 内存系统，用于备份恢复和手动操作重启到 netboot.xyz，支持更多系统手动安装支持 BIOS、EFI 引导，支持 ARM 服务器B. 技术亮点智能网络配置：graph LR A[检测网络环境] --> B{网络类型?} B -->|DHCP| C[配置动态 IP] B -->|Static| D[解析静态配置] D --> E{特殊情况处理} E -->|/32 /128| F[单地址配置] E -->|网关异网| G[跨网段路由] E -->|纯 IPv6| H[IPv6 专用] E -->|双栈分离| I[IPv4/IPv6 分网卡]低内存优化：比官方 netboot 需要更少的内存专门适配低配小鸡（256 MB 内存即可运行）安全可靠：全程用分区表 ID 识别硬盘，确保不会写错硬盘不含自制包，所有资源均实时从镜像源获得支持 BIOS、EFI 引导，兼容性强C. 系统兼容性支持的 Linux 发行版：发行版版本内存要求硬盘要求Alpine3.20-3.23256 MB1 GBDebian9-13256 MB1-1.5 GBKali滚动版256 MB1-1.5 GBUbuntu16.04 LTS-25.10512 MB2 GBAnolis7, 8, 23512 MB5 GBRHEL 系列8, 9, 10512 MB5 GBCentOS Stream9, 10512 MB5 GBFedora42, 43512 MB5 GBopenEuler20.03 LTS-25.09512 MB5 GBopenSUSELeap 15.6, 16.0, Tumbleweed512 MB5 GBNixOS25.11512 MB5 GBArch滚动版512 MB5 GBGentoo滚动版512 MB5 GB安同 OS滚动版512 MB5 GB飞牛 fnOS1512 MB8 GBWindows DD任意512 MB取决于镜像Windows ISOVista-11512 MB-1 GB25 GB支持的 Windows 系统：Windows Vista、7、8.x、10、11Windows Server 2008-2025Windows Server EssentialsWindows Server (Semi) Annual ChannelHyper-V ServerAzure Local (Azure Stack HCI)2. 技术细节A. 脚本工作原理sequenceDiagram participant U as 用户 participant S as reinstall 脚本 participant B as 引导环境 participant N as 网络下载 participant D as 硬盘 U->>S: 运行重装命令 S->>S: 检测系统和网络 S->>B: 下载并引导到安装环境 B->>N: 下载系统镜像 N->>D: 写入硬盘 D->>B: 重启到新系统 S->>U: 安装完成B. 网络配置能力脚本具有强大的网络配置能力，能够处理各种复杂网络环境：自动设置动静态 IP支持 /32、/128 单地址配置支持网关不在子网范围内的情况支持纯 IPv6 环境支持 IPv4/IPv6 在不同网卡的情况C. 云驱动支持脚本内置对主流云服务商驱动的支持，确保重装后网络正常：自动下载的驱动：VirtIO（社区版、阿里云、腾讯云、GCP）XEN（社区版、Citrix、AWS）AWS（ENA 网卡、NVME 存储控制器）GCP（gVNIC 网卡、GGA 显卡）Azure（MANA 网卡）Intel（VMD 存储控制器、各版本网卡驱动）3. 数据与事实A. 项目活跃度近期更新频繁：2026 年 2 月仍有提交社区参与度高：42 个 Issues，3 个 Pull Requests代码质量：通过 Codacy 和 CodeFactor A 级认证B. 功能迭代持续添加新的 Linux 发行版支持不断优化网络配置逻辑定期修复各类云服务商的兼容性问题四、影响分析1. 行业影响A. 技术趋势DD 重装技术成为 VPS 用户的主流选择开源脚本降低系统更换门槛云服务商镜像选择不再是限制因素B. 竞争格局相比商业重装服务：免费、开源、透明相比其他开源重装脚本：支持系统更多、兼容性更强、更新更频繁2. 用户影响A. VPS 用户能够自由选择心仪的操作系统低配小鸡也能运行更多系统节省时间和成本，无需购买带 IPMI 的服务器B. 开发者方便搭建各种开发测试环境快速切换系统进行测试3. 技术趋势A. 技术方向自动化运维工具的重要性日益凸显DD 技术在云服务器管理中的应用越来越广泛B. 生态影响促进了云服务器系统标准化推动了开源运维工具的发展五、各方反应1. 社区反馈GitHub 上获得大量星标，说明用户认可度高Issues 和 Discussions 中用户活跃提问和反馈Telegram 群组提供实时交流支持2. 用户评价A. 正面评价功能强大，支持系统多使用简单，一条命令完成重装网络配置智能，各种复杂环境都能处理低配机器友好，256 MB 内存也能运行B. 使用建议不支持 OpenVZ、LXC 虚拟机如果能使用 IPMI 或 U 盘，建议使用官方方式数据无价，重装前务必备份重要数据六、使用指南1. 快速开始下载脚本（Linux 系统）：# 国外服务器 curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O "${_##*/}" $_ # 国内服务器 curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O "${_##*/}" $_2. 功能示例安装 Debian 12：bash reinstall.sh debian 12安装 Ubuntu 24.04：bash reinstall.sh ubuntu 24.04DD Windows 镜像：bash reinstall.sh dd --img "https://example.com/xxx.xz"安装 Windows 11：bash reinstall.sh windows --image-name "Windows 11 Pro" --lang zh-cn重启到 Alpine Live OS：bash reinstall.sh alpine --hold 13. 常用参数--password PASSWORD：设置密码--ssh-key KEY：设置 SSH 登录公钥--ssh-port PORT：修改 SSH 端口--web-port PORT：修改 Web 端口--frpc-toml PATH：添加 frpc 内网穿透--hold 1：仅重启到安装环境--hold 2：安装结束后不重启七、相关链接1. 项目地址GitHub 主页：https://github.com/bin456789/reinstallEnglish 文档：https://github.com/bin456789/reinstall/blob/main/README.en.md2. 反馈渠道GitHub Issues：https://github.com/bin456789/reinstall/issuesTelegram 群组：https://t.me/reinstall_os3. 参考资源massgrave.dev 官方 ISO：https://massgrave.dev/genuine-installation-medianetboot.xyz：https://github.com/netbootxyz/netboot.xyz参考资料reinstall GitHub 仓库
Pinchtab：面向 AI 代理的高性能浏览器自动化工具
Pinchtab 浏览器自动化桥接工具发布一、新闻概述1. 标题Pinchtab：面向 AI 代理的高性能浏览器自动化工具2. 发布时间2026 年 3 月 2 日3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容Pinchtab 是一款面向 AI 代理的高性能浏览器自动化桥接工具，采用 Go 语言编写，仅需 12MB 单个二进制文件即可运行，无需配置即可使用。B. 核心亮点独立 HTTP 服务器架构，支持任意代理和编程语言访问可访问性优先的设计，提供结构化的页面元素树隐身模式支持，可绕过主流网站的机器人检测会话持久化，登录状态可在重启后保持显著的 Token 消耗优化2. 关键信息A. 技术规格二进制文件大小：12MB每页 Token 消耗：约 800 个（使用 /text 端点）或约 3600 个（交互模式）编程语言：Go 1.25+依赖：仅需 Google Chrome 或 ChromiumB. 核心对比与 OpenClaw Browser 等工具相比：Token 消耗降低 5-13 倍支持跨代理和跨语言使用支持隐身模式支持会话持久化完全独立的二进制文件C. 涉及技术Chrome DevTools Protocol (CDP)无障碍访问树 (Accessibility Tree)HTTP REST API会话管理3. 背景介绍A. 现有问题大多数代理浏览器工具（如 OpenClaw、Playwright MCP、Browser Use）与特定框架紧密耦合。切换代理框架或需要在 bash 中编写脚本时，这些工具无法使用。B. 设计目标提供一个解耦的、通过 HTTP API 访问的浏览器自动化解决方案，任何代理、任何语言甚至简单的 curl 命令都可以使用。三、详细报道1. 主要内容A. 架构设计Pinchtab 采用三层架构：graph TB subgraph Clients["客户端层"] A1[OpenClaw] A2[PicoClaw] A3[curl] A4[自定义脚本] end subgraph Pinchtab["Pinchtab 服务层"] B1[HTTP API:9867] B2[隐身注入] B3[会话管理] B4[可访问性树] end subgraph Browser["浏览器层"] C[Chrome/Chromium] end A1 -->|snapshot, act, navigate, eval| B1 A2 -->|HTTP 请求| B1 A3 -->|curl 命令| B1 A4 -->|脚本调用| B1 B1 -->|CDP 协议| C B2 -.注入.-> CB. 核心功能无障碍优先设计：提供稳定引用（e0、e1...）的结构化树，支持点击、输入、读取等操作。智能过滤器：filter=interactive 参数仅返回按钮、链接和输入框，可减少约 75% 的 Token 消耗。直接操作：支持通过引用或 CSS 选择器进行点击、输入、填充、按键、聚焦、悬停、选择、滚动等操作。隐身模式：修补 navigator.webdriver，伪造用户代理字符串，隐藏自动化标志，可绕过主流网站的机器人检测。会话持久化：Cookie、认证状态、标签页在重启后仍可保留。资源阻断：可跳过图片、媒体和广告的加载，加快浏览速度并减少资源消耗。C. API 端点方法端点描述GET/health连接状态GET/tabs列出打开的标签页GET/snapshot可访问性树（主要接口）GET/screenshotJPEG 截图（可选）GET/pdf当前页面 PDF 导出GET/text可读页面文本POST/navigate跳转到 URLPOST/action点击、输入、填充、按键、聚焦、悬停、选择、滚动POST/evaluate执行 JavaScriptPOST/tab打开/关闭标签页POST/tab/lock锁定标签页以供代理独占访问POST/tab/unlock释放标签页锁定POST/upload为文件输入元素设置文件GET/download使用浏览器会话下载 URL2. 技术细节A. Token 效率实测数据基于真实搜索结果页面的测量：方法大小约消耗 Token完整无障碍快照42 KB10500仅交互元素（?filter=interactive）14 KB3600文本提取（/text）3 KB800截图（视觉模型）-约 2000B. 50 页搜索监控任务成本对比方式Tokens预计成本截图（视觉模型）约 100000$0.30完整快照约 525000$0.16Pinchtab /text约 40000$0.01Pinchtab 交互过滤约 180000$0.05C. 工作流程sequenceDiagram participant A as AI 代理 participant P as Pinchtab participant C as Chrome A->>P: GET /text?tabId=X P->>C: 获取页面内容 C-->>P: 返回文本 P-->>A: ~800 tokens A->>P: POST /action {kind: click, ref: e5} P->>C: 执行点击 C-->>P: 操作结果 P-->>A: 返回成功3. 数据与事实A. 性能对比对于阅读密集型任务：使用 /text 端点比完整快照便宜 5 倍使用 /text 端点比截图便宜 13 倍B. 部署方式支持多种部署方式：单行脚本安装npm 全局安装Docker 容器源码编译四、影响分析1. 行业影响A. 技术趋势浏览器自动化工具正在向更轻量化、更高效的 API 化方向发展。Pinchtab 的出现标志着该领域从框架绑定向通用服务的转变。B. 竞争格局相比 Playwright MCP、OpenClaw Browser 等工具，Pinchtab 在 Token 效率和灵活性方面具有明显优势，特别是在多代理协作场景下。2. 用户影响A. 现有用户对于已经在使用浏览器自动化工具的开发者，Pinchtab 提供了一个更轻量、更经济的选择。B. 潜在用户对于需要跨代理框架或跨语言使用浏览器自动化的场景，Pinchtab 提供了理想的解决方案。C. 迁移成本由于采用标准 HTTP API，迁移成本较低，任何支持 HTTP 请求的语言或框架都可以快速集成。3. 技术趋势A. 技术方向无障碍访问树正在成为浏览器自动化的主流方案Token 效率优化成为 AI 代理工具的重要指标隐身技术在网页爬虫和自动化场景中需求增长B. 生态影响Pinchtab 已与 OpenClaw 深度集成，未来有望支持更多 AI 框架。五、各方反应1. 官方回应项目由 Luigi Agosti（Agent Manager）主导开发，旨在解决现有浏览器工具的耦合问题。2. 社区反馈GitHub 社区对该项目表现出浓厚兴趣，已有 38 个测试用例覆盖核心功能。3. 安全考量项目文档明确指出安全注意事项：Pinchtab 赋予 AI 代理对真实浏览器的完全控制权建议在生产环境中设置 BRIDGE_TOKEN 进行认证应将 ~/.pinchtab/ 目录视为敏感数据不应将实验性代理直接连接到高风险账户六、相关链接1. 官方链接GitHub 仓库：https://github.com/pinchtab/pinchtab安装脚本：https://pinchtab.com/install.sh2. 技术文档架构文档：docs/pinchtab-architecture.md隐身模式指南：docs/headed-mode-guide.mdChrome 生命周期：docs/chrome-lifecycle.md参考资料GitHub - pinchtab/pinchtab: High-performance browser automation bridge and multi-instance orchestrator with advanced stealth injection and real-time dashboard
jina CLI 工具入门指南一、概述1. 简介A. 是什么jina 是一个轻量级的命令行工具，封装了 Jina AI Reader API，可以将任意 URL 转换为 LLM 友好的输入格式。特别适合阅读 X（Twitter）、博客、新闻网站等复杂网页。B. 为什么学解决网页内容难以被 AI 读取的问题提供统一的网络搜索和内容提取能力支持多种输出格式，便于集成到各类 AI Agent 中C. 学完能做什么使用 jina 读取任意网页内容使用 jina 进行 AI 驱动的网络搜索将 jina 集成到 Claude Code、OpenClaw 等 AI 工具中批量处理 URL 列表，自动化内容采集2. 前置知识A. 必备技能基本命令行操作理解 URL 和 HTTP 请求概念B. 推荐知识使用过 AI 助理或 Claude Code了解 Markdown 格式了解 JSON 数据结构二、环境准备1. 系统要求Linux：主流发行版（Ubuntu、CentOS 等）macOS：10.15 及以上版本Windows：10/11（需 WSL 或使用 Git Bash）对于 OpenClaw 或 Claude Code Skill 方式：需安装对应平台2. 安装步骤jina 提供三种独立的安装方式，根据使用场景选择。方式一：OpenClaw Skill（推荐本地 AI 助理）适用场景：本地 AI 助理、自动化工作流、需要文件系统操作安装步骤：# 创建 jina-cli skill 目录并下载 mkdir -p ~/.openclaw/workspace/skills/jina-cli curl -o ~/.openclaw/workspace/skills/jina-cli/SKILL.md \ https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/skills/jina-cli/SKILL.md验证安装：# 启动 OpenClaw openclaw # 在 OpenClaw 中直接使用 jina 命令 # skill 会自动从 ~/.openclaw/workspace/skills/jina-cli/ 加载方式二：Claude Code Skill（推荐用于 AI 辅助开发）适用场景：在 Claude Code 中使用 AI 协助处理网页内容安装步骤：# 1. 确保已安装 Node.js 和 Claude Code node --version # v18.0.0 或更高版本 # 2. 安装 jina skill npx skills add https://github.com/geekjourneyx/jina-cli --skill jina-cli安装后验证：# 在 Claude Code 中可以直接使用 # 无需额外操作，skill 会自动加载方式三：CLI 二进制文件（推荐用于终端使用）适用场景：在终端/脚本中使用，或与其他工具集成一键安装（Linux/macOS）：curl -fsSL https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/scripts/install.sh | bash安装脚本会自动：检测系统架构（Linux/macOS，amd64/arm64）下载对应平台的二进制文件安装到 ~/.local/bin/jina 或 ~/bin/jina提示如何添加到 PATH（如需要）手动安装：# Linux amd64 wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-linux-amd64 -O jina chmod +x jina sudo mv jina /usr/local/bin/ # macOS ARM64 (Apple Silicon) wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-darwin-arm64 -O jina chmod +x jina sudo mv jina /usr/local/bin/从源码构建：git clone https://github.com/geekjourneyx/jina-cli.git cd jina-cli go build -o jina ./cli sudo mv jina /usr/local/bin/3. 验证安装# 检查是否安装成功 jina --version # 预期输出: jina version 1.0.0 (构建时间: ..., 提交: ...) # 测试基本功能 jina read --url "https://example.com"4. 安装方式对比特性OpenClaw SkillClaude Code SkillCLI 二进制安装位置~/.openclaw/workspace/skills/jina-cli/~/.claude/skills/~/.local/bin/jina使用环境OpenClaw 本地 AI 助理Claude Code任何终端/脚本AI 集成AI 自动理解功能AI 自动理解功能需要手动调用文件权限可访问本地文件系统受限完整权限脚本执行可执行脚本受限完整权限更新方式重新下载/npx skills updatenpx skills update重新运行安装脚本适用场景本地 AI 助理、自动化AI 辅助开发脚本集成、日常使用推荐选择：OpenClaw：最强能力，本地运行，可操作文件系统Claude Code：开发体验好，AI 辅助编码CLI 二进制：最轻量，适合脚本集成注意：三种方式完全独立，可以同时安装，互不干扰。三、核心概念1. 基本术语Jina AI Reader API：将网页转换为 LLM 友好格式的 API 服务read 命令：读取 URL 内容并转换为指定格式search 命令：执行网络搜索并处理结果config 命令：管理配置文件和参数2. 工作原理graph LR subgraph 输入 A[URL] B[搜索关键词] end A -->|read 命令| C[Jina API] B -->|search 命令| C C -->|解析/搜索| D[LLM 友好格式] D --> E[输出] E -->|Markdown/Text/HTML| F[终端] E -->|JSON| G[AI Agent]3. 架构图graph TD User[用户] -->|输入命令| CLI[jina CLI] CLI -->|发送请求| Config[配置管理] Config -->|读取/更新| ConfigFile[配置文件] CLI -->|HTTP 请求| API[Jina API] API -->|解析网页| Content[网页内容] API -->|AI 搜索| Results[搜索结果] Content -->|格式化| Output[输出] Results -->|格式化| Output Output --> CLI CLI --> User四、快速开始1. 读取网页内容# 读取单个 URL jina read --url "https://example.com" # 读取 X (Twitter) 帖子，启用图片描述 jina read -u "https://x.com/user/status/123456789" --with-alt # 输出 Markdown 格式 jina read -u "https://example.com" --output markdown # 保存到文件 jina read -u "https://example.com" --output-file result.md2. 批量处理# 从文件读取 URL 列表 cat > urls.txt << EOF https://example.com/page1 https://example.com/page2 https://x.com/user/status/123 EOF jina read --file urls.txt3. 网络搜索# 搜索关键词 jina search --query "golang latest news" # 限定搜索站点 jina search -q "AI developments" --site techcrunch.com --site theverge.com # 限制结果数量 jina search -q "climate change" --limit 10五、进阶内容1. 配置管理配置文件位于 ~/.jina-reader/config.yaml：# 查看所有配置 jina config list # 设置配置项 jina config set timeout 60 jina config set with-generated-alt true # 获取单个配置 jina config get timeout # 查看配置文件路径 jina config path配置项说明配置项环境变量默认值说明api_base_urlJINA_API_BASE_URLhttps://r.jina.ai/Read API 地址search_api_urlJINA_SEARCH_API_URLhttps://s.jina.ai/Search API 地址default_response_formatJINA_RESPONSE_FORMATmarkdown响应格式default_output_formatJINA_OUTPUT_FORMATjson输出格式timeoutJINA_TIMEOUT30请求超时（秒）with_generated_altJINA_WITH_GENERATED_ALTfalse启用图片描述proxy_urlJINA_PROXY_URL""代理服务器api_keyJINA_API_KEY""API 密钥（用于更高速率限制）优先级：命令行参数 > 环境变量 > 配置文件 > 默认值2. API Key 使用添加 API Key 可以获得更高的速率限制：# 方式 1：配置文件设置 jina config set api_key jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 方式 2：环境变量 export JINA_API_KEY=jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 方式 3：命令行参数 jina read -u "https://example.com" -k jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx获取 API Key：访问 Jina AI Reader 注册并获取。3. 输出格式JSON 格式（默认）{ "success": true, "data": { "url": "https://example.com", "title": "Example Domain", "content": "# Example Domain\n\nThis domain is..." } }Markdown 格式jina read -u "https://example.com" --output markdown输出：# Example Domain **Source**: https://example.com --- # Example Domain This domain is for use in illustrative examples...六、高级用法1. 禁用缓存jina read -u "https://example.com" --no-cache2. 使用代理jina read -u "https://example.com" --proxy "http://proxy.com:8080"3. CSS 选择器提取# 只提取指定元素 jina read -u "https://example.com" --target-selector "article.main" # 等待元素加载 jina read -u "https://example.com" --wait-for-selector "#content"4. 处理 SPA 应用# 对于带 hash 路由的 SPA，使用 POST 方法 jina read -u "https://example.com/#/route" --post5. 设置 Cookiejina read -u "https://example.com" --cookie "session=abc123"6. 与 AI Agent 集成# 在 Claude Code 或其他 AI 工具中使用 jina read -u "https://x.com/elonmusk/status/123456" --output json # 搜索最新信息 jina search -q "golang 1.24 release notes" --output json七、命令参考1. 主命令jina - CLI tool for Jina AI Reader and Search APIs Usage: jina [command] Available Commands: read Extract and convert content from URLs search Search the web with AI-powered results config Manage configuration completion Generate shell completion help Help about any command Flags: -a, --api-base string API base URL (overrides config) -k, --api-key string API key (overrides config) -o, --output string Output format: json, markdown (default "json") -v, --verbose Verbose output -h, --help help for jina --version version for jina2. read 命令# 读取网页内容 jina read [flags] Flags: -u, --url string URL to read (required) -f, --file string File containing URLs to read --with-alt Include generated image descriptions --no-cache Disable caching --proxy string Proxy server URL --cookie string Cookie string --target-selector string CSS selector to extract --wait-for-selector string Wait for selector before extraction --post Use POST method --output-file string Save output to file -o, --output string Output format: json, markdown (default "json")3. search 命令# 搜索网络 jina search [flags] Flags: -q, --query string Query to search (required) --site strings Limit search to specific sites --limit int Limit number of results (default 5) --with-alt Include generated image descriptions --no-cache Disable caching --proxy string Proxy server URL -o, --output string Output format: json, markdown (default "json")4. config 命令# 管理配置 jina config [command] Available Commands: list List all configuration get Get a configuration value set Set a configuration value path Show config file path八、常见问题1. 安装问题Q：一键安装脚本执行后提示 command not foundA：安装目录可能不在 PATH 中。手动添加：# 添加到 .bashrc 或 .zshrc export PATH="$PATH:$HOME/.local/bin" export PATH="$PATH:$HOME/bin"Q：macOS 提示无法打开，因为来自身份不明的开发者A：允许应用运行：xattr -d com.apple.quarantine /path/to/jina2. 配置问题Q：API Key 不生效A：检查优先级，命令行参数 > 环境变量 > 配置文件。确认没有在命令行或环境变量中覆盖配置。Q：代理设置不生效A：确认代理地址格式正确，建议使用完整的 URL 格式，如 http://proxy.example.com:8080。3. 运行问题Q：读取某些网页失败A：可能原因包括：网站有反爬虫机制URL 不存在或已被删除超时设置过短可尝试使用 --no-cache 禁用缓存，或增加 timeout 配置。Q：搜索结果不准确A：尝试：使用更精确的搜索关键词使用 --site 参数限定搜索范围增加 --limit 获取更多结果九、开发1. 运行测试# 运行测试 go test ./... # 运行测试并计算覆盖率 go test -cover ./...2. 构建# 本地构建 go build -o jina ./cli # 交叉编译 GOOS=linux GOARCH=amd64 go build -o jina-linux-amd64 ./cli GOOS=darwin GOARCH=arm64 go build -o jina-darwin-arm64 ./cli GOOS=windows GOARCH=amd64 go build -o jina-windows-amd64.exe ./cli3. 项目结构jina-cli/ ├── cli/ │ ├── main.go # 入口 │ ├── read.go # read 命令 │ ├── search.go # search 命令 │ ├── config.go # config 命令 │ └── pkg/ │ ├── api/ # HTTP 客户端 │ ├── config/ # 配置管理 │ └── output/ # 输出格式化 └── scripts/ └── install.sh # 安装脚本参考资料jina-cli GitHub 仓库Jina AI Reader API 文档
Netcatty 现代化 SSH 客户端与终端管理器一、概述1. 项目介绍Netcatty 是一款现代化的 SSH 客户端、SFTP 浏览器和终端管理器，专为需要高效管理多台远程服务器的开发者、系统管理员和 DevOps 工程师设计。A. 项目定位Netcatty 是 PuTTY、Termius、SecureCRT 和 macOS Terminal.app 的替代方案，提供更现代、更高效的 SSH 连接体验。B. 核心特性基于 Electron、React 和 xterm.js 构建的跨平台应用支持 macOS、Windows 和 Linux 三大主流操作系统提供分屏终端、会话管理、SFTP 文件传输等一站式解决方案支持自定义主题和终端关键词高亮2. 技术背景传统 SSH 客户端界面陈旧、功能单一，难以满足现代开发团队的多服务器管理需求。Netcatty 通过现代化的技术栈和用户界面，重新定义了 SSH 工作流。二、核心功能1. Vault 主机管理Vault 是 Netcatty 的主机管理中心，提供多种视图模式：网格视图：快速概览所有主机列表视图：密集扫描主机列表树状视图：按层级结构组织主机支持快速搜索定位，拖拽友好操作流程。2. 终端工作空间Netcatty 提供强大的终端管理能力：分屏功能：支持水平和垂直分屏，实现多任务并行会话管理：多个连接并排运行，减少上下文切换会话恢复：实现 always-on 工作流3. SFTP 文件管理内置强大的 SFTP 客户端：双面板文件浏览器拖拽上传下载内置编辑器支持原地快速修改流畅的文件操作体验4. 个性化配置自定义主题：调整应用外观关键词高亮：自定义终端输出高亮规则，让错误、警告和关键事件一目了然三、系统架构Netcatty 采用典型的 Electron 架构设计：graph TB subgraph "Netcatty 架构" UI[React + TypeScript 前端] Electron[Electron 主进程] Terminal[xterm.js 终端] SFTP[SFTP 浏览器] Vault[Vault 主机管理] end UI --> Electron Electron --> Terminal Electron --> SFTP Electron --> Vault Terminal --> PTY[node-pty] SFTP --> SSH2[ssh2 客户端] Vault --> SSH2 subgraph "远程服务器" Server[Linux/Unix 服务器] end SSH2 --> Server PTY --> Server1. 技术栈类别技术框架Electron 40前端React 19, TypeScript构建工具Vite 7终端xterm.js 5样式Tailwind CSS 4SSH/SFTPssh2, ssh2-sftp-clientPTYnode-pty图标Lucide React2. 项目结构App.tsx # 主 React 应用 components/ # React 组件 ├── Terminal.tsx # 终端组件 ├── SftpView.tsx # SFTP 浏览器 ├── VaultView.tsx # 主机管理 ├── KeyManager.tsx # SSH 密钥管理 └── ... application/ # 状态管理和国际化 domain/ # 领域模型和逻辑 infrastructure/ # 服务和适配器 electron/ # Electron 主进程 ├── main.cjs # 主入口 └── bridges/ # IPC 桥接 public/ # 静态资源和图标四、支持的发行版Netcatty 自动检测并显示连接主机的操作系统图标：UbuntuDebianCentOSFedoraArch LinuxAlpineAmazon LinuxRed HatRocky LinuxopenSUSEOracle LinuxKali Linux五、快速开始1. 下载安装从 GitHub Releases 下载对应平台的最新版本：操作系统支持架构macOSUniversal (x64 / arm64)Windowsx64 / arm64Linuxx64 / arm64macOS 用户注意：由于应用未进行代码签名，下载后需要运行以下命令移除隔离属性：xattr -cr /Applications/Netcatty.app或者右键应用 → 打开 → 在对话框中点击打开。2. 开发环境前置要求Node.js 18+ 和 npmmacOS、Windows 10+ 或 Linux开发步骤# 克隆仓库 git clone https://github.com/binaricat/Netcatty.git cd Netcatty # 安装依赖 npm install # 启动开发模式 (Vite + Electron) npm run dev3. 构建打包# 生产环境构建 npm run build # 打包当前平台 npm run pack # 打包特定平台 npm run pack:mac # macOS (DMG + ZIP) npm run pack:win # Windows (NSIS 安装包) npm run pack:linux # Linux (AppImage + DEB + RPM)六、连接类型Netcatty 支持多种连接方式：SSH：标准的 SSH 安全连接本地终端：本地 shell 会话Telnet：传统 Telnet 协议Mosh：移动友好的 SSH 替代方案串口：串口连接（当可用时）七、对比分析1. 与传统工具对比工具NetcattyPuTTYTermius现代界面是否是分屏终端是否是SFTP 集成是否是跨平台是Windows 为主是开源是否否自定义主题是有限是2. 核心优势工作空间优先分屏 + 标签 + 会话恢复，实现始终在线的工作流。Vault 组织网格/列表/树状视图，快速搜索和拖拽友好流程。专业 SFTP内置编辑器 + 拖拽 + 流畅的文件操作。八、开源协议项目采用 GPL-3.0 开源协议。参考资料Netcatty GitHub 仓库Netcatty 官网
CIA 泄露文档中的 Git 分支清理单行命令一、概述1. 简介A. 来源2017 年，WikiLeaks 发布了 Vault7，这是 CIA 黑客工具和内部文档的大型集合。在这些漏洞利用工具和监控工具中，隐藏着一份非常普通的东西：一页包含 Git 技巧和诀窍的内部开发者文档。B. 核心内容这份 CIA 开发团队的文档中包含一个实用的 Git 分支清理单行命令，可以快速删除已合并的本地分支。C. 实用价值这个命令可以定期清理本地仓库中已合并但未删除的分支，保持分支列表的整洁。2. 前置知识A. 必备技能Git 基本操作命令行基础管道和重定向概念B. 推荐知识Git 分支管理流程Shell 命令组合二、问题背景1. 问题现象随着时间推移，本地 Git 仓库会积累大量已合并但未删除的分支。每个功能分支、热修复分支和实验分支在合并后都保留在那里。2. 查看已合并分支git branch --merged这个命令会列出所有已合并到当前分支的本地分支。3. 痛点分析手动逐个删除分支非常繁琐分支列表变得冗长，难以找到活动分支容易误删除重要分支三、CIA 原版命令1. 命令内容git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d2. 命令解析graph LR A[git branch --merged] -->|列出已合并分支| B[grep -v 过滤] B -->|排除当前分支和master| C[xargs -n 1 执行] C -->|逐个安全删除| D[git branch -d]3. 各部分说明A. git branch --merged列出所有已合并到当前分支的本地分支。B. grep -v "*|master"过滤掉当前分支（用 * 标记）过滤掉 master 分支防止删除这些重要分支C. xargs -n 1 git branch -d对每个剩余的分支执行删除操作使用小写 -d 参数，安全删除如果分支未合并，删除操作会失败并提示四、更新版本命令1. 更新原因大多数现代项目已从 master 分支迁移到 main 分支。需要更新命令以适应新的命名规范。2. 更新后的命令git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d3. 改进说明与远程 main 分支比较，而不是本地当前分支使用扩展正则表达式 -vE排除 main 和 develop 等常用分支支持排除其他长期分支4. 执行时机建议在部署完成后，从 main 分支执行此命令。五、配置为 Git 别名1. 创建别名将以下内容添加到 ~/.gitconfig 文件中：[alias] ciaclean = "!f() { git branch --merged origin/main | grep -vE \"^\\s*(\\*|main|develop)\" | xargs -n 1 git branch -d; }; f"2. 使用方式git ciaclean3. Shell 别名方式如果更喜欢 Shell 别名，添加到 ~/.zshrc 或 ~/.bashrc：alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'4. 执行效果执行后，分支列表从 40 个条目缩减到少数几个。graph TD A[执行前: 40 个分支] --> B[执行 git ciaclean] B --> C[删除已合并分支] C --> D[执行后: 少量活动分支]六、安全注意事项1. 安全删除机制使用小写 -d 参数而不是大写 -D-d 参数会检查分支是否已合并未合并的分支删除会失败，保护数据2. 强制删除警告如果需要强制删除未合并分支，使用：git branch -D branchname但要非常谨慎，未合并的分支可能包含重要代码。3. 排除规则确保命令正确排除了：当前分支（用 * 标记）main/master 主分支develop 开发分支其他长期维护的分支七、最佳实践1. 定期清理建议在以下时机执行清理：每次部署完成后每周定期维护合并大量 PR 后2. 团队协作将此命令分享给团队成员统一使用相同的别名在开发文档中记录3. 自动化考虑可以将其集成到 CI/CD 流程中，或设置为 Git Hook。八、命令对比1. 原版 vs 更新版特性CIA 原版更新版基准分支当前分支origin/main排除分支mastermain, develop正则表达式基础扩展适用场景老项目新项目2. 使用建议老项目仍使用 master：用原版新项目使用 main：用更新版自定义分支名：修改排除规则参考资料Cleaning up merged git branches: a one-liner from the CIA's leaked dev docs | Spencer DixonWikiLeaks Vault7 - CIA Git Documentation
MicroClaw 多平台 AI 助手开源项目发布一、新闻概述1. 标题MicroClaw：基于 Rust 的多平台智能 AI 助手开源2. 发布时间2026 年 2 月 16 日3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容MicroClaw 是一个基于 Rust 开发的智能 AI 助手项目，支持多平台接入，包括 Telegram、Discord、Slack、飞书和 Web 界面。项目灵感来源于 nanoclaw，并融合了其部分设计理念。B. 核心亮点多平台统一架构，支持五大主流聊天平台完整的工具调用系统，支持命令执行、文件操作、代码搜索持久化记忆机制，跨会话保持上下文计划与执行模式，支持复杂任务分解内置任务调度系统，支持定时和一次性任务MCP 协议支持，可扩展工具生态2. 关键信息A. 项目技术栈编程语言：Rust许可证：MIT 开源协议架构模式：通道无关核心 + 平台适配器B. 支持平台TelegramDiscordSlack飞书/LarkWeb UIC. LLM 提供商Anthropic（Claude）OpenAIOpenAI 兼容接口（OpenRouter、DeepSeek、Azure 等）Google、阿里云、DeepSeek、Moonshot、Mistral 等 20+ 提供商3. 背景介绍A. 项目灵感MicroClaw 受 nanoclaw 项目启发，采用了其部分设计思想，但使用 Rust 重新实现，提供了更好的性能和内存安全性。B. 技术演进项目采用通道无关的核心架构，通过平台适配器支持多个聊天平台，便于后续扩展更多平台。三、详细报道1. 主要内容A. 核心功能工具系统：bash 命令执行（可配置超时）文件读写（read_file、write_file、edit_file）代码搜索（glob 模式匹配、grep 正则搜索）网络操作（DuckDuckGo 搜索、网页获取）消息发送（支持中间消息和附件）任务调度（cron 定时、一次性任务）子代理（sub_agent）委托任务记忆管理（read_memory、write_memory）会话管理：会话恢复：完整对话状态持久化上下文压缩：自动摘要旧消息保持上下文限制消息分割：自动分割长响应以适应平台限制技能系统：支持 Anthropic Agent Skills 标准技能自动发现和按需激活内置技能：pdf、docx、xlsx、pptx、skill-creator、apple-notes、apple-reminders、apple-calendar、weather、find-skillsB. 技术架构graph TB Client[用户] --> Platform[平台适配器] Platform --> Core[MicroClaw 核心] Core --> LLM[LLM 提供商] Core --> Tools[工具系统] Tools --> Bash[命令执行] Tools --> Files[文件操作] Tools --> Web[网络操作] Tools --> Memory[记忆系统] Core --> Scheduler[任务调度] Core --> Skills[技能系统]C. 记忆架构graph LR A[用户消息] --> B[会话处理] B --> C[工作记忆] B --> D[持久化记忆] D --> E[AGENTS.md 文件] D --> F[(SQLite 数据库)] F --> G[语义检索] F --> H[关键词检索] C --> I[上下文注入] E --> I G --> I H --> ID. 技术细节开发语言选择：使用 Rust 实现核心功能，提供内存安全保证零成本抽象和高效并发处理跨平台编译支持数据库设计：SQLite WAL 模式支持并发读写消息、会话、任务、记忆结构化存储支持 sqlite-vec 特性进行语义记忆检索API 兼容性：原生 Anthropic API 支持OpenAI 兼容接口统一抽象支持 20+ LLM 提供商2. 安装与部署A. 快速安装一键安装脚本（推荐）：curl -fsSL https://microclaw.ai/install.sh | bashWindows PowerShell：iwr https://microclaw.ai/install.ps1 -UseBasicParsing | iexHomebrew（macOS）：brew tap everettjf/tap brew install microclaw从源码编译：git clone https://github.com/microclaw/microclaw.git cd microclaw cargo build --release cp target/release/microclaw /usr/local/bin/B. 配置流程交互式配置向导：microclaw setup配置选项：选择 LLM 提供商（anthropic、openai、ollama 等）配置平台凭证（Telegram Bot Token、Discord Bot Token 等）设置工作目录和数据目录可选语义记忆配置（需 sqlite-vec 特性）C. 运行模式标准启动：microclaw start持久服务（可选）：microclaw gateway install microclaw gateway start3. 使用场景示例A. 计划与执行复杂任务分解：用户：设置一个新的 Rust 项目，包含 CI、测试和文档 机器人：[创建 todo 计划，逐步执行并更新进度] 1. [x] 创建项目结构 2. [x] 添加 CI 配置 3. [~] 编写单元测试 4. [ ] 添加文档graph TD A[接收复杂任务] --> B[分解为步骤] B --> C[创建 TODO 列表] C --> D[逐步执行] D --> E[更新进度] E --> F{完成?} F -->|否| D F -->|是| G[返回结果]B. 任务调度定时任务：用户：每天早上 9 点检查东京天气并发送摘要 机器人：任务 #1 已调度。下次运行：2025-06-15T09:00:00+00:00一次性任务：用户：下午 5 点提醒我给 Alice 打电话 机器人：任务 #2 已调度graph LR A[自然语言指令] --> B[解析任务类型] B --> C{定时/一次性} C -->|定时| D[cron 表达式] C -->|一次性| E[特定时间] D --> F[调度器轮询] E --> F F --> G[执行代理循环] G --> H[发送结果]C. 技能激活graph LR A[技能元数据] --> B[系统提示] C[用户请求] --> D{需要技能?} D -->|是| E[activate_skill] E --> F[加载完整指令] F --> G[执行任务] D -->|否| H[标准处理]4. 安全与权限A. 多聊天权限模型非 control chats 只能操作自己的 chat_idcontrol chats（control_chat_ids）可以跨聊天操作write_memory 的 scope: "global" 仅限 control chatsB. 平台行为规则Telegram 私聊：响应所有消息Telegram 群组：仅响应 @bot_username 提及Discord 私信：响应所有消息Discord 频道：响应 @提及，可限制频道Slack/飞书：类似规则C. 追赶模式Telegram 群组特殊行为：被提及时，机器人会读取自上次回复以来的所有消息（而不仅仅是最近 N 条），使群组交互更具上下文。四、影响分析1. 技术趋势A. Rust 在 AI 工具生态中的应用MicroClaw 展示了 Rust 在构建 AI 代理工具方面的优势，特别是在性能、内存安全和并发处理方面。B. 多平台统一架构的价值通道无关核心 + 平台适配器的架构模式为跨平台 AI 助手开发提供了可复用的设计参考。C. 工具调用标准化支持 Anthropic Agent Skills 标准和 MCP 协议，有助于构建可互操作的 AI 工具生态。2. 用户影响A. 开发者提供了完整的 Rust 实现参考易于扩展新平台和工具丰富的内置工具和技能B. 最终用户统一的多平台体验持久化记忆提升交互质量计划与执行模式处理复杂任务C. 企业用户可本地部署，数据可控支持多种 LLM 提供商灵活的权限控制3. 项目状态A. 开发状态项目处于活跃开发阶段，功能和 API 可能变化，欢迎社区贡献。B. 许可证采用 MIT 开源许可证，允许自由使用、修改和分发。五、技术亮点总结1. 核心优势Rust 实现的性能和安全保证多平台统一架构降低维护成本完整的工具生态和可扩展性持久化记忆和会话恢复计划与执行的智能任务分解2. 与类似项目对比特性MicroClawnanoclaw其他 AI 助手编程语言RustPython多样平台支持5+ 平台有限单一平台为主工具调用22+ 工具有限多样记忆系统文件 + 数据库主要文件各异技能系统Anthropic 标准自定义多样MCP 支持是否部分3. 适用场景个人 AI 助手部署团队协作机器人开发者工具集成自动化任务执行知识管理和检索六、相关链接1. 官方资源GitHub 仓库：https://github.com/microclaw/microclaw项目官网：https://microclaw.ai安装脚本：https://microclaw.ai/install.sh2. 技术文档README.md：项目概述、设置、使用指南DEVELOP.md：开发者指南TEST.md：测试指南CLAUDE.md：AI 编码助手项目上下文AGENTS.md：代理友好项目参考3. 相关项目nanoclaw：灵感来源项目Anthropic Agent Skills：技能标准规范MCP（Model Context Protocol）：工具协议标准参考资料MicroClaw GitHub Repository