OpenClaw/clawhub-security-signals huggingface dataset:
Skill: forvendettaw/three-tier-memory-v2 (version 1.0.0)

--- name: memory-manager description: 三级记忆管理系统 (Three-Tier Memory Management)。用于管理 AI 代理的短期、中期、长期记忆。包括：(1) 滑动窗口式短期记忆，(2) 自动摘要生成中期记忆，(3) 向量检索长期记忆 (RAG)。当需要管理对话历史、优化上下文、构建个人知识库、或实现记忆持久化时使用此 Skill。 --- # Memory Manager Skill 管理 AI 代理的三级记忆系统：短期（滑动窗口）、中期（自动摘要）、长期（向量检索）。 ## 快速开始 ```bash # 初始化记忆系统 python3 scripts/memory_manager.py init # 添加短期记忆 python3 scripts/memory_manager.py add --type short --content "用户喜欢黑色" # 查询记忆 python3 scripts/memory_manager.py search "用户的偏好" ``` ## 架构概览 | 层级 | 存储位置 | 触发条件 | 用途 | |------|----------|----------|------| | 短期 | `memory/sliding-window.json` | 实时 | 保持当前对话连贯 | | 中期 | `memory/summaries/` | Token 阈值 | 压缩历史，保留大意 | | 长期 | `memory/vector-store/` | 语义检索 | 永久记忆，RAG | ## 核心功能 ### 1. 短期记忆：滑动窗口 - 配置：`config/window_size`（默认 10 条） - 逻辑：FIFO 队列，超出则丢弃最旧消息 - 文件：`memory/sliding-window.json` ### 2. 中期记忆：自动摘要 - 触发：当前 token > `config/summary_threshold`（默认 4000） - 模型：使用廉价模型（如 GPT-3.5-Haiku） - 输出：`memory/summaries/YYYY-MM-DD.json` ### 3. 长期记忆：向量检索 - 后端：ChromaDB（本地向量库） - 存：对话结束/摘要生成后自动向量化存储 - 取：每次查询前先检索相关记忆 ## 配置文件 创建 `memory/config.yaml`： ```yaml memory: short_term: enabled: true window_size: 10 max_tokens: 2000 medium_term: enabled: true summary_threshold: 4000 summary_model: "glm-4-flash" # 或 gpt-3.5-turbo long_term: enabled: true backend: "chromadb" top_k: 3 min_relevance: 0.7 ``` ## 使用场景 - **新对话开始**：先 `search` 长期记忆，注入相关上下文 - **对话中**：自动管理短期/中期记忆，超阈值自动摘要 - **对话结束**：将重要信息存入长期记忆 ## 详细用法 See [REFERENCES.md](references/references.md) for complete command reference.


Security scan verdicts — ClawScan: clean | static analysis:  | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: diankourenxia/openclaw-with-vscode (version 1.0.0)

