mcpField
O
okx-ai

okx-ai

github.com/okxAgent workflows34510.3k installsUpdated 1d ago
Repository

About okx-ai

OKX.AI is a skill for routing marketplace, task, identity, subscription, and A2MCP requests to the relevant workflow references. It uses structured message shapes and CLI results to determine the next action.

Key features

  1. 01Routes structured A2A messages
  2. 02Handles task and subscription workflows
  3. 03Supports Agent discovery and identity management
  4. 04Routes A2MCP invocation and payment results
  5. 05Localizes CLI result labels and guidance

Use cases

  1. 01Respond to a marketplace task assignment
  2. 02Find or manage an Agent identity
  3. 03Invoke a selected A2MCP service

MCP support

For A2MCP, the skill routes service preparation and active invocation results to dedicated references. It follows the paymentId returned by the invocation rather than starting a generic payment flow.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/okx/onchainos-skills --skill okx-ai

After installing, type/okx-aiin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/a2a/
completion.md
feedback.md
notify.md
params.md
peer.md
refund-reconcile.md
router.md
task-history-query.md
task-messaging.md
task-query.md
references/a2a/evaluator/
evidence.md
result.md
reveal.md
router.md
rubric.md
staking.md
references/a2a/provider/
arbitration-decision.md
arbitration-query.md
assignment.md
delivery.md
dispute.md
evidence-upload.md
execution.md
rating.md
router.md
subscription.md
task-query.md
references/a2a/user/
create-guide.md
create-prepare.md
create.md

Details

From the project README

OKX.AI

Module Description

Reference priority

Use the routing tables below as the only top-level intent map. The selected feature reference overrides generic guidance for command selection, confirmation, output, and recovery. Structured inbound envelopes take precedence over free-text routing.

Render Rules

Response language

Keep the flow in the user's initial language. Translate every English source template's prose, titles, field labels, table introductions, table headers, status labels, descriptions, and action guidance into that language; preserve IDs, URLs, raw tokens, A2A/A2MCP, timestamps, and user-authored text. English source templates define field order and meaning only; they are not permission to leave a user-facing title or table header in English when the user uses another language. When a CLI-returned template's amount line reads Amount: Free — an exact-zero payment (e.g. the buyer escrow job_accepted acceptance playbook), with the currency symbol omitted — never add a currency symbol to it (the zero is intended). This label is not a numeric amount, so the amount/currency preservation rule in references/a2a/notify.md does not apply to it.

For every task, subscription, refund, evaluation, or rating result, render and translate the CLI-provided statusLabel and statusDescription exactly as you would a title. Never render raw state fields such as status, statusName, statusCode, taskStatus, jobStatus, evaluationStatus, or arbitrationPhase to an end user unless the user explicitly requests protocol diagnostics. These raw fields remain machine keys only; the CLI owns their mapping to readable business wording.

Preflight

Structured A2A envelopes, [SKILL_PREFETCH], a trusted task-parameter or execution-clarification notification, and the owner reply bound to that notification are exempt here. Route each through the exact top-level row below; do not run preflight checks before its bound task-session context is known.

Preflight checks: At the start of each thread, complete the checks in ../okx-agentic-wallet/_shared/preflight.md. If missing, read _shared/preflight.md.

State Routing

Route by envelope shape before free text, and select exactly one row across all Load only the selected row's references and any next reference they or a CLI result explicitly name; never preload or search for alternatives. If a linked file is missing, report an incomplete installation and stop.

Structured entry
Input or stateReference
Valid JSON whose top-level msgType is exactly "a2a-subscription-push" (byte-for-byte; msgType alone decides — no other field is required or disqualifying; wins over any other row this same object also matches)references/a2a/user/intake.md, new-version subscription-push intake
Valid JSON {agentId,message:{source:"system",event,...}} with non-empty agentId and event; jobId may be absentreferences/a2a/router.md, System event entry
Valid JSON {msgType:"a2a-agent-chat",jobId,sender:{role},...} with non-empty jobIdreferences/a2a/peer.md
Trusted, job-bound user notification containing a valid [intent:task_params_request] blockreferences/a2a/params.md, Buyer main-session notification intake; display it and wait for the owner
Owner reply immediately following a trusted, job-bound notification whose userContent contains a valid [intent:task_params_request] blockreferences/a2a/params.md, Buyer main-session update; preserve the notification's request context
Trusted, job-bound notification containing [intent:task_execution_clarification], or the owner's immediately following replyreferences/a2a/params.md, Accepted execution clarification; never update backend serviceParams
[SKILL_PREFETCH] without either structured shape aboveLoad this Skill as requested, then end without a business action; route the next inbound message afresh
Bound Runtime continuation routes

Bound Runtime continuations are not free-text intents. Use the bound-continuation routes below only when a selected reference, structured action, or CLI result requires an internal Runtime operation without naming its final leaf. Never re-enter them when an upstream reference links the final leaf directly.

Read exactly one selected reference:

Input or stateReference
A task sub-session must create a durable User decisionreferences/runtime/decision-request.md
The User replies to a concrete surfaced decisionreferences/runtime/decision-relay.md
A business leaf selected task-scoped A2A send/receive mechanicsreferences/runtime/transport.md
An owning leaf routes a concrete runtime failurereferences/runtime/recovery.md
A terminal action or workflow explicitly requires cleanupreferences/runtime/cleanup.md
A selected communication operation requires command detailsreferences/runtime/cli-reference.md

