questions-form

📋 Telegram 结构化多问题交互表单

开源 Telegram 多问题表单交互协议,通过内联按钮结构化收集用户需求,优化 onboarding 与需求澄清流程。

收藏
13.4k
安装
3.5k
版本
v1.0.0
CLS 安全性认证2026-05-01
点击查看完整报告 >

使用说明

questions-form 是一个专为 Telegram 平台设计的结构化多问题表单交互协议 Skill。它通过标准化的内联按钮(Inline Buttons)机制,允许 AI Agent 在单次会话中同时抛出多个澄清性问题,用户可自主选择回答顺序,最终统一提交,极大提升了复杂需求收集的效率与用户体验。

核心用法遵循严格的六步协议:首先,Agent 内部定义问题对象(包含 ID、文本、选项列表)并初始化状态追踪器;随后发送表单引导语,接着为每个问题单独发送带内联按钮的消息(每行 2-3 个选项,"Other" 选项独立成行),并提供自由文本回退机制;待所有问题展示完毕后,发送包含"提交"与"取消"按钮的确认消息;在回调处理阶段,通过 form:<question_id>:<value> 格式的回调数据识别用户选择,记录状态变更,支持随时修改答案;最后,在提交时验证完整性,将收集到的结构化数据用于后续任务流程。

该 Skill 的显著优点在于其卓越的用户体验设计:相比传统的逐问等待模式,用户可自主控制回答节奏,减少了会话回合数;预定义选项与"Other"自由文本的混合模式兼顾了效率与灵活性;标准化的回调协议(form: 前缀)便于 Agent 快速识别与处理;清晰的按钮布局规范(每行 2-3 个按钮,明确的提交/取消标识)确保了移动端交互的友好性。

然而,该 Skill 也存在明显的局限性与缺点。首先是严格的平台锁定:协议深度依赖 Telegram Bot API 的内联键盘机制,无法迁移至其他即时通讯平台。其次是实现复杂度:开发者需要自行维护表单状态机(form_state)、处理自由文本输入的异步等待(awaiting_freetext)以及超时逻辑,增加了开发负担。此外,Telegram 对 callback_data 有 64 字节的严格长度限制,要求问题 ID 和选项值必须极度精简(建议使用 2-8 字符的 ID 和下划线连接的值)。最后,该模式明确不适用于单问题场景,对于简单的 yes/no 询问显得过于笨重。

该 Skill 适合以下群体:Telegram Bot 开发者构建复杂的用户 onboarding 流程;产品经理设计多维度需求收集系统;客服自动化场景中需要结构化收集用户偏好或问题详情的场景;以及任何需要通过枚举选项减少自由文本歧义、提升数据标准化程度的交互设计。

潜在风险主要包括:状态管理风险,若 Agent 实例重启或会话中断,未提交的表单状态可能丢失(尽管文档提到在 references/form-patterns.md 中处理中断恢复,但核心实现仍需开发者自行保证状态持久化);平台依赖风险,Telegram API 的变更可能导致按钮渲染或回调机制失效;用户体验风险,若问题数量过多(超过 3-4 个),一次性发送多条消息可能造成信息过载;以及回调数据截断风险,若开发者未严格遵守短 ID 规范,可能导致回调数据被截断而引发逻辑错误。

安全解读

核心用法

本 Skill 为纯 Markdown 文档型技能,专用于指导 Agent 在 Telegram 环境中创建结构化的多问题表单。当需要向用户收集 2 个及以上维度的信息时,该 Skill 提供完整的协议规范:定义问题对象(含 ID、问题文本、选项列表)、初始化状态跟踪、分条发送带内联按钮的问题消息、处理回调数据(遵循 form:<question_id>:<value> 格式)、支持"Other"自由文本输入作为兜底方案,最后通过 Submit 按钮统一提交。

关键实施要点:每个问题单独发送消息、选项按钮每行 2-3 个、"Other"按钮始终独立成行、回调数据需使用 form: 前缀、用户可随时修改答案、支持取消和未完成检测。

显著优点

  • 零执行风险:纯文档型 Skill,无任何可执行代码,从根本上杜绝代码注入、远程执行等攻击面
  • 协议完备:涵盖表单全生命周期——创建、分发、响应、验证、提交、取消、修改
  • 交互友好:内联按钮设计符合 Telegram 用户习惯,自由文本兜底保证灵活性
  • 状态清晰:明确定义 form_stateawaiting_freetextform_submitted 等状态变量,便于实现
  • 扩展性强:文档末尾预留依赖问题、多选、超时处理等高级模式参考链接

潜在缺点与局限性

  • 平台绑定:协议专为 Telegram 设计,其他渠道(如 Web、Discord)需适配改造
  • 回调数据长度限制:Telegram 内联按钮 callback_data 有 64 字节限制,问题和选项 ID 需精简
  • 无持久化指引:文档未涉及表单中断后的恢复机制具体实现,仅提供参考链接
  • 单选假设:核心协议按单选设计,多选需参考外部模式文档
  • 状态管理负担:Agent 需自行维护表单状态,复杂场景下实现成本较高

适合人群

  • Telegram Bot 开发者:需要实现复杂信息收集对话流程
  • AI Agent 构建者:希望通过结构化表单提升用户交互效率
  • 需求分析师:需要标准化多维度需求采集流程的团队
  • 低代码/无代码平台:寻求可复用的表单交互协议模板

常规风险

| 风险类型 | 评估 | 说明 |
|---------|------|------|
| 代码执行风险 | 无 | 纯文档,零可执行代码 |
| 数据泄露风险 | 无 | 不处理真实用户数据,仅输出协议规范 |
| 供应链攻击 | 无 | 零第三方依赖 |
| 隐私合规 | 完全合规 | GDPR/CCPA 全项通过 |
| 协议误用风险 | 低 | 开发者需正确实现状态管理,否则可能导致用户体验问题 |

认证结论

CLS-Certify 六维深度检测全部满分(100/100),获颁 S+ 最高安全等级认证。来源为 openclaw 组织的 GitHub 仓库(T2 可信来源),维护者为 edonadei。无任何安全发现项,建议放心使用。

questions-form 内容

references文件夹
手动下载zip · 5.1 kB
form-patterns.mdtext/markdown
请选择文件