--- name: vscode-copilot description: Bridge between OpenClaw and VS Code Copilot — dispatch coding tasks from any OpenClaw channel to VS Code for execution. version: 0.2.0 homepage: https://marketplace.visualstudio.com/items?itemName=wodeapp.openclaw-chat metadata: openclaw: emoji: "💻" requires: bins: ["curl"] --- # VS Code Copilot Bridge Dispatch coding tasks from OpenClaw to VS Code Copilot for execution. When the user asks you to write, edit, review, or debug code, send the task to VS Code where Copilot will execute it — editing files, running commands, creating code, and more. 将编码任务从 OpenClaw 分发到 VS Code Copilot 执行。当用户要求编写、编辑、审查或调试代码时，将任务发送到 VS Code，由 Copilot 代为执行——编辑文件、运行命令、创建代码等。 ## Setup / 安装 Install the OpenClaw Chat extension from VS Code Marketplace: 从 VS Code 扩展商店安装 OpenClaw Chat 扩展： ```bash code --install-extension wodeapp.openclaw-chat ``` Or search **"OpenClaw Chat"** in VS Code Extensions panel. 或在 VS Code 扩展面板搜索 **"OpenClaw Chat"** 安装。 The extension starts automatically with VS Code. No manual launch needed. 扩展会随 VS Code 自动启动，无需手动操作。 ## External Endpoints / 端点 | Endpoint | Method | Data Sent / 发送数据 | |---|---|---| | `http://localhost:19836/trigger` | POST | `{"prompt":"..."}` — the coding task / 编码任务 | | `http://localhost:19836/health` | GET | None / 无 | All traffic is local (127.0.0.1). No data leaves the machine. 所有流量均在本地（127.0.0.1），不会发送到外部。 ## Workflow / 工作流程 1. Check if the extension is running / 检查扩展是否运行： ```bash curl -s http://localhost:19836/health ``` If not running, guide the user through Setup above. 如未运行，引导用户完成上方安装步骤。 2. Send the coding task / 发送编码任务： ```bash curl -s -X POST http://localhost:19836/trigger \ -H "Content-Type: application/json" \ -d '{"prompt":"<TASK_DESCRIPTION>"}' ``` 3. The response JSON contains a `response` field with Copilot's reply. Display it to the user. 返回的 JSON 包含 `response` 字段，内含 Copilot 的回复。将其展示给用户。 ## Example / 示例 User says / 用户说: "帮我写一个防抖函数" ```bash curl -s -X POST http://localhost:19836/trigger \ -H "Content-Type: application/json" \ -d '{"prompt":"在当前打开的文件里写一个 TypeScript 防抖函数"}' ``` Response / 返回： ```json {"ok":true,"prompt":"...","response":"Here is a debounce function..."} ``` ## Security & Privacy / 安全与隐私 - All HTTP traffic stays on localhost (127.0.0.1:19836) / 所有流量仅在本地 - No data is sent to external servers by this skill / 此 skill 不会向外部发送数据 - Copilot processes the request using GitHub's API (standard Copilot behavior) / Copilot 通过 GitHub API 处理请求（标准行为） ## Notes / 注意事项 - VS Code must be open / VS Code 必须处于打开状态 - Copilot Chat should be in **Agent mode** for full execution / Copilot Chat 应切换到 **Agent 模式**以获得完整执行能力 - Always run health check before dispatching if unsure / 不确定时先执行健康检查 - Always show the response to the user / 始终将回复展示给用户


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: aibenyclaude-coder/tetra-scar-code-review (version 0.1.0)

--- name: scar-code-review description: > Code review that learns from failures. Reflex arc blocks repeat mistakes without LLM calls. Combines systematic checklist review (security, performance, correctness, maintainability) with scar memory — when a review misses a bug, record a scar, and the reflex arc automatically flags similar patterns next time. version: 0.1.0 author: b-button-corp tags: - code-review - safety - memory - learning - scar requires: binaries: - python3 --- # scar-code-review ## What this does A code review system that **learns from its own misses**. Two layers work together: 1. **Checklist review** — Regex/heuristic checks across 4 dimensions: - **Security**: SQL injection, hardcoded secrets, XSS, eval/exec - **Performance**: N+1 queries, missing pagination, unbounded SELECTs - **Correctness**: Unchecked nulls, off-by-one patterns, unhandled promises - **Maintainability**: Long functions, deep nesting, magic numbers 2. **Scar reflex arc** — Pattern-matching against past review misses. When a review fails to catch a bug that later causes an incident, record a scar. Next time, the reflex fires before the LLM even looks at the diff. No external dependencies. stdlib only. Python 3.9+. ## Quick start Review a file: ``` python3 scar_code_review.py review path/to/file.py ``` Check a diff against past scars: ``` python3 scar_code_review.py check-diff path/to/changes.diff ``` Record a missed review finding: ``` python3 scar_code_review.py record-miss \ --what-missed "Missed SQL injection in user input handler" \ --pattern "execute.*format.*user" \ --severity critical ``` ## File format JSONL, compatible with tetra-scar: ```json {"id":"rscar_1234","what_missed":"...","pattern":"...","severity":"critical","created_at":"..."} ``` ## Integration ```python from scar_code_review import review, reflex_check, record_miss, load_review_scars # Review a file findings = review("app/views.py") for f in findings: print(f"{f['severity']} [{f['dimension']}] {f['message']} (line {f['line']})") # Check diff against past scars scars = load_review_scars() blocks = reflex_check(diff_text, scars) for b in blocks: print(f"BLOCKED: {b}") # Record a miss after an incident record_miss( what_missed="Missed unvalidated redirect", pattern="redirect.*request\\.GET", severity="high", ) ```


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: omaression/commit-message-writing (version 1.0.0-alpha)

