mcpField
I
interactive-input

interactive-input

github.com/sugarforeverAgent 工作流139434 次安装1 周前更新
代码仓库

关于 interactive-input

interactive-input 是用于在聊天回复中加入交互控件的 Agent 技能,适合测验、调查和结构化信息收集;不支持渲染的客户端可显示可读 JSON。

主要功能

  1. 01单选框、复选框、文本框和开关
  2. 02在 Markdown 中嵌入交互式 JSON 块
  3. 03不支持交互的客户端可显示 JSON
  4. 04提供交互块结构规范

适用场景

  1. 01创建可选择答案的测验
  2. 02收集调查或投票回复
  3. 03通过表单收集结构化信息

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sugarforever/01coder-agent-skills --skill interactive-input

安装后在 Claude Code 中输入/interactive-input确认已加载。

附带文件references/schema.md

详细介绍

交互式输入块

在聊天回复中直接嵌入交互式 UI 组件(单选按钮、复选框、文本框、切换开关)。兼容的客户端会将其渲染为原生 UI 元素;其他客户端则会显示可读的 JSON 代码块作为后备方案。

适用场景

  • 测验和练习(单选题/多选题、填空题)
  • 调查和投票
  • 结构化数据收集(表单)
  • 任何需要用户从选项中进行选择或提供结构化输入的场景

工作原理

在常规 Markdown 回复中,使用 ```interactive 代码围栏包裹 JSON 块。同一条消息中可以自由混合普通文本和交互式输入块。

Schema 参考

完整的 Schema 规范请参阅 references/schema.md。

快速示例

呈现一道多项选择题时,不要将选项以文本列表的形式列出:

Here's your first question:

```interactive
{
  "id": "q1",
  "card": {
    "body": [
      { "type": "TextBlock", "text": "What is the capital of France?", "weight": "bold" },
      { "type": "Input.ChoiceSet", "id": "answer", "style": "expanded",
        "choices": [
          { "title": "A. London", "value": "london" },
          { "title": "B. Paris", "value": "paris" },
          { "title": "C. Berlin", "value": "berlin" },
          { "title": "D. Madrid", "value": "madrid" }
        ]
      }
    ],
    "actions": [{ "type": "Action.Submit", "title": "Submit" }]
  }
}
```

规则

  1. 每个交互式输入块都必须有唯一的 id 字段
  2. 每个交互式输入块的 card.body 中都必须至少包含一个元素
  3. 在 card.actions 中加入 Action.Submit,以便用户提交回答
  4. 对选项集使用 "style": "expanded",以可视化方式显示所有选项(测验推荐使用)
  5. 选项较多时,下拉选择使用 "style": "compact"
  6. 对多选题,在 Input.ChoiceSet 上设置 "isMultiSelect": true
  7. body 中的第一个 TextBlock 用作提交响应中的问题标签
  8. 一条消息中可以包含多个交互式输入块(例如,完整的测验)
  9. 始终使用 ```interactive 代码围栏包裹 JSON;交互式输入块绝不能使用 ```json
  10. 保持 JSON 紧凑且有效;不要添加注释或尾随逗号

评论

支持 Markdown