关于 interactive-input
interactive-input 是用于在聊天回复中加入交互控件的 Agent 技能,适合测验、调查和结构化信息收集;不支持渲染的客户端可显示可读 JSON。
主要功能
- 01单选框、复选框、文本框和开关
- 02在 Markdown 中嵌入交互式 JSON 块
- 03不支持交互的客户端可显示 JSON
- 04提供交互块结构规范
适用场景
- 01创建可选择答案的测验
- 02收集调查或投票回复
- 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" }]
}
}
```
规则
- 每个交互式输入块都必须有唯一的
id字段 - 每个交互式输入块的
card.body中都必须至少包含一个元素 - 在
card.actions中加入Action.Submit,以便用户提交回答 - 对选项集使用
"style": "expanded",以可视化方式显示所有选项(测验推荐使用) - 选项较多时,下拉选择使用
"style": "compact" - 对多选题,在
Input.ChoiceSet上设置"isMultiSelect": true body中的第一个TextBlock用作提交响应中的问题标签- 一条消息中可以包含多个交互式输入块(例如,完整的测验)
- 始终使用
```interactive代码围栏包裹 JSON;交互式输入块绝不能使用```json - 保持 JSON 紧凑且有效;不要添加注释或尾随逗号
评论
支持 Markdown