--- name: commit-message-writing description: Strict Conventional Commits v1.0.0, atomic commit discipline, and Trunk-Based Development guardrails for git work. Use when preparing a commit, staging changes, writing or revising a commit message, deciding whether to split changes, planning branch strategy for a feature/bug/fix, opening or reviewing pull requests, or after finishing any meaningful implementation unit. --- # Commit Message Writing Every commit: valid Conventional Commit, atomic, on the right short-lived branch. ## Required workflow 1. `git status --short` and `git diff --stat`. 2. Verify you're on a short-lived branch dedicated to one feature, bug, fix, or coding area. If not, create/switch first. 3. Confirm the changes are one logical unit. If mixed, split before committing. 4. Confirm automated tests appropriate to the scope will run. 5. Pick the most specific commit type. 6. Write the message: ```text <type>[optional scope][!]: <imperative lowercase description> [optional body] [optional footer(s)] ``` 7. Validate with `scripts/validate_commit_message.py` before committing. ## Hard rules - One short-lived branch per feature, bug, fix, or distinct coding area. - Keep branches narrow, merge back quickly, avoid long-lived divergence. - Every PR must have robust automated tests so bugs are caught early. - Always include a lowercase type followed by `: `. - Imperative, lowercase description, no trailing period, ≤72 chars. - Body: one blank line after description. Footers: one blank line after body. - Footer format: `Token: value`. Hyphens in tokens except `BREAKING CHANGE`. - Use `!` and/or `BREAKING CHANGE:` footer for breaking changes. - Never use `WIP`, `misc`, `update`, or vague summaries. ## Types | Type | When | SemVer | |---|---|---| | `feat` | new feature | minor | | `fix` | bug fix | patch | | `refactor` | restructure, no behavior change | none | | `perf` | performance improvement | none (patch if fixes bug) | | `docs` | documentation only | none | | `test` | tests only | none | | `build` | build system / deps | none | | `ci` | CI/CD changes | none | | `chore` | maintenance / tooling | none | | `style` | formatting only | none | | `revert` | revert prior commit | depends | ## Scope Use a consistent noun for the dominant area. Omit only when truly cross-cutting. Never multiple scopes in one commit line. ## Splitting rules Split when: - feature + bug fix - code + formatting-only cleanup - deps/build + application logic - refactor + standalone behavior change - generated files + loosely coupled source One type, one intent per commit. If you can't describe it that way, split. ## Validation ```bash python3 scripts/validate_commit_message.py --message "feat(auth): add otp fallback" ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ugpoor/dolphindb-docker (version 1.4.1)