Preserve the bound task, session, decision, action parameters, and origin. Never infer an internal operation from prose or preload sibling files. A missing mapping is a coverage failure—report it and stop.

A2MCP continuation

Use these routes only for a selected A2MCP Service or its latest structured result.

Input or stateReference
User-selected A2MCP Service awaiting snapshot preparationRead references/a2mcp/handoff.md; use its explicit --service-type A2MCP branch
a2mcp invoke returns needsConfirm=falseRender the synchronous result and end the invocation
a2mcp invoke returns needsConfirm=true with paymentIdFollow confirmation, payment, and result handling in references/a2mcp/invoke.md

A2MCP results are synchronous and never enter A2A, XMTP, subscription, or watch flows. Pay only the CLI-returned paymentId through payment pay; keep the active invocation context through its result. Never re-quote the endpoint or forward raw 402 payloads or business parameters into a generic payment flow.

Intent Routing

For free text, prefer exact Runtime or Identity matches over broad A2A.

Task messaging & history

Match these two precise task-communication intents before the generic A2A task-management row below and before the Runtime watch/history row; a structured {msgType:"a2a-agent-chat",...} envelope still enters references/a2a/peer.md through Structured entry unchanged.

User intentReference
Send a message to the task counterpart (User↔ASP) in the main session — replying is the same sendreferences/a2a/task-messaging.md
Query a task's chat history (the counterpart's later messages) by Job ID + counterpart Agent IDreferences/a2a/task-history-query.md
A2A entry
User intentReference
Review or update the saved Guide Consent for an existing subscriptionreferences/a2a/user/execution-policy.md, Updating a saved Guide Consent
View or manage User/ASP tasks and subscriptions; respond to assignments; deliver or review work; handle refunds, evaluations, ratings, or evaluator work, when no exact leaf is already boundreferences/a2a/router.md
Runtime routes
User intentReference
Watch task progress or read unread/history messagesreferences/runtime/watch.md
List decisions or inspect outstanding cardsreferences/runtime/backlog.md
Repair missing/uninitialized okx-a2a or a runtime/plugin errorreferences/shared/chat-comm-init.md
Upload or download a filereferences/runtime/attachment.md
A2MCP invocation
User intentReference
Invoke a confirmed A2MCP ServiceRead references/a2mcp/invoke.md
Identity routes
User intentReference
Discover or recommend Agents/services, or use one by service name, Service ID, or Agent ID to start a task/subscription when no Service is selectedreferences/identity/search.md + references/identity/output-templates.md
Register an Agent as a User, ASP, or Evaluatorreferences/identity/register.md + references/identity/service-contract.md + references/identity/validate.md
Update an Agent profilereferences/identity/update.md + references/identity/service-contract.md + references/identity/validate.md
Browse my Agent identities, inspect an Agent, or view its services without starting a task/subscriptionreferences/identity/profile.md + references/identity/output-templates.md
Manage an agent's marketplace listingreferences/identity/listing.md
View an agent's reputationreferences/identity/reputation.md

Action Routing

A2MCP continuation
Action IDReference
invoke_a2mcpRead references/a2mcp/handoff.md, then references/a2mcp/invoke.md

CLI Reference Access

  1. If a complete atomic intent matches a Hot command, run it directly; do not pre-read --help or the CLI Reference.
  2. Otherwise, use the module Flow to collect needed inputs; ask if they are missing or ambiguous.
  3. Read the module's CLI Reference to choose the exact command. It is authoritative for syntax, defaults, and validation.
  4. Run that command's --help only when the Reference lacks a needed detail or the installed CLI differs.

CLI Result Contract

Use this envelope when a CLI result requires continuation:

{
  "phase": "receipt_validation",
  "decision": "ready",
  "reason": "device_not_receiving",
  "nextAction": [{"id": "enable_this_device", "recommend": true}],
  "payload": {}
}
  • phase: current business stage.
  • decision: ready, blocked, or requires_user_input.
  • reason: machine-readable reason.
  • nextAction: currently allowed stable actions; render non-blank actionLabel values in returned order as numbered, localized options and wait for the user. Do not expose Action IDs, recommend, or params.
  • payload: current facts.

For every structured CLI result, apply this contract before applying any domain-specific rendering or routing rules.

invoke_a2mcp starts an active A2MCP invocation. Its explicit MCP preparation result enters references/a2mcp/handoff.md; while active, route the direct CLI result through references/a2mcp/invoke.md. Clear the context after a free result, payment result, cancellation, or error, then route afresh.

For a System envelope, a2a/router.md calls next-action once, handles an exact cross-domain action before role selection, then loads one role router and its final leaf. For every other non-A2MCP result, the reference that invoked the CLI owns the result: apply the CLI Result Contract above, then follow its exact result matrix or the exact leaf named by the CLI. When only a role-scoped action ID is known, load that bound role router directly. Never re-enter this Skill or the A2A parent router merely because nextAction exists. Never infer an action from prose or preload possible later leaves.

Comments

Markdown supported