运维123 - go
type: channel
link: https://www.sddts.cn/index.php/tag/go/
items: 使用 AI Agent 将 MiniJinja 移植到 Go 语言
items: Axe CLI 工具指南
items: 修复 mcporter 与 n9e-mcp-server SSE 连接挂起问题
items: Pinchtab：面向 AI 代理的高性能浏览器自动化工具
items: Squirrel LLM Gateway：企业级 LLM 统一网关发布
items: PicoClaw超轻量级AI助手项目解析
items: 开源UART短信转发器（Golang实现）
items: Nightingale 官方 MCP 服务器发布
items: SamWaf开源轻量级网站防火墙介绍
items: msgvault 发布：基于 DuckDB 的极速私有邮件归档与搜索系统

使用 AI Agent 将 MiniJinja 移植到 Go 语言
type: item
date: 2026-03-20T06:40:50+00:00
description: 使用 AI Agent 将 MiniJinja 移植到 Go 语言一、新闻概述1. 标题使用 AI Agent 将 MiniJinja 移植到 Go 语言2. 发布时间2026 年 1 月 14 日3. 来源Armin Ronacher 个人博客（lucumr.pocoo.org）二、核心内容1. 事件摘要A. 主要内容Armin Ronacher 使用 AI Agent 成功将 MiniJinja（Rust 编写的 Jinja2 模板引擎）移植到 Go 语言。整个移植过程耗时约 10 小时，但人工参与时间仅 45 分钟，主要用于高层指导。B. 核心亮点AI Agent 独立完成绝大部分移植工作采用测试驱动开发方式，逐步实现词法分析、语法分析和运行时Agent 从字面移植转向行为移植，更符合 Go 语言习惯API 成本约 60 美元，使用 220 万 tokens2. 关键信息A. 涉及项目MiniJinja：Rust 版本的 Jinja2 模板引擎移植目标：原生 Go 语言实现B. 重要数据Agent 运行时长：10 小时（3 小时人工监督 + 7 小时独立运行）人工参与时间：约 45 分钟消息总数：2698 条用户提示：34 条工具调用：1386 次API 成本：60 美元Token 总量：220 万C. 使用的模型Claude Opus 4.5（主要开发阶段）GPT-5.2 Codex（测试修复阶段）3. 背景介绍A. MiniJinja 简介MiniJinja 是 Jinja2 模板引擎的 Rust 重新实现版本。Armin Ronacher 最初编写它是为了在 Rust 中进行基础设施自动化项目，虽然原项目没有继续，但 MiniJinja 本身对作者和其他用户都很有用。B. 测试机制MiniJinja 使用快照测试进行验证，通过 insta 工具比较输入和预期输出。这些快照测试成为验证 Go 移植版本的重要依据。三、详细报道1. 移植策略A. 测试驱动方法初始提示要求 Agent 确定如何验证移植。通过对话，作者与 Agent 达成一致路径：复用现有的 Rust 快照测试，逐步移植（词法分析器 → 语法分析器 → 运行时）。Agent 构建了 Go 端工具链：解析 Rust 测试输入文件（嵌入 JSON 配置头）解析参考 insta 快照文件并比较输出维护跳过列表以暂时排除失败的测试这形成了一个紧凑的反馈循环：Agent 有明确目标（让所有测试通过）和清晰的进度路径。graph LR A[Rust 快照测试] --> B[Go 测试工具] B --> C[词法分析器] C --> D[语法分析器] D --> E[运行时] E --> F[所有测试通过]B. Pi 的分支功能作者使用 Pi 的分支功能将会话结构化为不同阶段。通过回滚到较早部分并使用分支切换功能，自动告知 Agent 已完成的工作。分支切换时做两件事：保持在同一会话中，但从较早消息创建新分支切换时，将已完成的工作摘要作为引导消息添加到分支点这避免了 Agent 重新从头开始探索进度。C. 从字面移植到行为移植有趣的是，Agent 很快从字面移植转向行为移植。作者没有阻止这种转变，只要行为保持一致。原因有两个：代码库不大，必要时可以在最后调整这样更符合 Go 语言习惯例如，在运行时方面：实现了树遍历解释器（而非 Rust 的字节码解释器）决定使用 Go 的反射来实现值类型这些是 Agent 自主决定的，但比复制 Rust 解释器设计更合理（Rust 设计部分原因是缺乏垃圾回收器和运行时类型信息）。2. 需要人工干预的情况A. 错误消息处理Agent 完全放弃了所有必须失败的测试，因为运行时差异导致无法完美复制错误消息。作者引导它改用模糊匹配。B. 行为回归Agent 想要回退作者想保留的行为（如精确的 HTML 转义语义，或 range 必须返回迭代器）。如果没有引导，Agent 可能无法完成，或者作者会对结果失去信心。3. 完整覆盖的攻坚阶段修复主要语义不匹配后，剩余工作是填补所有缺失部分：缺失的过滤器、测试函数、循环扩展、宏、调用块等。作者切换到 Codex 5.2，排队提交几个继续让测试通过的提示，然后让它通过压缩独立工作。一旦基础覆盖完成，作者确信 Agent 可以在没有指导的情况下让剩余测试通过。这个阶段在无人监督的情况下通宵运行。4. 最终清理功能收敛后，作者要求 Agent：记录内部函数重新组织（如将过滤器移到单独文件）记录所有函数和过滤器（类似 Rust 代码库）此时设置了 CI、发布流程，并讨论创建的内容以进行最后的完善，然后合并。sequenceDiagram participant H as 人工 participant A as …

