interactive-input について
interactive-inputは、チャットの返信に操作要素を加えるエージェントスキルです。クイズやアンケート、構造化データの収集に使え、UI非対応のクライアントではJSONを表示します。
主な機能
- 01ラジオボタン、チェックボックス、テキスト欄、トグル
- 02Markdown内のインタラクティブな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 の回答内で、JSON ブロックを ```interactive のコードフェンスで囲みます。同じメッセージ内で、通常のテキストとインタラクティブブロックを自由に組み合わせられます。
スキーマのリファレンス
スキーマの仕様全体については、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に、少なくとも 1 つの要素を指定する必要があります - ユーザーが回答を送信できるよう、
card.actionsにAction.Submitを含めてください - 選択肢をすべて視覚的に表示するには、選択肢セットに
"style": "expanded"を使用してください(クイズにおすすめです) - 選択肢が多い場合、ドロップダウンでの選択には
"style": "compact"を使用してください - 複数選択の質問では、
Input.ChoiceSetに"isMultiSelect": trueを設定してください - 本文の最初の
TextBlockは、送信された回答で質問ラベルとして使用されます - 1 つのメッセージに複数のインタラクティブブロックを含めることができます(例:クイズ全体)
- JSON は必ず
```interactiveのコードフェンスで囲んでください。インタラクティブブロックに```jsonを使用してはいけません - JSON は簡潔で有効な形式にしてください。コメントや末尾のカンマは使用できません
コメント
Markdown 対応