跳到正文
cccskills
免费在 GitHub 公开中文介绍

telegram-e2e-userbot

通过真实用户账号在Telegram测试服务器上操作OpenClaw,记录回复、编辑、删除、回应和输入状态,验证用户可见的行为,并用实际客户端截图检查显示效果。

原文查看原文说明

Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich content.

集成工具Telegram
AI 评分90分/ 100查看安装方法

适用场景

  • 验证私聊回复和命令
  • 检查群组提及和话题
  • 检查编辑、删除和输入状态
  • 在实际界面确认显示效果

中文介绍

功能

在Telegram测试服务器上,通过真实用户账号操作OpenClaw,验证用户可见的行为。使用TDLib记录消息编辑、删除、回应和输入状态,并以发送操作之后发生的事件作为验证依据。运行脚本负责临时借用凭据、启动测试环境、记录事件和清理。

适用场景

适合需要检查私聊回复与命令、群组提及、话题及回应的开发和质量保证人员。除了确认是否收到回复,还可分别验证格式、媒体、时间表现和消息变化。

使用示例

  • “请在私聊中发送指定消息,并记录回复的时间线。”
  • “请验证群组中的回应,并报告作为依据的事件。”

注意事项

需要目标OpenClaw环境、node、uv、已准备好的依赖项及Convex凭据。完整场景还需要本地网络通信和未占用的端口。验证显示效果时,应使用实际Telegram客户端的截图。不要将凭据写入共享记录;结束时须确认进程已停止,凭据已归还。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

客观评估

AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。

指令清晰度能否看出何时使用、做什么
A良好明确说明在Telegram测试服务器记录真实用户操作,验证用户可见的行为。
步骤具体性步骤、输入输出和示例是否具体
A良好列明准备、选择验证、运行、判断和清理步骤,以及events.ndjson和summary.json输出。
安全性发送数据、删除文件、执行命令等是否有说明
A良好明确凭据借用范围、不得写入共享记录,以及停止进程和归还凭据的检查。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足要求node、uv及已准备好的依赖项,但未提供依赖项安装步骤。

总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月19日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(53)

  • SKILL.md7.3 KB
  • agents/openai.yaml351 B
  • features/basic-turns.md2.8 KB
  • features/delivery-lifecycle.md2.4 KB
  • features/private-yield-reply-policy.md4.8 KB
  • features/reaction-lifecycle.md2.4 KB
  • features/README.md9.5 KB
  • features/restart-attribution.md3.7 KB
  • features/runtime-reference.md23.5 KB
  • scripts/followup-drain-control-preload.mjs2.6 KB
  • scripts/followup-drain-control-preload.test.mjs3.0 KB
  • scripts/node-test-children.mjs2.0 KB
  • scripts/published-upgrade-artifact.mjs5.5 KB
  • scripts/published-upgrade-scenario.mjs17.3 KB
  • scripts/qa-credential-lease.mjs11.8 KB
  • scripts/qa-credential-lease.test.mjs25.9 KB
  • scripts/reply-policy-checkpoint.mjs5.8 KB
  • scripts/reply-policy-mock.mjs8.4 KB
  • scripts/run-mock-sut-user-e2e.mjs58.1 KB
  • scripts/run-mock-sut-user-e2e.test.mjs24.2 KB
  • scripts/run-published-upgrade-user-e2e.mjs12.0 KB
  • scripts/run-published-upgrade-user-e2e.test.mjs9.7 KB
  • scripts/run-reply-policy-user-e2e.mjs14.8 KB
  • scripts/scenario.mjs12.0 KB
  • scripts/scenario.test.mjs8.9 KB
  • scripts/telegram-api-ignore-abort-preload.mjs511 B
  • scripts/telegram-api-ignore-abort-preload.test.mjs1008 B
  • scripts/telegram-binding-checkpoint.mjs21.2 KB
  • scripts/telegram-binding-checkpoint.test.mjs10.2 KB
  • scripts/telegram-binding-forum.py18.9 KB
  • scripts/telegram-binding-upgrade-verdict.mjs16.3 KB
  • scripts/telegram-run-composition.test.mjs27.7 KB
  • scripts/telegram-run-scope.mjs9.3 KB
  • scripts/telegram-runtime.mjs3.9 KB
  • scripts/telegram-runtime.test.mjs6.5 KB
  • scripts/telegram-test-api-proxy.mjs19.3 KB
  • scripts/telegram-test-api-proxy.test.mjs24.3 KB
  • scripts/telegram-test-credential.mjs9.6 KB
  • scripts/telegram-test-credential.test.mjs13.4 KB
  • scripts/telegram-test-doctor.mjs11.5 KB
  • scripts/telegram-test-doctor.test.mjs5.3 KB
  • scripts/telegram-test-group.mjs4.5 KB
  • scripts/telegram-test-group.test.mjs2.1 KB
  • scripts/telegram-test-recover.mjs6.4 KB
  • scripts/telegram-test-recover.test.mjs12.0 KB
  • scripts/telegram-test-scenario.test.mjs34.7 KB
  • scripts/triage-mock-openai.mjs13.5 KB
  • scripts/triage-mock-openai.test.mjs5.2 KB
  • scripts/user-driver.py82.1 KB
  • scripts/user-driver.test.py61.0 KB
  • scripts/user-proof-ownership.test.py6.1 KB
  • scripts/user-record.py32.1 KB
  • scripts/user-record.test.py28.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Telegram E2E (Userbot)

