Communication Protocol

定义了 OpenClaw 代理在构建会话中与 Tidy 的通信方式,确保交互清晰、可预测且聚焦于构建。

安装

概览

{ “overview_html”: “OpenClaw 代理与 Tidy 之间的通信协议旨在确保构建会话过程中的交互清晰、可预测,并专注于构建任务本身。该协议通过结构化的事件机制驱动用户界面更新,避免使用技术或内部编排语言出现在用户可见的消息中。整个流程由前端负责渲染聊天界面和时间线,后端(Tidy)启动构建会话并运行 OpenClaw 的各个阶段,而 OpenClaw 代理则返回结构化的系统事件以及简洁的用户友好型更新内容。为了保持低冗余度,步骤间的转换主要作为 UI 事件处理,而非频繁发送聊天消息。\n\n通信过程中,所有来自 Tidy 的消息都会被封装上机器可读的头信息,包括来源标识、构建 ID、会话 ID、消息类型及问题 ID 等元数据。这些头部信息仅用于传输层处理,不应在面向用户的回复中重复或提及。OpenClaw 在处理时必须将其视为元数据解析,而不是普通文本内容,同时严格禁止向用户暴露任何包装格式相关的细节。\n\n协议定义了一套标准化的“事件契约”,所有事件均以 JSON 格式表示,包含 `type` 和 `payload` 字段,且要求 `payload.source` 必须为 `”agent”` 以标明来源。这套事件体系覆盖了从助手消息创建到进度步进管理、状态变更通知、问答请求直至会话终结等多个关键环节,确保了整个构建流程的可追踪性和用户体验的一致性。”, “feature_items”: [ “采用结构化事件驱动 UI 更新,避免技术术语干扰用户”, “通过标准事件类型(如 progress.step.started/completed)精确控制构建流程展示”, “支持单问题与多问题集合两种交互式澄清机制”, “强制实施低冗余度策略,减少不必要的聊天消息刷屏”, “提供终端事件标记(session.completed/failed)明确结束状态” ], “scenarios_html”: “此通信协议特别适用于需要高度透明化构建过程的应用场景,例如开发者在调用自动化代码生成工具时希望实时了解当前所处的构建阶段及其进展。通过 `progress.step.*` 系列事件,用户可以直观地看到当前正在执行的任务(如‘理解您的请求’或‘测试一切是否正常工作’),而无需被底层复杂的并行任务调度所困扰。\n\n另一个典型应用场景是在构建过程中遇到依赖缺失或参数不完整的情况下,系统能够主动发起有针对性的询问(question.requested 或 questions.requested),引导用户提供必要的信息以便继续推进。这种机制既保证了构建流程的顺畅性,又提升了人机协作的效率。\n\n此外,当构建完成或失败时,协议规定只发送一次总结性消息配合终端事件,防止信息过载。这对于集成到 CI/CD 流水线或者需要自动监控构建结果的平台尤其重要,有助于实现稳定可靠的自动化运维体验。” }