--- name: dolphindb-docker description: Automate DolphinDB Docker deployment with auto architecture detection (ARM64/x86_64), smart memory allocation (50% rule), and full data persistence. metadata: {"clawdbot":{"emoji":"🐬","os":["macos","linux"],"requires":{"bins":["docker"]},"install":[{"id":"docker-desktop","kind":"manual","label":"Install Docker Desktop","url":"https://www.docker.com/products/docker-desktop/"}]}} --- # DolphinDB Docker 部署技能 ## 功能说明 自动化部署 DolphinDB Docker 容器，包括： 1. **自动检测本机芯片架构**（ARM64/x86_64） 2. **自动读取本机内存**并按 50% 原则分配 3. **下载指定版本的 DolphinDB 官方 Docker 镜像** 4. **完整持久化** `/data/ddb/server/` 目录到主机 5. **License 指纹采集**挂载 `/etc` 目录 ## 使用方法 ### 基础部署 ```bash # 部署最新版（自动检测架构和内存） ./deploy-dolphindb.sh # 部署指定版本 ./deploy-dolphindb.sh v2.00.7 # 自定义内存（GB） ./deploy-dolphindb.sh v2.00.7 16 # 自定义数据目录 ./deploy-dolphindb.sh v2.00.7 8 /path/to/data ``` ### Python 调用 ```python import subprocess # 部署 DolphinDB subprocess.run([ './skills/dolphindb-docker/deploy-dolphindb.sh', 'v2.00.7', # 版本 '8', # 内存 GB（可选，默认自动计算） [REDACTED_SECRET] # 数据目录（可选） ]) ``` ## 文件结构 ``` dolphindb-docker/ ├── SKILL.md # 技能说明（本文件） ├── deploy-dolphindb.sh # 部署脚本 └── README.md # 详细文档 ``` ## 部署逻辑 ### 1. 芯片检测 ```bash uname -m # arm64 → 使用 dolphindb/dolphindb-arm64 # x86_64 → 使用 dolphindb/dolphindb ``` ### 2. 内存计算 ```bash # 读取本机内存（字节） mem_bytes=$(sysctl -n hw.memsize) # macOS # 或 mem_bytes=$(grep MemTotal /proc/meminfo | awk '{print $2 * 1024}') # Linux # 转换为 GB 并取 50% mem_gb=$((mem_bytes / 1024 / 1024 / 1024)) mem_limit=$((mem_gb / 2)) ``` ### 3. Docker 启动命令 ```bash docker run -itd --name dolphindb \ --hostname cnserver10 \ --platform <架构> \ -m <内存>g \ -p 8848:8848 \ -p 8849:8849 \ -v /etc:/dolphindb/etc \ -v <主机数据目录>:/data/ddb/server \ dolphindb/<镜像>:<版本> ``` ## 验证部署 ```bash # 检查容器状态 docker ps --filter name=dolphindb # 查看日志 docker logs dolphindb # 访问 Web UI curl http://localhost:8848 # Python 连接测试 python3 -c " import dolphindb as ddb s = ddb.session() s.connect('localhost', 8848) print(s.run('version()')) " ``` ## 注意事项 1. **首次部署**：数据目录会自动初始化 2. **升级版本**：保留数据目录，只需更换镜像版本 3. **内存调整**：修改 `maxMemSize` 配置文件后重启容器 4. **端口冲突**：如 8848 被占用，修改 `-p` 参数 ## 故障排查 ### 容器启动失败 ```bash # 查看详细日志 docker logs dolphindb # 检查端口占用 lsof -i:8848 ``` ### 内存不足 ```bash # 降低内存限制 docker run -m 4g ... ``` ### 架构不匹配 ```bash # 确认本机架构 uname -m # 使用对应镜像 # ARM64: dolphindb/dolphindb-arm64 # x86_64: dolphindb/dolphindb ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: catsmeow492/nochat-channel-plugin (version 0.1.0)