Prove the requested behavior as a dedicated Telegram Test Server user. TDLib records edits, deletions, reactions, and typing that a second bot cannot observe. For visual claims, also inspect actual Telegram client screenshots; a reconstructed chat image or event log is not visual proof.

Each Convex credential contains one SUT bot and an independent authorization for the QA user. The runner owns that lease through readiness, proof, and cleanup. Pool creation, account authorization repair, and credential publication remain owner-only. Reversible test-chat setup with the leased QA user is ordinary proof work; preserve shared fixtures and other runs.

1. Prepare

Run from the OpenClaw checkout and ref under test, using its repository skill:

TELEGRAM_E2E_SKILL_DIR="${TELEGRAM_E2E_SKILL_DIR:-$PWD/.agents/skills/telegram-e2e-userbot}"
export TELEGRAM_E2E_SKILL_DIR

Verify node, uv, and a dependency-ready runtime for the exact ref before leasing a credential. The runner uses built dist/entry.js; --source-gateway uses the repository's development launcher when a dependency-ready source run is appropriate. It runs core and the Telegram plugin from TypeScript source; other plugins, including the model provider, use built output when it exists, so rebuild before claiming their changes. The live run must not implicitly install or build. Only the mock backend needs scripts/e2e/mock-openai-server.mjs.

Convex access can come from either:

  • An existing authenticated CLI with access to the published broker deployment. From qa/convex-credential-broker, discovery tries convex, then bunx --no-install convex, then npx --offline --no --ignore-scripts convex. Each launcher gets one 15-second env --deployment <broker> get lookup for the CI secret. The helper uses the repository's existing broker binding; no local CONVEX_DEPLOYMENT, project-selection file, or dashboard lookup is needed. The secret stays in process memory.
  • Both OPENCLAW_QA_CONVEX_SITE_URL and OPENCLAW_QA_CONVEX_SECRET_CI, supplied privately to the doctor or runner process by the existing credential owner.

Check available launchers, existing authentication, and broker-project access before declaring credentials missing. An authenticated launcher with no CI variable needs broker configuration, not another login. Ask the user for authentication only when no existing launcher can authenticate and the broker pair is unavailable. Do not install or log in on the user's behalf. A timeout or network failure is not evidence that credentials are missing. Bun's --no-install missing-binary error means that launcher is unavailable; discovery continues to the next installed launcher.

The standalone doctor needs no local HTTP listener, Gateway build, or model backend: it checks the leased TDLib user and calls Telegram’s official Test Bot API directly over HTTPS. The full scenario still needs local networking for its Gateway and Test Bot API adapter (including hold/reject controls), plus the mock provider when selected. A passing doctor does not qualify those local services.

For a full scenario on shared hosts, select two unused ports and pass them explicitly; the runner does not read port environment variables:

: "${TELEGRAM_GATEWAY_PORT:?set an unused Gateway port}"
: "${TELEGRAM_MOCK_PORT:?set an unused provider port}"

2. Select the proof

Read the verification map, then only the recipe for the behavior under test. Prefer a DM; use groups for group policy, mentions, commands, topics, or reactions. For a topic proof without a prepared forum, --create-forum gives the scenario a run-owned forum topic that cleanup deletes. A generic success turn does not prove formatting, media, timing, or lifecycle behavior.

Extend the harness when its current actions or recorder fields cannot expose the claim. Scenario command actions can inspect the leased TDLib state, private credential file, Test Bot API proxy, and Gateway state. Use the runtime reference for timed scenarios, forums, photo/reply actions, non-default backends, manual operation, or failed-run recovery.

3. Check readiness and run

The scenario checks its actual user, bot, transport, and selected chat on its own lease before starting the Gateway. DMs do not depend on unrelated groups. Group runs verify bot membership, privacy, and tester text permissions, preserving a suitable selected group or preparing a run-owned one when needed. Readiness from a released lease never qualifies a later run.

For a standalone diagnostic, use:

