← 返回 Skills 市场
dweikanas

Communication Protocol

作者 Anas Dweik · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
205
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install communication-protocol
功能描述
Defines how the OpenClaw agent should communicate with Tidy during a build session, ensuring clear, predictable, and build-focused interactions.
使用说明 (SKILL.md)

Goal

  • Keep build chat clear and predictable.
  • Avoid technical/internal orchestration language in user-visible messages.
  • Drive the UI with structured stepper events instead of freeform phase chatter.
  • Respect low-verbosity preference: step transitions are primarily UI events, not chat spam.

Roles

  • Frontend: renders chat + timeline from backend events.
  • Backend (Tidy): starts build session, runs OpenClaw turns, stores events.
  • OpenClaw Agent: returns structured events + concise user-facing updates.

Session Inputs (from backend to OpenClaw)

Environment variables passed to each turn:

  • TIDY_BUILD_ID
  • TIDY_BUILD_PROMPT
  • TIDY_SESSION_ID

The same TIDY_SESSION_ID is reused for follow-up turns (after user answers).

Tidy Transport Wrapper (Required)

Messages from Tidy are wrapped with machine headers:

[FROM:TIDY]
[BUILD_ID:\x3Cuuid>]
[SESSION_ID:\x3Cuuid>]
[MESSAGE_TYPE:BUILD_REQUEST|USER_ANSWER|USER_ANSWERS]
[QUESTION_ID:\x3Cid>]            # only for USER_ANSWER
[QUESTION_IDS:\x3Cid1,id2,...>]  # only for USER_ANSWERS

System note: headers above are transport metadata from Tidy. Do not repeat them in user-facing replies.
\x3Cmessage body>

Agent handling rules:

  • Parse headers as metadata, not user text.
  • Never echo/repeat header lines in replies.
  • Never mention wrapper format to the user.
  • BUILD_REQUEST: start/continue build conversation for the request body.
  • USER_ANSWER / USER_ANSWERS: continue from clarification response(s).

Event Contract (canonical)

All events should be represented as:

{
  "type": "event.type",
  "payload": {}
}

payload.source must be "agent" for agent-originated events.

Supported Event Types

1) assistant.message.created

Use for short, user-facing chat text only.

Payload:

{
  "text": "string",
  "source": "agent"
}

Rules:

  • Keep it concise.
  • Use plain language.
  • Never narrate internal mechanics ("spawn workers", "design pipeline", etc.).
  • Do not emit a message for every step transition.

2) progress.step.started

Starts a user-facing stepper step.

Payload:

{
  "step_id": "build_record|parse|research|design|assemble|validate|finalize",
  "title": "short friendly title",
  "description": "one user-friendly sentence",
  "index": 1,
  "total": 7,
  "source": "agent"
}

3) progress.step.completed

Marks a prior step as complete.

Payload:

{
  "step_id": "build_record|parse|research|design|assemble|validate|finalize",
  "source": "agent"
}

4) status.changed

Major lifecycle transitions only.

Payload:

{
  "status": "running|complete|failed",
  "source": "agent"
}

Optional on completion/failure:

{
  "status": "complete",
  "output": "final result summary",
  "source": "agent"
}

5) question.requested

Use when blocked and one answer is required.

Payload:

{
  "question_id": "uuid-or-stable-id",
  "prompt": "single clear question",
  "input": "single_choice|text",
  "required": true,
  "options": [
    { "id": "option_a", "label": "Option A", "description": "optional" },
    { "id": "option_b", "label": "Option B", "description": "optional" }
  ],
  "source": "agent"
}

6) questions.requested

Use when blocked and multiple answers are needed together.

Payload:

{
  "question_set_id": "qs_123",
  "prompt": "I need a few details before I continue.",
  "required_all": true,
  "questions": [
    {
      "question_id": "q1",
      "prompt": "Budget range?",
      "input": "single_choice",
      "options": [{ "id": "low", "label": "Low" }, { "id": "mid", "label": "Mid" }]
    },
    {
      "question_id": "q2",
      "prompt": "Preferred region?",
      "input": "text"
    }
  ],
  "source": "agent"
}

7) session.completed / session.failed

Terminal events.

Payload:

{
  "source": "agent"
}

session.failed may include:

{
  "reason": "short failure reason",
  "source": "agent"
}

Step Transition Rules (Required)

When moving between steps:

  1. Emit progress.step.completed for the previous step.
  2. Emit progress.step.started for the next step.
  3. Keep title/description user-friendly.
  4. Treat these as machine/UI events. Do not also send repetitive assistant.message.created for the same transition.

Do not emit phase.changed for new builds.

Message Frequency Policy (Required)

  • Step transitions: progress.step.* events only (no extra chat message unless truly useful).
  • Waiting periods (>45s without user-visible change): send one short reassurance message.
  • Questions: always send question.requested or questions.requested and keep prompt plain.
  • Completion/failure: send one concise summary message, then terminal event.