Axe CLI 工具指南
type: item
date: 2026-03-13T02:05:02+00:00
description: Axe CLI 工具指南一、概述1. 简介A. 是什么Axe 是一个轻量级的命令行工具，用于运行单用途的 AI 代理。它使用 TOML 配置文件定义代理行为，支持多个 AI 提供商，包括 Anthropic、OpenAI 和 Ollama（本地模型）。B. 为什么学简化 AI 代理的创建和部署流程支持代码版本控制和团队协作提供持久化内存和技能系统支持 MCP（Model Context Protocol）工具扩展C. 学完能做什么使用 TOML 文件定义和管理 AI 代理配置多提供商支持实现代理间的委托调用使用 Docker 容器化部署集成外部 MCP 工具2. 前置知识A. 必备技能基本 Linux 命令行操作了解 TOML 配置文件格式熟悉 Git 版本控制B. 推荐知识Docker 容器基础概念AI API 使用经验MCP 协议基础二、环境准备1. 系统要求Linux、macOS 或 WindowsGo 1.21+（源码编译）Docker（可选，用于容器化部署）2. 安装步骤使用 Homebrew 安装（推荐）：brew install jrswab/tap/axe使用 Go 安装：go install github.com/jrswab/axe@latestDocker 方式：docker pull ghcr.io/jrswab/axe:latest3. 验证安装axe --version axe --help三、核心概念1. 基本术语Agent（代理）：AI 实体，执行特定任务Skill（技能）：可复用的指令集Memory（内存）：持久化的对话历史MCP：Model Context Protocol，工具扩展协议Provider（提供商）：AI 模型服务提供商2. 工作原理graph TB subgraph "配置层" A[agents/*.toml 代理定义] B[skills/SKILL.md 技能指令] C[config.toml 凭证配置] end subgraph "执行层 - Axe CLI" D[运行命令解析] E[上下文构建] F[工具调用] end subgraph "提供商层" G[Anthropic API] H[OpenAI API] I[Ollama 本地模型] end subgraph "存储层" J[持久化内存 timestamped logs] K[工作目录 sandboxed] end A --> D B --> E C --> D D --> E E --> F F --> G F --> H F --> I F --> K J --> E L[stdin 管道输入] --> D M[cron/git hooks] --> D3. 配置目录结构默认配置目录为 $XDG_CONFIG_HOME/axe/，通常为：Linux：~/.config/axe/macOS：~/Library/Application Support/axe/目录结构：~/.config/axe/ ├── agents/ │ └── *.toml # 代理定义文件 ├── skills/ │ └── SKILL.md # 技能指令文件 ├── config.toml # 凭证配置 └── memory/ # 持久化内存日志四、快速上手1. Hello World 示例首先创建配置文件 ~/.config/axe/config.toml：[anthropic] api_key = "your_anthropic_api_key"创建代理定义 ~/.config/axe/agents/greeting.toml：name = "greeting" model = "claude-3-haiku-20240307" provider = "anthropic" [system] prompt = "你是一个友好的助手，用中文回答问题。" [max_tokens] input = 10000 output = 4096运行代理：axe run greeting "你好，请介绍一下自己"2. 核心功能演示管道输入支持：echo "解释这个代码的作用" | axe run coder < main.pyGit hook 集成：axe hook install pre-commit axe hook list axe hook remove pre-commit列出可用代理：axe list3. 代码讲解代理定义说明：name：代理标识符，用于 axe run 命令model：使用的基础模型名称provider：AI 提供商（anthropic、openai、ollama）system.prompt：系统提示词max_toke…

修复 mcporter 与 n9e-mcp-server SSE 连接挂起问题
type: item
date: 2026-03-02T06:29:19+00:00
description: 修复 mcporter 与 n9e-mcp-server SSE 连接挂起问题一、事件概述1. 事件背景用户在使用 mcporter 调用 Nightingale MCP 工具时，程序出现挂起现象。mcporter list 显示 nightingale 服务为 offline 状态，执行 mcporter call nightingale.list_active_alerts 命令时程序无响应。2. 影响范围A. 影响功能Nightingale MCP 工具调用全部失败无法通过 MCP 协议访问 Nightingale 监控数据影响 list_active_alerts、list_history_alerts 等所有监控工具B. 影响时长调试过程持续约 2 小时，涉及多次代码修改和验证3. 严重程度P2 级问题，影响特定 MCP 服务器的可用性二、事件时间线1. 问题发现（初始阶段）A. 现象描述执行 mcporter list 时，nightingale 显示为 "offline — unable to reach server"B. 初步判断根据计划文件，问题根源是配置不匹配：mcporter 配置使用 stdio 模式，但 n9e-mcp-server 已切换到 HTTP SSE 模式运行。2. 配置调整（第一阶段）A. 处理措施修改 /home/jacky/.claude/config/mcporter.json，将 nightingale 从 stdio 模式改为 HTTP SSE 模式B. 效果评估问题未解决，mcporter list 仍显示 nightingale 为 offline3. 用户关键反馈（第二阶段）A. 发现途径用户注意到服务器日志中 session_id 为空字符串：session_id=""B. 用户提问"from the log i see session_id is null, shall this is the problem?"4. SessionID 调查（第三阶段）A. 调研方法通过 zread 工具检查 go-sdk 源代码 mcp/sse.goB. 关键发现在 sseServerConn 和 sseClientConn 的 SessionID 方法中发现以下注释：// TODO(jba): get the session ID. (Not urgent because SSE transports have been removed from the spec.) func (s *sseServerConn) SessionID() string { return "" }C. 结论空的 session_id 是预期行为，SSE 传输已从 MCP 规范中移除，不是问题根源5. 真实问题定位（第四阶段）A. 处理措施使用 curl 直接测试 SSE 端点，验证服务器是否正常响应B. 关键发现curl 测试成功，SSE 流程正常工作。问题在于 mcporter 的传输模式回退逻辑：尝试 Streamable HTTP 模式：失败，提示 "sessionid must be provided"回退到 SSE 模式：挂起6. 配置文件定位（第五阶段）A. 处理措施搜索并确认 mcporter 的实际配置文件位置B. 关键发现mcporter 使用 /home/jacky/.mcporter/mcporter.json，而非 /home/jacky/.claude/config/mcporter.jsonC. 修复措施更新正确的配置文件，将 URL 从远程地址改为本地地址7. Token 认证逻辑修复（第六阶段）A. 问题分析检查 n9e-mcp-server 的 HTTP 处理代码，发现所有请求（包括 POST 到 session endpoint）都强制要求 token 认证B. 问题根因POST 请求到 /mcp?sessionid=XXX 时，这些请求应仅使用 sessionid 认证，不应再次验证 tokenC. 修复措施修改 /mydata/code/mcp/n9e-mcp-server/internal/http_server.go，添加条件判断：mainHandler.HandleFunc("/mcp", func(w http.ResponseWriter, r *http.Request) { // POST 请求带 sessionid 直接转发到 SSE handler if r.Method == http.MethodPost && r.URL.Query().Get("sessionid") != "" { sseHandler.ServeHTTP(w, …

Pinchtab：面向 AI 代理的高性能浏览器自动化工具
type: item
date: 2026-03-02T00:55:52+00:00
description: 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. 工作流程sequenceDiag…

Squirrel LLM Gateway：企业级 LLM 统一网关发布
type: item
date: 2026-02-17T07:56:33+00:00
description: Squirrel LLM Gateway：企业级 LLM 统一网关发布一、新闻概述1. 标题Squirrel LLM Gateway：企业级 LLM 统一网关开源发布2. 发布时间2026 年 2 月（最新提交：2026-02-16）3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容开发者 mylxsw 开源了 Squirrel LLM Gateway，这是一个高性能、企业级的 LLM 代理服务，旨在统一和管理对 OpenAI、Anthropic 等大语言模型提供商的访问。B. 核心亮点统一 API 接口：单一接入点访问多个 LLM 提供商零代码变更：完全兼容 OpenAI 和 Anthropic SDK智能路由：支持基于规则、优先级、权重的请求路由协议转换：内置 OpenAI Chat、OpenAI Responses、Anthropic Messages 之间的协议转换全面可观测性：完整的请求/响应日志、Token 计费、延迟监控2. 关键信息A. 版本信息开源协议：MIT License最新提交：4fa62b0（2026-02-16）Python 版本：3.12+前端：Next.js 16 + TypeScript + shadcn/uiB. 重要数据GitHub Stars：20+Forks：4主要编程语言：Python 73.2%、TypeScript 25.8%C. 涉及技术后端：FastAPI、Alembic、SQLite/PostgreSQL前端：Next.js 16、shadcn/ui协议转换：自研 llm_api_converter SDK容器化：Docker、Docker Compose3. 背景介绍A. 项目定位Squirrel LLM Gateway 定位为企业级 LLM 接入中间件，解决企业在使用多个 LLM 提供商时面临的集成复杂、成本控制、故障切换等问题。B. 相关上下文随着 LLM 技术的快速发展，企业往往需要同时接入多个 LLM 提供商以实现成本优化和风险分散。Squirrel 提供了统一的接入层，简化了这一过程。三、详细报道1. 主要功能A. 统一 API 接口Squirrel 提供了统一的 API 接口，支持：OpenAI 兼容：/v1/chat/completions、/v1/completions、/v1/embeddings、/v1/audio/、/v1/images/OpenAI Responses 兼容：/v1/responses（支持流式和工具调用）Anthropic 兼容：/v1/messages 端点协议转换：OpenAI Chat ↔ OpenAI Responses ↔ Anthropic Messages 之间无缝转换B. 智能路由策略系统支持多种路由策略：轮询（Round-Robin）：均匀分配请求优先级（Priority-Based）：优先使用首选提供商权重（Weight-Based）：按自定义权重分配成本（Cost-Based）：自动选择价格最低的模型基于规则：根据模型名称、请求头、消息内容或 Token 数量路由C. 高可用性设计自动重试：可配置的重试次数（默认 3 次）提供商故障转移：无缝切换到备用提供商超时管理：可配置请求超时（默认 30 分钟）D. 全面可观测性完整请求/响应捕获：包括流式响应Token 追踪：使用 tiktoken 自动计数延迟指标：首字节延迟和总响应时间成本分析：按时间、模型、提供商、API Key 汇总统计数据脱敏：自动处理日志中的敏感信息2. 技术架构graph TB Client[客户端应用] --> Gateway[Squirrel LLM Gateway] Gateway --> Router[智能路由引擎] Router -->|基于规则/优先级/权重/成本| Provider1[OpenAI 提供商] Router --> Provider2[Anthropic 提供商] Router --> Provider3[Azure OpenAI] Router --> Provider4[本地模型] Gateway --> Dashboard[管理控制台] Gateway --> Logger[日志记录] Gateway --> Metrics[指标统计] Logger --> DB[(数据库)] Metrics --> DB Dashboard -->|查询| DB Dashboard -->|管理| Router3. 核心组件A. 后端架构（Python/FastAPI）backend/ ├── app/ │ ├── api/ # API 路由（代理、管理） │ ├── services/ # 业务…

PicoClaw超轻量级AI助手项目解析
type: item
date: 2026-02-13T07:30:40+00:00
description: PicoClaw 超轻量级 AI 助手项目解析一、项目概述1. 项目背景A. 项目简介PicoClaw 是一个由 Sipeed 团队开发的超轻量级个人 AI 助手，灵感来源于 Nanobot 项目，并通过 AI 自举（Self-Bootstrapping）方式完全使用 Go 语言重构。该项目实现了在 10 美元硬件和 10MB 内存以下运行 AI Agent 的突破性目标。B. 核心价值内存占用低于 10MB，相比 OpenClaw 减少 99%启动时间仅需 1 秒，即使是在 0.6GHz 单核处理器上硬件成本最低可达 10 美元，比 Mac mini 便宜 98%支持跨平台单一二进制部署，覆盖 RISC-V、ARM 和 x86 架构C. 项目特色AI 自举开发：95% 核心代码由 AI Agent 生成跨平台编译：单一编译产物即可运行于多种架构多渠道集成：支持 Telegram、Discord、QQ、钉钉等即时通讯平台内置工具集：代码执行、网络搜索、定时任务等功能二、技术架构1. 系统组成graph TB subgraph "用户界面层" TG[Telegram Bot] DC[Discord Bot] QQ[QQ Bot] DT[钉钉 Bot] CLI[命令行界面] end subgraph "PicoClaw 核心层" GW[Gateway 网关] AGENT[Agent 引擎] TOOL[工具管理器] MEM[记忆系统] end subgraph "外部服务层" LLM[大语言模型 API] SEARCH[网络搜索 API] EXEC[代码执行环境] CRON[定时任务调度] end TG --> GW DC --> GW QQ --> GW DT --> GW CLI --> AGENT GW --> AGENT AGENT --> TOOL AGENT --> MEM TOOL --> LLM TOOL --> SEARCH TOOL --> EXEC TOOL --> CRON2. 核心组件A. Gateway 网关职责：统一管理多渠道接入功能：消息路由、用户认证、连接管理特点：支持并发处理多个聊天平台B. Agent 引擎职责：处理用户请求，协调工具调用功能：对话管理、工具编排、记忆存储特点：支持多轮对话和上下文保持C. 工具管理器职责：提供可扩展的工具调用接口功能：代码执行、网络搜索、定时任务特点：插件化设计，易于扩展D. 记忆系统职责：持久化存储对话和知识功能：短期会话记忆、长期知识库特点：文件系统存储，易于备份和迁移三、关键技术1. Go 语言优势分析A. 跨平台编译能力Go 语言原生支持交叉编译，无需额外的工具链即可为不同架构生成二进制文件：graph LR A[Go 源码] -->|GOARCH=amd64| B[x86-64 二进制] A -->|GOARCH=arm64| C[ARM64 二进制] A -->|GOARCH=riscv64| D[RISC-V 二进制] B --> E[Linux 服务器] C --> F[树莓派/嵌入式] D --> G[RISC-V 开发板]B. 内存管理Go 的垃圾回收器和高效的内存分配策略，使得 PicoClaw 能够在极低内存环境下运行：特性说明优势静态类型编译时类型检查减少运行时开销值语义默认值传递降低 GC 压力高效 GC并发标记清除内存占用稳定C. 单二进制部署Go 编译生成的可执行文件包含所有依赖，无需额外安装运行时环境：picoclaw # 完整可执行文件 ├── 内置依赖 ├── 标准库 └── 业务逻辑2. 性能优化策略A. 启动速度优化预编译模型：避免运行时编译开销懒加载：按需加载组件和配置并发初始化：利用 goroutine 并行启动B. 内存占用优化连接池：复用网络连接缓冲区管理：固定大小缓冲区避免频繁分配流式处理：大文件分块处理C. 并发处理Goroutine：轻量级线程处理并发请求Channel：安全的数据传递Context：请求取消和超时控制四、功能详解1. 多平台支持对比特性OpenClawNanoBotPicoClaw开发语言TypeScriptPythonGo内存占用>1GB>100MB<10MB启动时间（0.8GHz）>500秒>30秒<1秒硬件成本Mac Mini $599Linux SBC ~$50任意 Linux 板 ~$10跨平台有限良好优秀2. 聊天平台集成A. Telegram（推荐）优势：配置简单，仅需 Bot Token配置示例：{ "channels": { "telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["Y…

开源UART短信转发器（Golang实现）
type: item
date: 2026-02-13T00:29:01+00:00
description: 开源UART短信转发器（Golang实现）一、项目概述1. 项目简介UART短信转发器是一个基于嵌入式设备和GSM模块的硬件解决方案，其核心功能是监听并自动转发通过特定手机SIM卡接收到的短信到指定的远程服务器、邮箱或即时通讯应用。简单来说，它就是一个物理短信网关或短信转发机器人。2. 方案特色通过串口直接控制Air780模组，后端使用Golang实现统一的服务层转发方案不需要消耗流量，也不需要外接ESP32可使用淘宝带USB的成品Air780系列板子或自制板子（理论上Air780Exx系列的硬件都支持，实测Air780EHV、Air780EHM）即插即用，部署简单，只需要一台能插USB的小型设备，比如N1盒子、软路由、迷你主机等二、核心工作原理1. 硬件交互主控制器通过UART（通用异步收发传输器）串口与GSM模块进行通信，发送AT指令（如AT+CMGL=ALL读取短信）来控制模块并获取短信内容。2. 网络连接上位机设备通过USB连接Air780模组，获取短信后通过自身网络连接转发。3. 内容转发系统将短信的发送方号码、接收时间、内容等信息打包，通过HTTP/HTTPS请求、SMTP邮件协议或特定API发送到预设的远程端点。4. 自动化整个流程无需人工干预，完全自动化运行。三、系统架构graph TB subgraph GSM模块 A[SIM卡] --> B[Air780模组] B -->|UART串口| C[USB接口] end subgraph 上位机 C --> D[Golang服务] D --> E[短信解析] D --> F[转发引擎] end subgraph 转发目标 F --> G[钉钉] F --> H[企业微信] F --> I[飞书] F --> J[自定义Webhook] F --> K[邮箱] end subgraph 管理功能 D --> L[短信记录] D --> M[发送短信] D --> N[来电通知] D --> O[计划任务] end四、现有功能1. 核心功能短信转发：接收SIM卡短信并实时转发短信记录：保存所有短信记录发送短信：支持通过接口发送短信来电通知：接收来电提醒2. 转发方式钉钉机器人通知企业微信通知飞书通知自定义Webhook邮箱通知3. 高级功能计划任务：支持定时发送短信任务管理：创建和管理定时任务五、主要应用场景1. 验证码接收将不常用的手机卡插入转发器，放在家里。当在外需要注册账号接收验证码时，验证码会立刻被转发到你的Telegram或邮箱，无需回家取卡。2. 服务器状态告警许多服务器监控系统（如Prometheus Alertmanager）支持通过短信告警。将此设备与服务器放在同一机房，即可将关键告警短信实时转发到运维人员的常用通讯工具上，确保不漏警。3. 银行交易通知转发银行卡的每一笔交易通知，实现远程的财务监控。4. 物联网远程通知作为一个简单的GSM通信节点，用于远程设备的状态报告和告警（例如，农田湿度传感器在检测到干旱时发送告警短信，再由设备转发）。六、技术栈与硬件组成1. 硬件组件Air780系列4G Cat.1模组（如Air780EHV、Air780EHM）USB接口（即插即用）SIM卡座天线（GSM模块天线）2. 软件技术后端语言：Golang（Go）通信协议：HTTP/HTTPS、SMTP数据格式：JSON3. 运行环境N1盒子软路由迷你主机任何支持USB的Linux设备七、项目优势1. 低成本与低功耗核心组件Air780模组价格便宜，整套硬件成本极低。同时，它可以设计为低功耗模式，适合长期插电运行。2. 高度可定制性作为开源项目，你可以根据自己的需求修改代码，例如过滤垃圾短信、定义转发规则、添加新的通知方式等。3. 摆脱实体手机无需专门准备一部安卓手机来安装转发APP，硬件更稳定，功耗也更低。4. 部署简单即插即用，只需USB连接即可运行，无需复杂的网络配置。八、传统方案对比1. 传统ESP8266方案需要ESP8266主控制器需要SIM800L/SIM900A等GSM模块需要Wi-Fi网络连接需要额外的电源模块硬件组装复杂2. 本方案优势单个Air780模组即可完成所有功能通过USB直接连接上位机无需额外Wi-Fi模块即插即用软件统一由Golang管理九、总结UART短信转发器项目是一个完美结合硬件hacking和软件集成的经典物联网应用。它解决了特定场景下的一个实际痛点，并且以极低的成本和开源的方式呈现，非常适合嵌入式开发者、极客和运维人员学习、DIY和使用。基于合宙Air780系列4G Cat.1模组的新方案，相比传统的ESP8266+SIM800L组合，在部署简便性和软件统一管理方面有显著优势，是一个非常实用的开源项目。参考资料项目地址：u…

Nightingale 官方 MCP 服务器发布
type: item
date: 2026-02-10T07:04:17+00:00
description: Nightingale 官方 MCP 服务器发布一、新闻概述1. 标题Nightingale 官方 MCP 服务器 n9e-mcp-server 发布2. 发布时间2026 年 2 月 5 日3. 来源GitHub 仓库 n9e/n9e-mcp-server二、核心内容1. 事件摘要A. 主要内容Nightingale 监控系统官方发布了首个 MCP（Model Context Protocol）服务器，使 AI 助手能够通过自然语言与 Nightingale API 交互。B. 核心亮点首个 Nightingale 官方 MCP 服务器实现支持 7 大工具集、32 个工具函数兼容 OpenCode、Cursor 等 MCP 客户端提供 npm 包和二进制两种部署方式Apache 2.0 开源许可2. 关键信息A. 版本号v0.1.1（最新版本）B. 兼容性Nightingale v8.0.0+C. 涉及技术Go 语言（92.5%）后端核心JavaScript（6.8%）npm 包封装MCP Go SDK 官方框架3. 背景介绍A. Nightingale 简介Nightingale（夜莺）是一款企业级云原生监控系统，源自 Open-fork，在 Prometheus 基础上增强了告警管理、可视化等企业级功能。B. MCP 协议Model Context Protocol 是 Anthropic 推出的标准化协议，用于 AI 助手与外部工具和数据源之间的通信。三、详细报道1. 主要功能A. 告警管理查询当前和历史告警查看告警规则和订阅配置获取告警详情B. 目标监控浏览和搜索被监控主机分析目标状态列出可用数据源C. 事件响应创建和管理告警静默规则配置通知规则查看事件管道执行历史D. 团队协作查询用户和团队信息浏览业务组权限2. 技术细节A. 系统架构graph TB AI[AI 助手] -->|MCP 协议| MCP[n9e-mcp-server] MCP -->|HTTP API| N9E[Nightingale API] MCP -.配置.-> Config[环境变量配置] Client1[OpenCode] -->|stdio| MCP Client2[Cursor] -->|stdio| MCP Client3[其他 MCP 客户端] -->|stdio| MCP subgraph "工具集分类" Alerts[alerts] Targets[targets] Mutes[mutes] Users[users] Events[event_pipelines] end MCP --> Alerts MCP --> Targets MCP --> Mutes MCP --> Users MCP --> EventsB. 工具集组织工具集工具数量主要功能alerts6告警查询、规则管理targets1监控目标列表datasource1数据源查询mutes4静默规则 CRUDnotify_rules2通知规则管理alert_subscribes3告警订阅管理event_pipelines5事件管道管理users4用户和团队管理busi_groups1业务组查询C. 部署方式方式一：npm 包（推荐）{ "mcpServers": { "nightingale": { "command": "npx", "args": ["-y", "@n9e/n9e-mcp-server", "stdio"], "env": { "N9E_TOKEN": "your-api-token", "N9E_BASE_URL": "http://your-n9e-server:17000" } } } }方式二：二进制文件# 下载最新版本 n9e-mcp-server --token=xxx --base-url=http://localhost:170003. 配置参数A. 环境变量变量名命令行参数说明默认值N9E_TOKEN--tokenNightingale API 令牌（必填）-N9E_BASE_URL--base-urlNightingale API 基础地址http://localhost:17000N9E_READ_ONLY--read-only禁用写操作falseN9E_TOOLSETS--toolsets启用的工具集（逗号分隔）allB. 安全配置graph LR User[用户] -->|1. 登录| Web[Nightingale Web] Web -->|2. 生成令牌| Token[API Token] Token -->|3. 配置到 MCP| MCP[MCP Server] MCP -->|4. 携带令牌| API[Nig…

SamWaf开源轻量级网站防火墙介绍
type: item
date: 2026-02-09T00:44:46+00:00
description: SamWaf开源轻量级网站防火墙介绍一、新闻概述1. 标题SamWaf：面向小企业和个人站点的开源轻量级网站防火墙2. 发布时间2025年12月25日（最近更新）3. 来源GitHub 开源仓库二、核心内容1. 事件摘要A. 主要内容SamWaf 是一款开源轻量级的网站应用防火墙（WAF），专为小公司、工作室和个人网站设计，支持完全私有化部署。B. 核心亮点完全开源代码，支持私有化部署独立防护引擎，不依赖 Nginx、Apache、IIS数据本地加密存储，隐私保护到位一键启动，支持 Linux 和 Windows 64位、Arm64 平台支持 IPv6 和自动 SSL 证书申请续签2. 关键信息A. 版本状态GitHub Stars：1344+Fork：154+支持平台：Linux、Windows 64位、Arm64B. 代码仓库GitHub：https://github.com/samwafgo/SamWafGitee：https://gitee.com/samwaf/SamWafAtomGit：https://atomgit.com/SamSafe/SamWafC. 主要特性OWASP CRS 规则集支持CC 防护和 IP 黑白名单自定义防护规则日志加密存储管理端通信加密三、详细报道1. 主要功能A. 防护能力支持 OWASP CRS 规则集SQL 注入、XSS、RCE、扫描等攻击检测CC 攻击频率限制Bot 检测自定义规则脚本支持B. 访问控制IP 黑白名单URL 黑白名单白名单访问模式分网站单独防护策略C. 安全特性日志加密保存通讯日志加密信息脱敏保存数据本地化存储D. SSL 证书管理自动 SSL 证书申请（支持 Let's Encrypt 和 ZeroSSL）自动续签证书到期批量检测支持多云账号配置2. 架构设计graph TB Client[客户端] --> SamWaf[SamWaf 引擎] SamWaf --> WafEngine[WAF 防护引擎] WafEngine --> RuleEngine[规则匹配引擎] RuleEngine --> OWASP[OWASP CRS] RuleEngine --> Custom[自定义规则] SamWaf --> LogSystem[日志系统] LogSystem --> Encrypt[加密存储] WafEngine -.允许请求.-> Backend[后端服务] WafEngine -.拦截请求.-> Block[拦截页面] LogSystem --> Notify[告警通知] Notify -.邮件/企业微信.-> Admin[管理员]A. 工作原理SamWaf 采用反向代理架构，部署在客户端和后端服务之间：请求接收：SamWaf 监听 80/443 端口接收 HTTP/HTTPS 请求规则匹配：通过内置规则引擎对请求进行安全检测处理决策：根据匹配结果决定放行或拦截日志记录：所有请求经加密后存储到本地告警通知：触发告警条件时发送通知B. 核心组件WAF 防护引擎：核心防护逻辑规则引擎：OWASP CRS + 自定义规则日志系统：加密存储和查询SSL 模块：自动证书申请和管理通知模块：邮件、企业微信告警3. 技术细节A. 技术栈开发语言：Go 语言Web 框架：自研引擎前端：Vue.js数据存储：本地加密文件B. 部署方式Windows 系统# 直接启动 SamWaf64.exe # 服务模式安装 SamWaf64.exe install SamWaf64.exe startLinux 系统# 一键安装脚本 curl -sSO http://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh install # 一键卸载脚本 curl -sSO http://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh uninstallDocker 部署docker run -d --name=samwaf-instance \ -p 26666:26666 \ -p 80:80 \ -p 443:443 \ -v /path/to/your/conf:/app/conf \ -v /path/to/your/data:/app/data \ -v /path/to/your/logs:/app/logs \ -v /path/to/your/ssl:/app/ssl \ samwaf/samwafC. 访问配置管理界面：http://127.0.0.1:26666默认账号：admin默认密码：adm…

msgvault 发布：基于 DuckDB 的极速私有邮件归档与搜索系统
type: item
date: 2026-02-02T23:13:07+00:00
description: msgvault 发布：基于 DuckDB 的极速私有邮件归档与搜索系统一、新闻概述1. 标题msgvault 发布：基于 DuckDB 的极速私有邮件归档与搜索系统，配备终端 UI 和 MCP 服务器2. 发布时间2026 年 2 月 2 日3. 来源Wes McKinney 官方博客（pandas 创始人）二、核心内容1. 事件摘要A. 主要内容Wes McKinney 宣布推出 msgvault，这是一个本地优先的邮件存储和检索引擎，能够在毫秒级时间内查询大量邮件和消息数据。B. 核心亮点本地优先架构，完全离线运行基于 SQLite 和 DuckDB 的双层存储设计内置终端 UI、CLI 和 MCP 服务器支持百万级邮件毫秒级搜索支持从 Gmail 导出并删除原始数据2. 关键信息A. 版本状态Alpha 版本（早期软件）B. 技术栈编程语言：Go数据库：SQLite（权威存储）+ DuckDB（查询引擎）文件格式：Parquet（元数据索引）C. 规模数据作者已成功导入近 200 万封邮件超过 15 万个邮件附件总数据量约 39GB3. 背景介绍A. 项目起源Wes McKinney 使用 Gmail 已有 20 年（自 2006 年起），随着时间推移，Gmail 产品体验逐渐下降，搜索功能越来越不可靠。B. 相关上下文作者开发了 roborev（持续代理代码审查系统）来辅助开发项目从 Python/Rust 混合架构转为纯 Go，以简化 AI 辅助开发流程三、详细报道1. 主要内容A. 功能特性Gmail 同步：通过 OAuth API 导入邮件和附件附件去重：基于内容哈希的内容寻址存储多账户支持：可同步多个 Gmail 账户数据删除：可从 Gmail 服务器永久删除已归档邮件B. 技术改进双层存储架构：SQLite 作为权威数据源，DuckDB 用于高速查询Parquet 元数据索引：不包含邮件正文，仅包含搜索相关字段MCP 协议支持：可接入 Claude Desktop 等本地 LLM 工具C. 性能指标初始同步：受 Gmail API 速率限制，较慢增量同步：仅需数秒查询响应：毫秒级2. 技术细节A. 系统架构graph TB subgraph Sources Gmail[Gmail API] end subgraph Storage SQLite[(SQLite 权威数据库)] Parquet[Parquet 元数据索引] CAS[(内容寻址存储)] end subgraph Query DuckDB[DuckDB 查询引擎] end subgraph Interface TUI[终端 UI] CLI[命令行工具] MCP[MCP 服务器] end Gmail -->|OAuth 同步| SQLite SQLite -->|原始邮件| CAS SQLite -->|导出元数据| Parquet Parquet --> DuckDB DuckDB --> TUI DuckDB --> CLI DuckDB --> MCPB. 数据流向flowchart LR A[Gmail] -->|初始同步/增量同步| B[SQLite 存储] B -->|提取元数据| C[Parquet 文件] C -->|加载| D[DuckDB] D -->|SQL 查询| E[终端 UI] D -->|MCP 协议| F[Claude Desktop] D -->|命令行| G[CLI 工具] B -->|附件去重| H[内容寻址存储]C. 技术选型原因Go 语言：单一静态二进制文件，易于分发SQLite：可靠的事务型数据库，适合作为权威数据源DuckDB：高性能分析型数据库，支持复杂聚合查询Parquet：列式存储格式，查询效率高3. 数据与事实A. 作者个人数据Gmail 使用年限：20 年（2006-2026）邮件总数：近 200 万封附件总数：超过 15 万个存储占用：39GBB. 附件类型分布根据作者的个人归档数据，包含各种格式的附件（PDF、图片、文档等）四、影响分析1. 行业影响A. 数据主权趋势msgvault 体现了用户对数据主权日益增长的关注。越来越多的用户希望将数据从大型科技公司的云服务中迁移到本地控制。B. 本地 AI 生态随着本地 LLM 的普及，本地数据归档工具将成为构建私有 AI 应用的重要基础设施。2. 用户影响A. 现有用户解决了 Gmail 搜索体验差的问题提供了数据离队（从 Google 生态迁出）的可行方案支持与 Claude Desktop 等 AI 工具集成B. 潜在用户需要长期邮件归档的专业用户对隐私敏感的用户希望利用 AI 分析历史邮件的用户C. 迁移成本需要一定的技术能力（命令行操作…