AI Task Hub
Formerly skill-hub-gateway.
Public package boundary:
- - Only orchestrates
portal.skill.execute, portal.skill.poll, portal.skill.presentation, portal.account.connect, portal.account.balance, and portal.account.ledger. - Does not exchange
api_key or userToken inside this package. - Does not handle recharge or payment flows inside this package.
- Optional env hints
PUBLIC_BRIDGE_ENTRY_HOST and AI_TASK_HUB_ENTRY_HOST are only host-side entry_host fallbacks, not API secrets, auth tokens, or billing credentials. - Prefers attachment URLs, and when host runtime explicitly exposes attachment bytes for the current request, forwards only that explicit attachment material through the public bridge before execution.
- When the published skill is invoked directly by a third-party agent runtime, it uses
POST /agent/public-bridge/invoke. - published skill persistence = disabled.
- continuity owner =
host_or_private_wrapper.
Data Handling Boundary
- - Only forwards attachment bytes that the host runtime explicitly provides for the current request.
- Off-host media transfer is limited to the gateway-controlled host
https://gateway-api.binaryworks.app. - Public upload handoff is limited to
POST /agent/public-bridge/upload-file for the same request flow. - Does not read local paths, scan the local filesystem, or guess files outside explicit host-provided attachment material.
- Does not persist uploaded bytes or credentials to local disk, and does not write skill/config state.
- Host/runtime should obtain user consent before forwarding media and should avoid sending sensitive or regulated data unless the user explicitly approved that transfer.
Read This First
- - Do not mix connector lifecycle commands with published skill actions.
- INLINECODE16 /
status / invoke / logout are connector lifecycle commands for host/runtime installation state. - INLINECODE20 /
portal.skill.execute / portal.skill.poll / portal.skill.presentation / portal.account.balance / portal.account.ledger are the published skill actions. - Do not treat
portal.skill.execute -> portal.skill.poll -> portal.skill.presentation as the default path for every capability. Default behavior must follow the capability delivery mode. - Public capability inventory below lists only enabled capabilities intentionally advertised to agents. Disabled or internal-only routes may still exist in backend code but are not part of the advertised package surface.
Two Operational Surfaces
- - Connector lifecycle commands:
-
connect: start or resume browser authorization for one connector installation
-
status: read whether the connector installation already has continuity
-
invoke: call one published skill action through the connector runtime
-
logout: clear continuity for that connector installation
- - Published skill actions:
-
portal.account.connect: explicit account bind or connection-status check
-
portal.skill.execute: submit a capability run
-
portal.skill.poll: poll a submitted run
-
portal.skill.presentation: fetch rendered outputs for a run
-
portal.account.balance: read current points balance
-
portal.account.ledger: read points ledger rows
Public Capability Inventory (Enabled And Available)
-
human_detect
-
image_tagging
-
face-detect
-
body-keypoints-2d
-
face-emotion-recognition
- - Background removal / cutout / mask:
-
person-instance-segmentation
-
person-semantic-segmentation
-
concert-cutout
-
full-body-matting
-
head-matting
-
product-cutout
-
asr
-
tts_report
-
markdown_convert
-
embeddings
-
reranker
-
image-generation
- INLINECODE55
Delivery Mode Guidance
- Default host behavior: prefer a result-first entrypoint and return the final result in the same interaction.
- Typical capabilities:
tts_report, image analysis, retrieval.
- Default product path: use result-first host flow;
portal.skill.execute is usually enough.
- Default host behavior: prefer a result-first entrypoint with short internal waiting, then fall back to poll only if the short wait does not complete.
- Typical capabilities:
image-generation.
- Default product path: start with result-first host flow; only use
portal.skill.poll when the short wait does not complete.
- Default host behavior: keep
presentation or rendered files as part of the formal result surface.
- Typical capabilities: segmentation, matting, cutout.
- Default product path:
portal.skill.execute ->
portal.skill.poll, then
portal.skill.presentation when files or rendered outputs are needed.
- Default host behavior: treat the capability as an explicit async job and do not promise single-turn completion.
- Typical capabilities:
asr,
markdown_convert,
video-face-generation.
- Default product path:
portal.skill.execute with later
portal.skill.poll; use
portal.skill.presentation only when that capability later exposes a rendered result surface.
Minimal Architecture Rules
- - Default path stays connector-first. Do not invent a host-specific continuity or identity model beside connector/runtime.
- Default path stays result-first. Do not teach every capability as
execute -> poll -> presentation. - INLINECODE75 and
portal.skill.presentation are follow-up surfaces, not universal default steps. - Published skill keeps compatibility and asset-delivery surfaces, but it does not own long-lived continuity.
- Do not ask end users for manual URLs, JSON field names, local paths, or internal bridge details unless they explicitly ask for debugging.
Non-Recommended Patterns
- - Do not bypass connector/runtime as the default host product path when hosted connector or local bootstrap is available.
- Do not describe raw published skill actions as if they were the primary UX for every capability.
- Do not add host-specific auth, continuity, or capability-routing rules outside the existing connector/runtime and gateway contracts.
- Do not expose debugging payload structure, bridge layering, or upload choreography to end users unless troubleshooting is explicitly requested.
Official Host Integration
- - Current built-in host integrations for
mobileclaw, openclaw, codex, and claude require the AI Task Hub connector/runtime to own continuity from the first call. - Future public hosts should follow the same connector/runtime continuity contract instead of inventing a host-specific identity model.
- For remote URL / OAuth / connection-record style hosts, use the hosted connector runtime:
POST /agent/hosted-connector/install, POST /agent/hosted-connector/connect, POST /agent/hosted-connector/invoke, POST /agent/hosted-connector/status, POST /agent/hosted-connector/logout. - For local command-only hosts, use the shared connector/runtime bootstrap outside this published package.
- INLINECODE86 is the underlying transport used by that connector/runtime, and also the compatibility fallback when a host bypasses the connector during debugging or manual integration.
- Trusted host runtime that can safely hold bridge assertion secret may still use
POST /agent/skill/bridge/invoke. - published skill persistence remains disabled even when connector/runtime is present; long-lived continuity belongs in host or connector state, not in this package.
User-Facing Response Policy
- - When users upload images, audio, documents, or video and ask for a capability, prefer executing immediately only when the host runtime has already supplied an explicit attachment object or explicit attachment bytes for that request.
- Do not explain
image_url, attachment.url, storage URLs, bridge layers, host uploads, input normalization, or controlled media domain details to end users unless they explicitly ask for technical debugging. - Do not ask end users to provide manual URLs, JSON field names, or upload-chain instructions; those are internal host-to-skill mechanics.
- If the runtime supports attachment handling, limit processing to the explicit attachment object supplied for the current request and keep the upload/URL handoff scoped to execute/poll/presentation for that same request.
- Only when execution actually fails and the user must intervene should you mention missing processable files, incomplete authorization, or retry guidance, using user-oriented language without exposing internal layering.
Chinese documentation: INLINECODE90
When to Use This Skill
Use this skill when the user asks to:
- - detect faces, human presence, body keypoints, image tags, or facial emotion from images
- generate person/product segmentation, mask, cutout, or matting outputs that this public package explicitly exposes
- transcribe uploaded audio into text (
speech to text, audio transcription) - generate speech from text input (
text to speech, voice generation) - convert uploaded files into markdown (
document to markdown) - start async jobs and check status later (
poll, check job status) - fetch rendered visual outputs such as
overlay, mask, and INLINECODE100 - run embedding or reranking tasks for retrieval workflows
- check current account points balance or recent points ledger rows
Common Requests
Example requests that should trigger this skill:
- - "Detect faces in this image and return bounding boxes."
- "Tag this image and summarize the main objects."
- "Remove the background from this product photo."
- "Create a clean cutout from this portrait image."
- "Transcribe this meeting audio into text."
- "Generate speech from this paragraph."
- "Convert this PDF file into markdown."
- "Start this job now and let me poll the run status later."
- "Fetch overlay and mask files for run_456."
- "Generate embeddings for this text list and rerank the candidates."
- "Check my current points balance."
- "Show my recent points ledger from 2026-03-01 to 2026-03-15."
Search-Friendly Capability Aliases
- -
vision aliases: face detection, human detection, person detection, image tagging - INLINECODE102 aliases: remove background, background removal, cutout, matting, product-cutout
- INLINECODE103 aliases: speech to text, audio transcription, transcribe audio
- INLINECODE104 aliases: text to speech, voice generation, speech synthesis
- INLINECODE105 aliases: document to markdown, file to markdown, markdown conversion
- INLINECODE106 aliases: check job status, poll long-running task, async run status
- INLINECODE107 aliases: rendered output, overlay, mask, cutout files
- INLINECODE108 aliases: points balance, credits balance, remaining points
- INLINECODE109 aliases: points ledger, credits history, points statement
- INLINECODE110 aliases: vectorization, semantic vectors, relevance reranking
Public discovery boundary for visual capabilities:
- - This published skill only advertises visual capabilities whose backing services are currently enabled for public delivery.
- Disabled or internally retained legacy routes are intentionally omitted from discovery references and capability manifests even if related backend code still exists.
Runtime Contract
Default API base URL: https://gateway-api.binaryworks.app
Published package policy: outbound base URL is locked to the default API base URL to reduce token exfiltration risk.
Action to endpoint mapping:
- -
portal.skill.execute -> INLINECODE113 - INLINECODE114 -> INLINECODE115
- INLINECODE116 -> INLINECODE117
- INLINECODE118 ->
POST /agent/public-bridge/invoke (explicit connect/status check only) - INLINECODE120 -> INLINECODE121
- INLINECODE122 -> INLINECODE123
Install Mechanism & Runtime Requirements
- - This skill is instruction-first and does not define a remote installer flow.
- Runtime execution is limited to bundled local scripts under
scripts/*.mjs. - Required runtime binary is
node (as declared in metadata.openclaw.requires.bins). - No remote download-to-exec install chain is used (
curl|wget ... | sh|bash|python|node is not part of this package).
Auth Contract
Third-party agent entry mode (official host integrations should route through connector/runtime):
- - Officially supported host integrations should install or provision the connector/runtime and let it manage
entry_user_key; do not ask end users to manage continuity manually. - If a host bypasses connector/runtime and invokes the published skill directly, use
POST /agent/public-bridge/invoke and persist the same entry_user_key outside this published skill package. - Do not require end users to provide any credential.
- Use
portal.account.connect when host/runtime wants an explicit browser-connect preflight instead of waiting for a protected action to fail. - Connector/runtime remains required for the official host integration path even when browser authorization is not yet required.
- With
TRIAL_ENABLED and available trial points, first-time calls may proceed without browser authorization. - On first use without an existing binding, gateway can proceed without browser authorization when TRIAL_ENABLED and trial points are available;
AUTHORIZATION_REQUIRED is returned only for conditional upgrade paths (for example trial exhausted or trial-disabled rollback). - The returned
authorization_url may include gateway_api_base_url; preserve it when completing browser authorization so /agent-auth/complete is posted back to the same API environment that created the auth session. - Host/runtime should show
authorization_url to the user, persist entry_user_key, then retry the same action with that same entry_user_key. - Connector/runtime must preserve that same
entry_user_key before and after browser authorization. - When
AUTHORIZATION_REQUIRED or portal.account.connect returns connector_install, treat it as the official npm connector/runtime guidance for hosts that have not yet provisioned the supported continuity layer. - INLINECODE144 refers to the official connector package outside this published skill package.
- That connector is the required continuity owner for officially supported host integrations, even though account authorization may still be deferred until trial exhaustion or policy upgrade.
- For OpenClaw/MobileClaw-style local hosts, follow the connector guide referenced by
connector_install.guide_url, then continue the same browser authorization_url flow with the same entry_user_key. - If gateway later returns
AUTHORIZATION_REQUIRED with details.likely_cause=ENTRY_USER_KEY_NOT_REUSED, details.recovery_action=REUSE_ENTRY_USER_KEY, and details.reauthorization_required=false, host should restore the previously persisted entry_user_key and retry without sending the user through browser authorization again.
Identifier format constraints used by gateway auth:
- -
agent_uid must match ^agent_[a-z0-9][a-z0-9_-]{5,63}$. - INLINECODE155 must match
^[A-Za-z0-9._:-]{8,128}$. - In deployed bridge mode, host may pass its own stable runtime agent identifier and the gateway bridge will canonicalize it server-side.
Host-side token bridge (outside published package):
- - To keep this package compliant and low-privilege, this published runtime does not issue or accept caller-managed task tokens.
- Preferred deployed bridge endpoint for third-party agent entry: connector/runtime should call
POST /agent/public-bridge/invoke. - Trusted host runtime that can safely hold bridge assertion secret may continue to use
POST /agent/skill/bridge/invoke. - These bridge endpoints are served by gateway runtime, not bundled into this published package, and do not require caller-managed credentials.
- published skill persistence = disabled; continuity must stay in
host_or_private_wrapper, not inside this published package. - Bridge request body should include
action, agent_uid, conversation_id, and optional payload. - INLINECODE164 should be a host-generated opaque session/install identifier, not a public chat ID, raw thread ID, or PII.
- Public bridge should resolve a stable external user binding when available; if the binding is missing and trial conditions are satisfied, first-time onboarding can continue without browser authorization, while conditional upgrade paths return a host-owned authorization URL plus
entry_user_key. - Cross-conversation account continuity requires reusing the same
entry_user_key; public bridge intentionally does not accept owner overrides. - Gateway bridge will canonicalize
agent_uid, repair binding when missing, issue short-lived internal task token, and run the action server-side. - INLINECODE168 through public bridge is write-capable and should send
options.confirm_write=true after user confirmation; otherwise gateway may return ACTION_CONFIRMATION_REQUIRED. - INLINECODE171 ,
gateway_api_key, api_key, user_token, agent_task_token, owner_uid_hint, and install_channel overrides are rejected by the deployed bridge endpoint. - Recommended host behavior: persist
entry_user_key, normalize agent_uid, and re-run the same bridge action after authorization completes.
Host integration modes:
- -
connector-managed interactive (recommended): connector/runtime calls POST /agent/public-bridge/invoke, surfaces the returned host-owned authorization URL to the user when needed, persists returned entry_user_key, and retries after authorization completes. - INLINECODE183 (secondary): a trusted backend you control may call
POST /agent/skill/bridge/invoke with its own bridge assertion secret. - Published skill package itself does not open browser, persist credentials, or perform OAuth/token exchange flows.
- The authorization URL above is owned by deployed gateway/admin-web pages, not by this skill package runtime.
- Successful public bridge responses add
data.agent_guidance.bridge_auth with continuity_owner=host_or_private_wrapper, published_skill_persistence=disabled, and the returned bridge_context. - Public bridge failures that include entry context add
error.details.bridge_auth so host/runtime can recover continuity outside the published skill package.
Compatibility and Debug Transport Reference
Default product path for official hosts remains connector-first and result-first.
Use the raw transport reference below only when:
- - a host is in compatibility mode and can preserve the same
entry_user_key itself - a trusted backend is integrating directly
- debugging requires checking the raw bridge contract
Preferred raw transport for third-party agent entry (normally owned by connector/runtime, and also usable as a compatibility fallback when a host can preserve continuity itself):
CODEBLOCK0
- - Send that body to
POST /agent/public-bridge/invoke. - INLINECODE192 must match the active host runtime. Current built-in examples are
mobileclaw, openclaw, codex, claude; future lowercase host slugs can follow the same contract when connector/runtime is configured for them. - Example mappings: MobileClaw ->
mobileclaw, OpenClaw -> openclaw, Codex -> codex, Claude -> claude. - If the host cannot pass
entry_host explicitly, export PUBLIC_BRIDGE_ENTRY_HOST or AI_TASK_HUB_ENTRY_HOST, or install the package under the host-specific runtime path so host inference stays correct. - This is the underlying production transport for connector-managed third-party integration.
- With
TRIAL_ENABLED and available trial points, first-time onboarding can complete without browser authorization. - On first use, gateway may return
AUTHORIZATION_REQUIRED with authorization_url and entry_user_key only when conditional authorization upgrade is required (for example trial exhausted). - Persist
entry_user_key and retry with the same value after user authorization completes. - Preserve any
gateway_api_base_url embedded in the authorization flow so the completion request lands on the same gateway API environment. - INLINECODE210 should be your host-defined stable runtime agent identifier.
- INLINECODE211 should be your host-generated opaque session/install identifier; it is not tied to Telegram or any single tool and does not determine account ownership.
- Use the same
entry_user_key across conversations when those conversations should share one account.
Trusted host runtime secondary mode:
- - If you control the upstream backend and it can safely hold bridge assertion secret, use
POST /agent/skill/bridge/invoke. - This path is for trusted host runtime only, not OpenClaw / MobileClaw / Codex / Claude style third-party entry.
Action payload templates (same for public bridge and trusted host bridge mode):
{
"capability": "human_detect",
"input": { "image_url": "https://files.example.com/demo.png" },
"request_id": "optional_request_id"
}
{ "run_id": "run_123" }
{ "run_id": "run_123", "channel": "web", "include_files": true }
{ "connect_mode": "browser", "auth_session_id": "optional_existing_auth_session" }
{}
CODEBLOCK6
Agent-side decision flow:
- - For official host integration, prefer connector install/connect/invoke/status/logout or the hosted connector lifecycle over direct published-skill invocation.
- Only bypass connector/runtime and call
POST /agent/public-bridge/invoke directly when you are in a compatibility or debugging path and can preserve the same entry_user_key yourself. - Default capability path must follow
delivery mode, not a universal three-step recipe:
-
instant_result: prefer result-first flow; use
portal.skill.execute only when dropping to published skill actions.
-
aggregated_short_wait: prefer result-first flow; fall back to
portal.skill.poll only if the short wait does not complete.
-
asset_delivery: use
portal.skill.presentation only when the capability needs formal rendered assets.
-
long_running: keep explicit async expectations and use
portal.skill.poll as the normal follow-up.
- - Explicit account linking: call
portal.account.connect, surface the returned authorization_url when present, and keep reusing the same entry_user_key. - Account query: call
portal.account.balance or portal.account.ledger directly. - Keep
conversation_id as session context only; do not use it as the account key. - For cross-conversation continuity in third-party entry mode, persist and reuse the same
entry_user_key; do not pass owner_uid_hint to the public bridge endpoint. - If
AUTHORIZATION_REQUIRED is returned, show authorization_url, persist entry_user_key, then retry the same action after user authorization completes. - If
AUTHORIZATION_REQUIRED includes details.likely_cause=ENTRY_USER_KEY_NOT_REUSED, do not open a new auth flow yet; first restore the previously persisted entry_user_key and retry the same bridge call. - Treat
details.reauthorization_required=false as a recovery hint that browser re-login is unnecessary for this failure mode. - If
AUTH_UNAUTHORIZED + agent_uid claim format is invalid: use canonical agent_uid (agent_...) instead of a short host alias (assistant, planner). - If
SYSTEM_NOT_FOUND + agent binding not found: restart the same bridge flow once and let gateway repair binding.
Output parsing contract:
- - Always parse standard gateway envelope:
request_id, data, error. - Treat non-empty
error as failure even when HTTP tooling hides status code.
Visualization Playbooks (Agent Guidance)
- - For successful visual actions (
portal.skill.execute, portal.skill.poll, portal.skill.presentation), the script enriches responses with data.agent_guidance.visualization.playbook. - Playbook mapping covers the visual capabilities currently exposed by this published skill (detection/classification/keypoints/segmentation/matting families).
- For
image-generation, user delivery should be image-first: present the generated image itself and omit structured fields unless the user explicitly asks for source data or debugging details. - Global rendering guardrail for all visual capabilities:
- Must use skill-native rendered assets first (
overlay/mask/cutout/view_url) when available. - Manual local drawing fallback is disabled by default (
allow_manual_draw=false) to avoid inconsistent agent-side rendering. - If rendered assets are missing, fallback is summary-only from structured output (
raw/visual.spec), not local drawing. - Example special rule:
- INLINECODE270 -> when both rendered assets and geometry are absent, playbook marks
status=degraded and recommends fallback capability body-keypoints-2d.
Payload Contract
- -
portal.skill.execute: payload requires capability and input. - INLINECODE276 is optional and passed through.
- INLINECODE277 and
portal.skill.presentation: payload requires run_id. - INLINECODE280 supports
include_files (defaults to true). - INLINECODE283 : payload may include
connect_mode and optional auth_session_id when host/runtime is checking an existing browser bind. - INLINECODE286 : payload is optional and ignored.
- INLINECODE287 : payload may include
date_from + date_to (YYYY-MM-DD, must be provided together).
Attachment normalization:
- - Prefer explicit
image_url / audio_url / file_url / video_url. - INLINECODE295 is mapped to target media field by capability.
- When host runtime exposes attachment bytes, this published package forwards only that explicit attachment material through the public bridge and injects the returned URL before execute.
- There is no separate
portal.upload action in this package; for third-party agent entry, callers should keep using portal.skill.execute, and the bundled runtime will only forward explicit attachment bytes already supplied by the host for the current request. - If a host bypasses the bundled auto-upload helper and implements upload itself, use
POST /agent/public-bridge/upload-file for third-party/public entry, not POST /agent/skill/bridge/upload-file. - Local
file_path handling is disabled in the published public skill. - The runtime does not scan the local filesystem, guess file locations, expand directories/globs, or read local paths from
payload.file_path, input.file_path, attachment.path, or attachment.file_path. - Arbitrary unmanaged local filesystem access remains unsupported; hosts should provide bytes or a bridge-managed URL instead.
- Example host upload endpoint:
/agent/public-bridge/upload-file. - INLINECODE306 requires 2 uploaded files from the user before execution:
- source video ->
input.video_url
- merge face image ->
input.merge_infos[0].merge_face_image.url
- - If either required file is missing, agent should ask the user to upload both files first.
- Prefer a short source video for testing or smoke runs because these video-generation jobs are asynchronous and slower than image-only tasks.
- Do not rely on a single
attachment.url auto-mapping for Video Face Generation; host must pass both structured URL fields explicitly.
Error Contract
- - Preserve gateway envelope:
request_id, data, error. - Preserve
POINTS_INSUFFICIENT and pass through error.details.recharge_url.
Bundled Files
- - INLINECODE316
- INLINECODE317
- INLINECODE318
- INLINECODE319
- INLINECODE320 (compatibility shim)
- INLINECODE321
- INLINECODE322
- INLINECODE323
AI Task Hub
原名 skill-hub-gateway。
公共包边界:
- - 仅编排 portal.skill.execute、portal.skill.poll、portal.skill.presentation、portal.account.connect、portal.account.balance 和 portal.account.ledger。
- 在此包内部不交换 apikey 或 userToken。
- 在此包内部不处理充值或支付流程。
- 可选的环境提示 PUBLICBRIDGEENTRYHOST 和 AITASKHUBENTRYHOST 仅是主机端的 entryhost 回退值,并非 API 密钥、认证令牌或计费凭证。
- 优先使用附件 URL,当主机运行时为当前请求显式暴露附件字节时,在执行前仅通过公共桥接转发该显式附件材料。
- 当已发布技能被第三方代理运行时直接调用时,使用 POST /agent/public-bridge/invoke。
- 已发布技能持久化 = 禁用。
- 连续性所有者 = hostorprivatewrapper。
数据处理边界
- - 仅转发主机运行时为当前请求显式提供的附件字节。
- 主机外媒体传输仅限于网关控制的主机 https://gateway-api.binaryworks.app。
- 公共上传交接仅限于同一请求流程的 POST /agent/public-bridge/upload-file。
- 不读取本地路径、不扫描本地文件系统、不猜测主机显式提供的附件材料之外的文件。
- 不将上传的字节或凭证持久化到本地磁盘,不写入技能/配置状态。
- 主机/运行时在转发媒体前应获得用户同意,并应避免发送敏感或受监管数据,除非用户明确批准该传输。
请先阅读
- - 不要将连接器生命周期命令与已发布技能操作混合使用。
- connect / status / invoke / logout 是用于主机/运行时安装状态的连接器生命周期命令。
- portal.account.connect / portal.skill.execute / portal.skill.poll / portal.skill.presentation / portal.account.balance / portal.account.ledger 是已发布技能操作。
- 不要将 portal.skill.execute -> portal.skill.poll -> portal.skill.presentation 视为每个能力的默认路径。默认行为必须遵循能力的 delivery mode。
- 以下公共能力清单仅列出有意向代理广告的已启用能力。后端代码中可能仍存在禁用或仅内部使用的路由,但它们不属于广告包表面的一部分。
两个操作面
- connect:为一个连接器安装启动或恢复浏览器授权
- status:读取连接器安装是否已有连续性
- invoke:通过连接器运行时调用一个已发布技能操作
- logout:清除该连接器安装的连续性
- portal.account.connect:显式账户绑定或连接状态检查
- portal.skill.execute:提交一个能力运行
- portal.skill.poll:轮询已提交的运行
- portal.skill.presentation:获取运行的渲染输出
- portal.account.balance:读取当前积分余额
- portal.account.ledger:读取积分账本行
公共能力清单(已启用且可用)
- human_detect
- image_tagging
- face-detect
- body-keypoints-2d
- face-emotion-recognition
- person-instance-segmentation
- person-semantic-segmentation
- concert-cutout
- full-body-matting
- head-matting
- product-cutout
- asr
- tts_report
- markdown_convert
- embeddings
- reranker
- image-generation
- Video Face Generation
交付模式指南
- 默认主机行为:优先使用结果优先的入口点,并在同一交互中返回最终结果。
- 典型能力:tts_report、图像分析、检索。
- 默认产品路径:使用结果优先的主机流程;portal.skill.execute 通常就足够了。
- 默认主机行为:优先使用结果优先的入口点并进行短暂的内部等待,仅在短等待未完成时回退到轮询。
- 典型能力:image-generation。
- 默认产品路径:从结果优先的主机流程开始;仅在短等待未完成时使用 portal.skill.poll。
- 默认主机行为:将 presentation 或渲染文件作为正式结果表面的一部分保留。
- 典型能力:分割、抠图、裁剪。
- 默认产品路径:portal.skill.execute -> portal.skill.poll,然后在需要文件或渲染输出时使用 portal.skill.presentation。
- 默认主机行为:将能力视为显式异步任务,不承诺单轮完成。
- 典型能力:asr、markdown_convert、video-face-generation。
- 默认产品路径:portal.skill.execute 配合后续的 portal.skill.poll;仅在该能力后续暴露渲染结果表面时使用 portal.skill.presentation。
最小架构规则
- - 默认路径保持连接器优先。不要在连接器/运行时之外发明特定于主机的连续性或身份模型。
- 默认路径保持结果优先。不要将每个能力都教成 execute -> poll -> presentation。
- portal.skill.poll 和 portal.skill.presentation 是后续表面,不是通用默认步骤。
- 已发布技能保持兼容性和资产交付表面,但不拥有长期连续性。
- 不要要求最终用户提供手动 URL、JSON 字段名、本地路径或内部桥接细节,除非他们明确要求调试。
不推荐的模式
- - 当托管连接器或本地引导程序可用时,不要绕过连接器/运行时作为默认主机产品路径。
- 不要将原始已发布技能操作描述为每个能力的主要用户体验。
- 不要在现有连接器/运行时和网关合约之外添加特定于主机的认证、连续性或能力路由规则。
- 不要向最终用户暴露调试负载结构、桥接层或上传编排,除非明确要求故障排除。
官方主机集成
- - 当前 mobileclaw、openclaw、codex 和 claude 的内置主机集成要求 AI Task Hub 连接器/运行时从第一次调用起就拥有连续性。
- 未来的公共主机应遵循相同的连接器/运行时连续性合约,而不是发明特定于主机的身份模型。
- 对于远程 URL / OAuth / 连接记录类型的主机,使用托管连接器运行时:POST /agent/hosted-connector/install、POST /agent/hosted-connector/connect、POST /agent/hosted-connector/invoke、POST /agent/hosted-connector/status、POST /agent/hosted-connector/logout。
- 对于本地仅命令类型的主机,使用此已发布包外部的共享连接器/运行时引导程序。
- POST /agent/public-bridge/invoke 是该连接器/运行时使用的底层传输,也是主机在调试或手动集成期间绕过连接器时的兼容性回退。
- 能够安全持有桥接断言密钥的可信主机运行时仍可使用 POST /agent/skill/bridge/invoke。
- 即使存在连接器/运行时,已发布技能持久化仍保持禁用;长期连续性属于主机或连接器状态,不属于此包。
面向用户的响应策略
- - 当用户上传图像、音频、文档或视频并要求某项能力时,仅当主机运行时已为该请求提供了显式附件对象或显式附件字节时,才优先立即执行。
- 不要向最终用户解释 image_url、attachment.url、存储 URL、桥接层、主机上传、输入规范化或受控媒体域细节,除非他们明确要求技术调试。
- 不要要求最终用户提供手动 URL、JSON 字段名或上传链指令;这些是内部主机到技能的机制。
- 如果运行时支持附件处理,将处理限制在为当前请求提供的显式附件对象上,并将上传/URL 交接范围限定在同一请求的 execute/poll/presentation 中。
- 仅当执行实际失败且用户必须干预时,才应提及缺失的可处理文件、不完整的授权或重试指导,使用面向用户的语言,不暴露内部层级。
中文文档:SKILL.zh-CN.md
何时使用此技能
当用户要求执行以下操作时使用此技能:
- - 从图像中检测人脸、人体存在、身体关键点、图像标签或面部