node "$TELEGRAM_E2E_SKILL_DIR/scripts/telegram-test-doctor.mjs"

Require ok: true, botApiTransport: "direct-https", and botApiProxy: false. The doctor defaults to DM readiness; --chat <target> checks a selected group through the same direct Test Bot API route. It releases its diagnostic lease and does not start product proof. Preserve setup failures and repair their cause before trying again; rotating unchanged credentials to hunt for a pass is not a repair.

Create a durable proof directory outside runner scratch:

TELEGRAM_E2E_PROOF_DIR="$(mktemp -d /tmp/telegram-e2e-proof.XXXXXX)"
node "$TELEGRAM_E2E_SKILL_DIR/scripts/run-mock-sut-user-e2e.mjs" \
  --gateway-port "$TELEGRAM_GATEWAY_PORT" --mock-port "$TELEGRAM_MOCK_PORT" \
  --dm --text 'Please answer with OPENCLAW_E2E_OK only.' \
  --record "$TELEGRAM_E2E_PROOF_DIR/events.ndjson" \
  --output "$TELEGRAM_E2E_PROOF_DIR/summary.json"

The runner owns the lease, proxy, fresh Gateway, provider, user actions, recorder, and teardown. Recording captures facts and rejects probe assertions such as --expect and --any-sut-reply. A send-confirmation timeout can follow an accepted send: preserve observed events and reconcile them, rather than blindly resending.

4. Judge and clean up

Start at the sent action in summary.json; judge only later events from the selected SUT. Use raw TDLib messageId within the same user's chat, not another account's Bot API receipt, to connect edits and deletions. Require a provider request when the path should reach the model; native commands may produce none.

Report the sanitized command, sent action, relevant timeline rows, provider request count, and the claim those facts prove. Inspect test-group.json or the summary's testForum when setup ran; fixture evidence is not message proof. Keep credentials, identities, and private paths out of shared logs, screenshots, and reports.

Completion requires the claimed Telegram evidence, no runner-owned processes or listeners, released lease, removed credential scratch, and readable proof files. Cancellation or lease loss stops new work and joins owned consumers. Unconfirmed cleanup is a failure: preserve the private recovery state and use the runtime recovery instructions. Keep explicit proof directories until the review or reproduction no longer needs them.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

1password

免费有简介AI 评分 100分

检查1Password命令行工具的安装和认证,将已保存的密码或API密钥传入命令及配置。支持桌面应用集成、服务账号和交互式登录,并先验证访问权限。

  • 安装1Password命令行工具
  • 将API密钥传入命令
  • 在CI中使用服务账号认证
openclaw/openclaw39.2万2026年10月18日 更新

acp-router

免费有简介AI 评分 80分

将提交给OpenClaw的自然语言请求转交给Claude Code等外部编程智能体,通过ACP或acpx启动、继续会话,并保留对话上下文。

  • 在讨论串中启动Claude Code
  • 继续外部智能体的现有工作
  • 通过acpx直接传递指令
openclaw/openclaw39.2万2026年10月18日 更新

add-model-provider

免费有简介AI 评分 100分

为OpenClaw添加模型服务商,并通过实际回复验证连接。凭据以环境变量或文件引用的形式配置,同时验证设置并报告测试结果。

  • 为OpenClaw添加模型服务商
  • 通过引用配置认证凭据
  • 确认模型能返回实际回复
openclaw/openclaw39.2万2026年10月18日 更新

agent-transcript

免费有简介AI 评分 90分

将AI代理的工作日志整理为可附在GitHub拉取请求或议题中的记录,筛选相关内容、移除敏感信息,并支持预览及经单独授权后的发布。

  • 为拉取请求整理代理工作记录
  • 从本地日志提取相关请求和结果
  • 预览已移除敏感信息的记录
openclaw/openclaw39.2万2026年10月18日 更新

apple-notes

免费有简介AI 评分 100分

通过代理管理macOS上的Apple Notes笔记,支持创建、查看、搜索、编辑和删除,在文件夹之间移动笔记,并将选定笔记导出为HTML或Markdown。

  • 创建带标题的笔记
  • 按文件夹筛选或模糊搜索笔记
  • 编辑笔记并整理文件夹
openclaw/openclaw39.2万2026年10月18日 更新

apple-reminders

免费有简介AI 评分 70分

通过Mac查看、添加和编辑Apple Reminders中带截止时间的待办事项,管理列表并完成或删除任务,整理在iPhone或iPad上查看的个人任务。

  • 查看今天和已逾期的任务
  • 添加带截止日期的个人待办事项
  • 整理iPhone或iPad上的任务
openclaw/openclaw39.2万2026年10月18日 更新

查看 openclaw 的全部技能

报告此技能的问题