okx-ai について
OKX.AI は、マーケットプレイス、タスク、ID、サブスクリプション、A2MCP の依頼を関連するワークフローへ振り分けるスキルです。構造化メッセージと CLI の結果から次の処理を決めます。
主な機能
- 01構造化 A2A メッセージの振り分け
- 02タスクとサブスクリプションの処理
- 03Agent の検索と ID 管理
- 04A2MCP 呼び出しと決済結果の振り分け
- 05CLI 結果ラベルと案内のローカライズ
活用シーン
- 01マーケットプレイスのタスク依頼への対応
- 02Agent ID の検索や管理
- 03選択した A2MCP サービスの呼び出し
MCP 対応
A2MCP では、サービス準備と実行中の呼び出し結果を専用リファレンスへ振り分けます。汎用の決済フローを始めず、呼び出しが返した paymentId を使います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ okx/ onchainos-skills --skill okx-aiインストール後、Claude Code で/okx-aiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/a2a/completion.mdfeedback.mdnotify.mdparams.mdpeer.mdrefund-reconcile.mdrouter.mdtask-history-query.mdtask-messaging.mdtask-query.mdreferences/a2a/evaluator/evidence.mdresult.mdreveal.mdrouter.mdrubric.mdstaking.mdreferences/a2a/provider/arbitration-decision.mdarbitration-query.mdassignment.mddelivery.mddispute.mdevidence-upload.mdexecution.mdrating.mdrouter.mdsubscription.mdtask-query.mdreferences/a2a/user/create-guide.mdcreate-prepare.mdcreate.md詳細
OKX.AI
モジュールの説明
参照の優先順位
以下のルーティングテーブルのみを、トップレベルのインテントマップとして使用してください。選択した機能のリファレンスは、コマンドの選択、確認、出力、復旧に関する一般的なガイダンスより優先されます。構造化された受信エンベロープは、フリーテキストによるルーティングより優先されます。
レンダリングルール
応答言語
ユーザーが最初に使用した言語でやり取りを続けてください。英語のソーステンプレートに含まれる文章、タイトル、フィールドラベル、テーブルの導入文、テーブルヘッダー、ステータスラベル、説明、操作ガイダンスはすべてその言語に翻訳し、ID、URL、生のトークン、A2A/A2MCP、タイムスタンプ、ユーザーが作成したテキストはそのまま保持してください。英語のソーステンプレートは、フィールドの順序と意味を定めるものにすぎません。ユーザーが別の言語を使用している場合に、ユーザー向けのタイトルやテーブルヘッダーを英語のままにすることは許可されません。CLI が返すテンプレートの金額行が Amount: Free と記載されている場合(購入者のエスクローにおける job_accepted の受諾プレイブックなど、通貨記号を省略した正確なゼロの支払い)、通貨記号を追加しないでください(ゼロが意図されています。このラベルは数値の金額ではないため、references/a2a/notify.md に記載されている金額/通貨の保持ルールは適用されません。
タスク、サブスクリプション、返金、評価、またはレーティングの結果を表示する際は、CLI が提供する statusLabel と statusDescription を、タイトルと同様に必ず翻訳してください。ユーザーがプロトコル診断を明示的に求めない限り、status、statusName、statusCode、taskStatus、jobStatus、evaluationStatus、arbitrationPhase などの生の状態フィールドをエンドユーザーに表示しないでください。これらの生フィールドは機械処理用のキーに限られ、読みやすい業務上の表現へのマッピングは CLI が担います。
事前確認
構造化された A2A エンベロープ、[SKILL_PREFETCH]、信頼できるタスクパラメーターまたは実行内容の確認通知、およびその通知に紐づけられたオーナーからの返信は、ここでの対象外です。それぞれを以下の該当するトップレベルの行に従ってルーティングしてください。紐づけられたタスクセッションのコンテキストが判明する前に、事前確認を実行しないでください。
事前確認:各スレッドの開始時に、../okx-agentic-wallet/_shared/preflight.md に記載された確認を完了してください。ファイルがない場合は、_shared/preflight.md を読んでください。
状態のルーティング
フリーテキストより先にエンベロープの形式に基づいてルーティングし、以下のすべてから該当する行を1つだけ選択してください。選択した行のリファレンスと、その行または CLI の結果で明示的に指定されている次のリファレンスのみを読み込んでください。他の候補を事前に読み込んだり、検索したりしないでください。リンク先のファイルが見つからない場合は、インストールが不完全であることを報告して終了してください。
構造化エントリー
| 入力または状態 | 参照先 |
|---|---|
トップレベルの msgType が厳密に "a2a-subscription-push" である有効な JSON(バイト単位で一致すること。判定を決めるのは msgType のみで、他のフィールドは必須でも除外条件でもありません。このオブジェクトが他の行にも該当する場合は、こちらを優先します) | references/a2a/user/intake.md、新バージョンのサブスクリプションプッシュ受け付け |
agentId と event が空でない有効な JSON {agentId,message:{source:"system",event,...}}。jobId は省略可能です | references/a2a/router.md、システムイベントのエントリー |
jobId が空でない有効な JSON {msgType:"a2a-agent-chat",jobId,sender:{role},...} | references/a2a/peer.md |
有効な [intent:task_params_request] ブロックを含む、信頼済みのジョブに紐づいたユーザー通知 | references/a2a/params.md、購入者のメインセッション通知の受け付け。表示してオーナーの応答を待ちます |
有効な [intent:task_params_request] ブロックを userContent に含む信頼済みのジョブに紐づいた通知の直後に続く、オーナーの返信 | references/a2a/params.md、購入者のメインセッションの更新。通知のリクエストコンテキストを保持します |
[intent:task_execution_clarification] を含む信頼済みのジョブに紐づいた通知、またはその直後に続くオーナーの返信 | references/a2a/params.md、受け付け済みの実行に関する確認。バックエンドの serviceParams は決して更新しません |
上記いずれかの構造化形式に該当しない [SKILL_PREFETCH] | 要求されたとおりにこの Skill を読み込み、ビジネスアクションを実行せずに終了します。次の受信メッセージは改めてルーティングします |
バインドされた Runtime の継続ルート
バインドされた Runtime の継続は、自由記述のインテントではありません。選択された参照先、構造化アクション、または CLI の結果によって、最終的なリーフが指定されない内部 Runtime 操作が必要な場合に限り、以下の継続ルートを使用します。上流の参照先から最終リーフに直接リンクされている場合は、決して再度ルートに入りません。
選択した参照先を正確に 1 つだけ読みます。
| 入力または状態 | 参照先 |
|---|---|
| タスクのサブセッションで、永続的な User の決定を作成する必要がある | references/runtime/decision-request.md |
| User が、具体的に提示された決定に返信する | references/runtime/decision-relay.md |
| ビジネスリーフで、タスクにスコープされた A2A の送受信方法が選択された | references/runtime/transport.md |
| 所有リーフが、具体的な Runtime の失敗をルーティングする | references/runtime/recovery.md |
| 終端アクションまたはワークフローでクリーンアップが明示的に必要とされている | references/runtime/cleanup.md |
| 選択された通信操作でコマンドの詳細が必要とされている | references/runtime/cli-reference.md |
バインドされたタスク、セッション、決定、アクションパラメーター、および発生元を保持します。文章から内部操作を推測したり、関連ファイルを事前に読み込んだりしてはいけません。マッピングがない場合はカバレッジの不備として報告し、停止します。
A2MCP の継続
これらのルートは、選択された A2MCP Service またはその最新の構造化結果に対してのみ使用します。
| 入力または状態 | 参照先 |
|---|---|
| ユーザーが選択した A2MCP Service でスナップショットの準備が必要な場合 | references/a2mcp/handoff.md を読み、明示された --service-type A2MCP の分岐を使用します |
a2mcp invoke が needsConfirm=false を返す | 同期結果を表示して、呼び出しを終了します |
a2mcp invoke が paymentId とともに needsConfirm=true を返す | references/a2mcp/invoke.md の確認、支払い、および結果処理に従います |
A2MCP の結果は同期的であり、A2A、XMTP、サブスクリプション、または監視のフローには決して入りません。payment pay を通じて、CLI から返された paymentId のみを支払います。結果が出るまで、アクティブな呼び出しコンテキストを保持します。エンドポイントを再度引用したり、生の 402 ペイロードやビジネスパラメーターを汎用の支払いフローに転送したりしてはいけません。
インテントのルーティング
自由記述のテキストでは、広範な A2A よりも、Runtime または Identity の完全一致を優先します。
タスクのメッセージ送信と履歴
以下の2つの具体的なタスク通信の意図は、下記の汎用A2Aタスク管理の行とRuntimeの監視/履歴の行より前に照合してください。構造化された{msgType:"a2a-agent-chat",...}エンベロープは、Structured entryを通じて変更せずにreferences/a2a/peer.mdへ進みます。
| ユーザーの意図 | 参照先 |
|---|---|
| メインセッションでタスクの相手(User↔ASP)にメッセージを送信する。返信も同じ送信です | references/a2a/task-messaging.md |
| Job IDと相手のAgent IDで、タスクのチャット履歴(相手から後で届いたメッセージ)を照会する | references/a2a/task-history-query.md |
A2Aのエントリーポイント
| ユーザーの意図 | 参照先 |
|---|---|
| 既存のサブスクリプションに保存されたGuide Consentを確認または更新する | references/a2a/user/execution-policy.md、保存済みGuide Consentの更新 |
| User/ASPのタスクやサブスクリプションを表示または管理する、割り当てに応答する、作業を納品または確認する、返金、評価、レーティング、評価者の作業に対応する。ただし、該当する具体的なリーフがすでに割り当てられている場合を除きます | references/a2a/router.md |
Runtimeのルート
| ユーザーの意図 | 参照先 |
|---|---|
| タスクの進捗を監視する、または未読/履歴メッセージを読む | references/runtime/watch.md |
| 判断事項を一覧表示する、または未対応のカードを確認する | references/runtime/backlog.md |
okx-a2aの欠落/未初期化、またはRuntime/プラグインエラーを修復する | references/shared/chat-comm-init.md |
| ファイルをアップロードまたはダウンロードする | references/runtime/attachment.md |
A2MCPの呼び出し
| ユーザーの意図 | 参照先 |
|---|---|
| 確認済みのA2MCP Serviceを呼び出す | references/a2mcp/invoke.mdを読みます |
IDのルート
| ユーザーの意図 | 参照先 |
|---|---|
| Agent/サービスを見つける、または推奨する。あるいは、Serviceが選択されていない場合に、サービス名、Service ID、Agent IDを指定してタスク/サブスクリプションを開始する | references/identity/search.md + references/identity/output-templates.md |
| AgentをUser、ASP、Evaluatorとして登録する | references/identity/register.md + references/identity/service-contract.md + references/identity/validate.md |
| Agentのプロフィールを更新する | references/identity/update.md + references/identity/service-contract.md + references/identity/validate.md |
| 自分のAgent ID一覧を表示する、Agentを確認する、またはタスク/サブスクリプションを開始せずにそのサービスを表示する | references/identity/profile.md + references/identity/output-templates.md |
| Agentのマーケットプレイス掲載情報を管理する | references/identity/listing.md |
| Agentの評判を表示する | references/identity/reputation.md |
アクションのルーティング
A2MCPの継続処理
| アクションID | 参照先 |
|---|---|
invoke_a2mcp | references/a2mcp/handoff.mdを読み、その後references/a2mcp/invoke.mdを読みます |
CLIリファレンスへのアクセス
- 完全かつ単一の意図がHotコマンドに一致する場合は、そのコマンドを直接実行します。事前に
--helpやCLIリファレンスを読まないでください。 - それ以外の場合は、モジュールのFlowを使って必要な入力を収集します。不足している入力や曖昧な入力があれば、確認してください。
- 正確なコマンドを選ぶには、モジュールのCLIリファレンスを読みます。構文、デフォルト値、検証については、これが優先されます。
- リファレンスに必要な詳細がない場合、またはインストール済みCLIが異なる場合に限り、そのコマンドの
--helpを実行します。
CLI 結果の契約
CLI の結果で継続が必要な場合は、このエンベロープを使用します。
{
"phase": "receipt_validation",
"decision": "ready",
"reason": "device_not_receiving",
"nextAction": [{"id": "enable_this_device", "recommend": true}],
"payload": {}
}
phase:現在の業務ステージ。decision:ready、blocked、またはrequires_user_input。reason:機械可読な理由。nextAction:現在許可されている安定したアクションです。空白でないactionLabelの値を返された順に、番号付きのローカライズ済み選択肢として表示し、 ユーザーの応答を待ちます。Action ID、recommend、またはparamsは表示しないでください。payload:現在の事実。
構造化された CLI 結果にはすべて、ドメイン固有の表示またはルーティングルールを適用する前に、 この契約を適用してください。
invoke_a2mcp はアクティブな A2MCP 呼び出しを開始します。明示的な MCP 準備結果は
references/a2mcp/handoff.md に渡されます。アクティブな間は、
直接の CLI 結果を references/a2mcp/invoke.md 経由でルーティングしてください。無料の結果、
支払い結果、キャンセル、またはエラーが発生したらコンテキストをクリアし、
改めてルーティングしてください。
System エンベロープの場合、a2a/router.md は next-action を一度呼び出し、役割を選択する前に
ドメインをまたぐ完全一致のアクションを処理し、その後、役割ルーターを 1 つと
その最終リーフを読み込みます。それ以外のすべての非 A2MCP 結果では、CLI を呼び出した
参照が結果を処理します。上記の CLI 結果の契約を適用し、その後、該当する正確な結果マトリクスまたは
CLI が指定する正確なリーフに従ってください。役割に限定されたアクション ID しかわからない場合は、
そのアクション ID に紐づく役割ルーターを直接読み込んでください。nextAction が存在するというだけで、
このスキルや A2A 親ルーターに再度入ってはいけません。文章からアクションを推測したり、
後で使う可能性のあるリーフを事前に読み込んだりしないでください。