--- name: nochat-channel description: Encrypted agent-to-agent messaging via NoChat. Post-quantum E2E encryption. Add NoChat as a native channel in OpenClaw — receive DMs from other AI agents. homepage: https://nochat.io metadata: { "openclaw": { "emoji": "🔐", "requires": { "bins": ["node"], "network": true } } } --- # NoChat Channel Plugin Encrypted agent-to-agent messaging channel for OpenClaw. Post-quantum E2E encryption. Server-blind — even if the database is compromised, messages remain unreadable. ## What it does Adds NoChat as a native messaging channel in OpenClaw, alongside Telegram, Discord, Signal, etc. Your agent can receive encrypted DMs from other AI agents through NoChat. ## Features - **E2E Encrypted** — Post-quantum (Kyber-1024) encryption. Server never sees plaintext. - **Agent Discovery** — Find other agents by name via the key directory - **Trust Tiers** — 5 levels (blocked → untrusted → sandboxed → trusted → owner) controlling what each agent can do - **Polling Transport** — Automatic message polling with adaptive intervals - **Self-Echo Filtering** — Won't process your own outbound messages - **Catch-Up on Restart** — Marks existing messages as seen on startup, no history flood ## Quick Setup 1. Register your agent: `POST https://nochat-server.fly.dev/api/v1/agents/register` 2. Get your API key through tweet verification 3. Install this plugin: `openclaw plugins install ~/.openclaw/extensions/nochat-channel` 4. Configure in your openclaw config: ```json { "plugins": { "entries": { "nochat-channel": { "enabled": true, "config": { "serverUrl": "https://nochat-server.fly.dev", "apiKey": "nochat_sk_YOUR_KEY", "agentName": "YourAgent", "agentId": "your-agent-uuid" } } } } } ``` 5. Restart your gateway: `openclaw gateway restart` ## API Docs Full NoChat API documentation: `GET https://nochat-server.fly.dev/api/v1/docs` ## Links - **NoChat**: https://nochat.io - **API Docs**: https://nochat-server.fly.dev/api/v1/docs - **Plugin Source**: https://github.com/kindlyrobotics/nochat-channel-plugin - **Server Source**: https://github.com/kindlyrobotics/nochat


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: damiencronw/skill-list (version 1.0.0)

--- name: skill-list description: "列出 OpenClaw Skills：以表格形式展示所有 skills、显示功能介绍、找出功能重复的 skills。Use when: 用户想知道安装了哪些 skills、某个 skill 是做什么的、或者想找出重复功能的 skills。" metadata: { "openclaw": { "emoji": "📦" }, "version": "1.0.1", "author": "damien" } --- # Skill Manager OpenClaw Skills 管理工具 - 列表形式展示 ## 功能 ### 1. 列出所有 Skills（表格形式） | Skill | 功能 | |-------|------| | characteristic-voice | 让语音更自然、更有感情 | | chat-with-anyone | 和任何人对话，用他们的声音回复 | | clawsucker | Clawsucker 团队 AI 助手 | | daily-news-caster | 新闻播客生成 | | github | GitHub CLI 管理 | | memory-system | 🧠 长期记忆系统 | | n8n-workflow-automation | n8n 工作流设计 | | pg | PostgreSQL 查询优化 | | pgvector | 向量数据库 | | proactive-agent | 🦞 主动型 AI | | skill-finder | 智能搜索 skill | | surrealdb | 文档/图数据库 | | tavily-search | AI 优化搜索 | | tts | 文字转语音 | | video-stt | 视频转文字 | | video-translation | 视频翻译配音 | ### 2. 功能分类 | 分类 | Skills | |------|--------| | 🎙️ 语音/视频 | tts, characteristic-voice, chat-with-anyone, video-stt, video-translation, daily-news-caster | | 🧠 记忆 | memory-system, proactive-agent | | 💾 数据库 | pg, pgvector, surrealdb | | 🔧 工具 | github, skill-finder, tavily-search, truth-search | | ⚙️ 自动化 | n8n-workflow-automation | ### 3. 功能重复的 Skills | 功能 | 重复 Skills | |------|-------------| | 搜索/查找 | skill-finder, tavily-search, truth-search | | 文字转语音 | tts, characteristic-voice (characteristic-voice 依赖 tts) | | 记忆系统 | memory-system, proactive-agent | | 数据库 | pg, pgvector, surrealdb | ## 使用命令 ```bash # 列出所有 skills python scripts/list_skills.py # 分类显示 python scripts/list_skills.py --category ``` ## 常用 Skills 推荐 - **语音相关**: tts, characteristic-voice - **视频处理**: video-stt, video-translation - **记忆系统**: memory-system, proactive-agent - **数据库**: pg, pgvector --- 更新于: 2026-03-08


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: athola/nm-gauntlet-challenge (version 1.0.2)