User-Friendly Step Dictionary (Required)

Use this exact step_id set and tone:

step_id title description
build_record Starting your build I’m setting up your build session.
parse Understanding your request I’m reading your request and mapping the plan.
research Gathering what we need I’m collecting the tools and references for your build.
design Planning your agent I’m creating the build plan for your agent.
assemble Building your agent I’m assembling the pieces now.
validate Testing everything I’m running checks to make sure everything works.
finalize Finalizing I’m wrapping up and preparing your result.

Language Guardrails (Required)

Never send user-facing text like:

  • "Now I'll spawn all research workers and start profile setup in parallel."
  • "Research done. Designing your agent now..."
  • "Now designing the blueprint."

Instead, use:

  • "Gathering what we need"
  • "Planning your agent"
  • "Building your agent"

Expected Flow

  1. Backend creates build + session.started.
  2. Agent starts:
    • emit status.changed => running
    • emit progress.step.started (build_record)
  3. For each pipeline transition:
    • emit progress.step.completed (previous)
    • emit progress.step.started (next)
  4. If blocked:
    • emit question.requested or questions.requested
    • wait for user answer(s)
  5. Continue steps after answers.
  6. End:
    • emit status.changed (complete or failed)
    • emit session.completed or session.failed

Guardrails For Tidy Sessions

  • Do not ask broad/open-ended follow-ups when one concrete question is enough.
  • Keep questions implementation-focused (only if blocked).
  • Keep replies concise and actionable.
安全使用建议
This skill is an instruction-only protocol definition and appears coherent and low-risk: it asks the agent to parse Tidy headers and emit structured events, and it does not request installs or credentials. Two practical cautions: (1) the skill source is listed as unknown and there is no homepage — if you do not trust the registry owner or the environment where the agent will run, exercise caution before enabling it; (2) the skill relies on runtime inputs (TIDY_BUILD_ID, TIDY_BUILD_PROMPT, TIDY_SESSION_ID) and will produce structured events that the backend (Tidy) will record—confirm you are comfortable with those build prompts and session IDs being logged/processed by the backend. If you want extra assurance, ask the publisher for provenance (source repo or homepage) or request that the registry metadata declare the expected runtime env vars explicitly.
功能分析
Type: OpenClaw Skill Name: communication-protocol Version: 1.0.0 The skill bundle defines a structured communication protocol and UI event contract for an OpenClaw agent interacting with a backend system named 'Tidy'. It contains instructions for formatting JSON events (e.g., progress steps, status changes, and questions) and enforces language guardrails to ensure user-friendly interactions, with no evidence of malicious intent, data exfiltration, or unauthorized execution.
能力评估
Purpose & Capability
The SKILL.md describes a communication protocol between OpenClaw and Tidy and all required pieces in the file (transport headers, event types, step ids) match that stated purpose. It does not request unrelated binaries, cloud credentials, or filesystem access.
Instruction Scope
The instructions are narrowly scoped to parsing Tidy transport headers, emitting structured events, and producing concise user-facing text. They do not instruct the agent to read arbitrary files, call external endpoints beyond the assumed Tidy transport, or exfiltrate data. The agent is explicitly told not to echo wrapper headers or narrate internal orchestration.
Install Mechanism
There is no install spec and no code files, so nothing is written to disk or fetched at install time. This is the lowest-risk form of skill packaging and is appropriate for a protocol specification.
Credentials
The SKILL.md lists environment variables that will be passed into each turn (TIDY_BUILD_ID, TIDY_BUILD_PROMPT, TIDY_SESSION_ID) but the registry metadata shows no required env vars — this is consistent with those being runtime inputs provided by the backend rather than secrets requested from the user. The skill does not ask for credentials or other sensitive env vars.
Persistence & Privilege
always is false and the skill does not request or imply system-wide persistence or modification of other skills. Default autonomous invocation is allowed (platform normal) and is not combined with other red flags.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install communication-protocol
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /communication-protocol 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the communication-protocol skill: - Establishes a clear protocol for OpenClaw agent communication during Tidy build sessions. - Defines structured event types for chat, step transitions, status, questions, and terminal events. - Enforces concise, user-friendly messaging with strict language and verbosity guardrails. - Introduces event-based stepper flow with a required step dictionary for consistent UI. - Outlines message format requirements and handling rules for Tidy transport metadata.
元数据
Slug communication-protocol
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Communication Protocol 是什么?

Defines how the OpenClaw agent should communicate with Tidy during a build session, ensuring clear, predictable, and build-focused interactions. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 205 次。

如何安装 Communication Protocol?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install communication-protocol」即可一键安装,无需额外配置。

Communication Protocol 是免费的吗?

是的,Communication Protocol 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Communication Protocol 支持哪些平台?

Communication Protocol 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Communication Protocol?

由 Anas Dweik(@dweikanas)开发并维护,当前版本 v1.0.0。

💬 留言讨论