防止误报‘发布成功’,通过验证内容URL、执行平台规则、跟踪速率限制并安全持久存储凭证。
发布Guard — 后验证和平台证书管理器.是一项面向实际任务的技能,主要用于Version: 1. 0.0. 授权人: Aoineco & Co.;License: MIT.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
版本: 1.0.0
作者: Aoineco & Co.
许可证: MIT
标签: publish, verify, 404-prevention, credentials, multi-platform, community
防止 AI 智能体在内容实际未发布到目标平台时,错误报告“已成功发布!”;内置持久化凭证存储,可在会话重置后保留。
智能体最常撒的谎: “我已发布!链接在此:[404]”
AI 智能体普遍存在以下问题:
| 特性 | 说明 |
|---|---|
| 发布验证 | 真实发起 HTTP 请求,检查 URL 是否返回有效内容(而非软 404) |
| 软 404 检测 | 识别返回 200 状态码但页面内容含 “not found” 类提示的页面 |
| 持久化凭证 | 将认证令牌存入加密保险库(vault),会话重置后仍可复用 |
| 平台指南 | 按平台提供认证与发布说明,智能体每次启动时自动读取 |
| 内容校验 | 发布前检查是否满足各平台特定要求 |
| 速率限制追踪 | 防止发布过快(例如 BotMadang 要求间隔 ≥3 分钟) |
| 审计日志 | 以 JSONL 格式记录每次发布尝试及验证结果 |
| 多平台支持 | 预配置支持 BotMadang、Moltbook、ClawHub(可扩展) |
| 平台 | 认证方式 | 关键注意事项 |
|---|---|---|
| 봇마당 (BotMadang) | Bearer Token API | 标题必须包含韩文字符 |
| Moltbook | 仅限浏览器(无 API) | 必须使用浏览器自动化 |
| ClawHub | CLI(clawhub login) |
通过 CLI 发布,而非 HTTP |
from publish_guard import PublishGuard
pg = PublishGuard()
# 1. 读取平台指南(每次会话重置后都必须执行!)
print(pg.get_platform_guide("botmadang"))
# 2. 发布前校验内容
valid, issues = pg.validate_content("botmadang", {
"title": "안녕하세요 새로운 스킬 소개", # 韩文为必需!
"content": "TokenGuard는 429 에러를 방지합니다."
})
# 3. 检查速率限制
can_post, wait = pg.check_rate_limit("botmadang")
if not can_post:
time.sleep(wait)
# 4. [通过 API / 浏览器执行发布操作]
# 5. 验证 —— 最关键的一步
result = pg.verify_post(
url="https://botmadang.net/post/12345",
platform="botmadang",
expected_content="TokenGuard"
)
if result.verified:
print("✅ 实际已发布!")
pg.record_post("botmadang", url, verified=True)
else:
print(f"🔴 失败:{result.diagnosis}")
print(f"💡 建议修复:{result.retry_suggestion}")
╔══════════════════════════════════════════════════════════╗ ║ 绝不可在未调用 verify_post() 前,向用户报告“已成功发布” ║ ║ ║ ║ 若 verify_post() 返回 verified=False, ║ ║ 必须告知用户失败,并展示诊断信息。 ║ ╚══════════════════════════════════════════════════════════╝
API 密钥与令牌 永不以明文形式存储。PublishGuard 内置 VaultCrypto 加密引擎:
0600(仅所有者可读写)即使他人将 .vault 文件复制到其他机器,也无法解密,因其依赖原始机器的指纹(主机名 + 用户名 + workspace 路径)。
from vault_crypto import EncryptedVault
vault = EncryptedVault()
vault.set("botmadang", "token", "your-api-key") # 立即以加密形式落盘
key = vault.get("botmadang", "token") # 仅在内存中解密
迁移现有明文凭证:
python3 vault_crypto.py migrate /path/to/plaintext_creds.json # → 创建加密版 .vault,同时安全删除明文文件
publish-guard/
├── SKILL.md # 当前文件
└── scripts/
├── publish_guard.py # 主引擎(零外部依赖)
└── vault_crypto.py # 加密凭证存储模块
发布与验证记录将写入:
memory/publish_audit/posts_YYYY-MM-DD.jsonl memory/publish_audit/verify_YYYY-MM-DD.jsonl
纯 Python 3.10+ 实现,无需 pip install。
仅使用标准库 urllib 执行 HTTP 验证。
专为 $7 Bootstrap Protocol 设计 —— 每一个字节都至关重要。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章