--- name: challenge description: | Run a gauntlet challenge session with adaptive difficulty. Tests codebase understanding through multiple choice, code completion, trace exercises, and more version: 1.9.5 metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet", "emoji": "\ud83e\udd9e"}} source: claude-night-market source_plugin: gauntlet --- > **Night Market Skill** — ported from [claude-night-market/gauntlet](https://github.com/athola/claude-night-market/tree/master/plugins/gauntlet). For the full experience with agents, hooks, and commands, install the Claude Code plugin. # Run Gauntlet Challenge Present challenges from the knowledge base and evaluate answers. ## Steps 1. **Load state**: read `.gauntlet/knowledge.json` and developer progress 2. **Check for pending challenge**: if `.gauntlet/state/pending_challenge.json` exists, evaluate the developer's most recent message as an answer before generating a new one 3. **Generate challenge**: use adaptive weighting to select a knowledge entry and challenge type 4. **Present challenge**: show the question with context 5. **Evaluate answer**: score the response (pass/partial/fail) 6. **Record result**: update developer progress and streak 7. **On pass**: write pass token if from pre-commit gate. Show next challenge if in session. 8. **On fail**: show correct answer with explanation. Present a new challenge. ## Scoring | Result | Score | Streak | |--------|-------|--------| | Pass | 1.0 | +1 | | Partial | 0.5 | reset | | Fail | 0.0 | reset |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: bernhmueller/linkedin-bm (version 1.0.0)

--- name: linkedin-bm description: LinkedIn automation via browser relay or cookies for messaging, profile viewing, and network actions. homepage: https://linkedin.com metadata: {"clawdbot":{"emoji":"💼"}} --- # LinkedIn Use browser automation to interact with LinkedIn - check messages, view profiles, search, and send connection requests. ## Connection Methods ### Option 1: Chrome Extension Relay (Recommended) 1. Open LinkedIn in Chrome and log in 2. Click the Clawdbot Browser Relay toolbar icon to attach the tab 3. Use `browser` tool with `profile="chrome"` ### Option 2: Isolated Browser 1. Use `browser` tool with `profile="clawd"` 2. Navigate to linkedin.com 3. Log in manually (one-time setup) 4. Session persists for future use ## Common Operations ### Check Connection Status ``` browser action=snapshot profile=chrome targetUrl="https://www.linkedin.com/feed/" ``` ### View Notifications/Messages ``` browser action=navigate profile=chrome targetUrl="https://www.linkedin.com/messaging/" browser action=snapshot profile=chrome ``` ### Search People ``` browser action=navigate profile=chrome targetUrl="https://www.linkedin.com/search/results/people/?keywords=QUERY" browser action=snapshot profile=chrome ``` ### View Profile ``` browser action=navigate profile=chrome targetUrl="https://www.linkedin.com/in/USERNAME/" browser action=snapshot profile=chrome ``` ### Send Message (confirm with user first!) 1. Navigate to messaging or profile 2. Use `browser action=act` with click/type actions 3. Always confirm message content before sending ## Safety Rules - **Never send messages without explicit user approval** - **Never accept/send connection requests without confirmation** - **Avoid rapid automated actions** - LinkedIn is aggressive about detecting automation - Rate limit: ~30 actions per hour max recommended ## Session Cookie Method (Advanced) If browser relay isn't available, extract the `li_at` cookie from browser: 1. Open LinkedIn in browser, log in 2. DevTools → Application → Cookies → linkedin.com 3. Copy `li_at` value 4. Store securely for API requests ## Troubleshooting - If logged out: Re-authenticate in browser - If rate limited: Wait 24 hours, reduce action frequency - If CAPTCHA: Complete manually in browser, then resume


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: zhili007/express-query (version 1.0.0)

# 快递物流查询 Skill ## 目标 根据用户提供的快递单号，查询物流轨迹，识别承运商，判断物流状态，识别异常，并给出建议。 ## 使用场景 用户说帮我查一下快递 用户说快递到哪了 用户说物流怎么还没更新 --- ## 执行流程 ### 第一步：识别承运商 运行 scripts/identify.py 识别快递公司 或使用正则匹配，详见 references/carriers.md ### 第二步：查询物流 推荐路径按优先级： 第一选择是快递100聚合查询，打开浏览器访问 https://www.kuaidi100.com 输入单号查询 第二选择是官网查询，直接访问对应快递公司官网 第三选择是浏览器自动化，如果以上都失败，用 browser 工具打开查询页面 ### 第三步：解析轨迹 从查询结果网页中提取以下信息： 第一步是找到物流轨迹区域，通常在页面中间位置 第二步是提取时间，格式为 YYYY.MM.DD HH:MM 第三步是提取地点和状态，描述中包含地点和状态信息 第四步是按时间倒序排列，最新的在前 ### 第四步：异常判断 根据以下规则判断异常情况： 停滞规则是最新一条轨迹距离今天超过3天 滞留规则是轨迹中出现同一站点重复超过2次 派送异常规则是状态包含派送中且超过2天 签收未收到规则是状态显示已签收但用户说没收到 退件规则是状态包含退件、退回、拒收 ### 第五步：生成回复 按以下结构输出： 第一行是快递公司和单号，用中文冒号分隔 第二行是状态，运输中或派送中或已签收 第三行是最新轨迹，时间地点状态用空格分隔 第四部分是物流时间线，用数字编号，每条一行 第五部分是异常判断，有问题时写具体问题，没问题时写正常 第六部分是建议动作，根据状态给出相应建议 --- ## 回答原则 只信官方来源，优先使用快递100或官网数据 不编造轨迹，查不到就是查不到，不要编造 诚实告知，查不到、异常、无法判断都要诚实说 给出建议，异常时给用户具体的处理建议 --- ## 技术实现 ### 识别算法 详见 references/carriers.md 核心逻辑是步骤一前缀匹配、步骤二长度特征匹配、步骤三兜底判断 ### 查询工具 browser 用于打开快递100或官网查询页面，是主要工具 web_fetch 用于抓取查询结果页面，是备用工具 ### 脚本 scripts/identify.py 是单号识别脚本，测试命令 python3 identify.py SF1234567890 scripts/query.py 是查询主脚本，测试命令 python3 query.py 单号 --- ## 测试样例 测试单号一：SF1234567890，预期识别为顺丰速运 测试单号二：JT12345678901，预期识别为极兔速递 测试单号三：JD0012345678901，预期识别为京东物流 测试单号四：781234567890，预期识别为中通快递 --- ## 异常判断详细规则 规则一：停滞 判断方法是最新轨迹时间距离今天超过3天 处理方式是建议联系发件人核实或联系快递公司客服 规则二：滞留 判断方法是同一站点出现3次以上 处理方式是建议直接联系快递公司客服催办 规则三：派送中超时 判断方法是状态为派送中且超过48小时 处理方式是建议联系快递员或客服询问情况 规则四：已签收未收到 判断方法是状态显示已签收但用户说没收到 处理方式是建议先确认家人同事是否代收，然后联系快递员或客服投诉 规则五：退件 判断方法是状态包含退件、退回、拒收 处理方式是建议联系发件人确认原因 --- ## 输出模板 标准输出格式如下： 快递公司：XXX 单号：XXX 状态：运输中/派送中/已签收/异常 最新轨迹： 2025.11.20 14:39 地点 - 状态描述 物流时间线： 1. 2025.11.20 14:39 地点 - 状态描述 2. 2025.11.20 12:26 地点 - 状态描述 3. 2025.11.19 10:00 地点 - 状态描述 异常判断：正常 / 停滞3天 / 派送超时 / 签收未收到 建议动作：暂无 / 请联系客服催办 / 请确认是否代收 / 请联系发件人核实 --- 版本：v0.3 最后更新：2026-03-20


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)