尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
揭秘 PenguinHarness 的 OmniMessage 协议:一个协议统一流式、存储与模型的完整指南
揭秘 PenguinHarness 的 OmniMessage 协议一个协议统一流式、存储与模型的完整指南【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harnessPenguinHarness 是一个开源的 Agent Harness 平台而它的底层基石是OmniMessage 协议——一套统一的消息协议SDK 产出它Trace 存储它Server 再经 SSE 原样推送它。这意味着流出去的、存下来的、以及模型看到的内容是同一种结构前端、后端与存储之间不存在第二套格式。这篇文章用通俗的方式带你完整看懂 OmniMessage它长什么样、有哪几类消息、如何做到流式即存储以及为什么它让 Agent 会话可以无损恢复。为什么一个协议如此重要 构建 AI Agent 应用时工程师常常要面对三套语言流式输出模型一边生成一边往外吐 token客户端要边收边渲染磁盘存储会话历史要落盘将来还要能完整回放、恢复模型上下文下一轮请求要把历史消息重新喂给模型。如果三者各用各的格式你就得写大量的转换代码把流式分片拼成完整消息、把完整消息转成存储格式、再把存储格式还原成模型能读的上下文。任何一处转换出错会话恢复就会出问题。OmniMessage 的解法很直接只定义一种结构所有环节共用它。整个系统的内核只认识 OmniMessage不做任何协议转换——供应商协议的差异被封装在模型网关一侧UI 的差异被封装在渲染层一侧。协议的类型定义集中在 packages/core/src/omnimessage/types.ts。统一的信封三类消息一个结构每条 OmniMessage 共用同一个信封只有payload不同时间戳、消息类型、消息体外加一个可选的origin字段。外层type只有三种取值消息类型含义出现规律session_meta一个模型上下文的完整运行时配置每个上下文恰好一条model_msg上下文内的内容文本、思考、工具调用与结果消息主体event_msg上下文之外的运行时事件审批、用量、压缩、中断、钩子回答伴随出现其中session_meta相当于开局记录它记下会话 ID、所用模型、完整装配好的系统提示词、Agent 状态与工作区路径。每个 Trace 文件都以一条session_meta开头会话内切换模型时会开启新上下文、写下一条新的 meta。恢复会话时引擎直接读最新文件里的 meta 就能还原运行时配置——这就是存储即恢复的基础。完整消息与流式分片流式如何做到零拼接model_msg里有两组 payload完整消息共七种用payload.type区分text普通文本区分 user / assistant 角色thinking/inline_thinking模型思考块tool_call/tool_call_output工具调用与结果通过tool_call_id严格配对image_url/inline_data图片与其他二进制内容。流式分片共四种partial_*payload与完整消息一一对应并带一个event_type标记所处阶段start→delta→stop。这里最优雅的地方是流式纪律每段流式内容都严格遵守同一时序规则——partial_text(start) → partial_text(delta) → … → partial_text(stop) → text (complete)所有 delta 拼接起来恰好等于完整消息且stop之后紧跟完整消息本身。因此渲染层可以边收 delta 边绘制、收到完整消息后原地替换而 Trace只记录完整消息不存分片。接口内部把结构闭合好从不向上层泄漏未闭合的分片使用方永远不需要自己拼接。event_msg把运行时的一切变成消息event_msg共十二种事件记录模型上下文之外的运行时事实例如事件记录的内容tool_list_ready实际发给模型的完整工具 schemarequest_begin/request_end一次模型请求的开始与终态含重试详情approval_decision一次工具审批决策allow / deny / forbiddentoken_usage会话累计与本次请求的 Token 用量compaction_begin/compaction_end上下文压缩的触发与结果abort一次用户中断及其原因码subagent父 Trace 中指向子会话的指针hook一次钩子回答钩子点、名称、决策凡是报告失败的事件都携带同一对错误字段error_code是稳定、机器可读的原因码渲染层据此做本地化error_message是原始失败文本。这个设计呼应了 PenguinHarness 的一条核心信条错误从不以异常形式穿过接口边界错误本身就是消息。stop_reason所有终止记录共用一套词汇所有带终止原因的记录——模型消息、工具结果、请求终态、压缩终态、MCP 连接终态——共用同一个四值枚举取值含义引擎反应completed正常完成继续aborted用户中断或取消停止产出abort事件交还用户retryable值得重试的失败超时、429/5xx、响应被截断等按退避阶梯自动重连fatal重试也无法修复凭据被拒、确定性 4xx 拒绝停止运行交还用户四值只回答一个问题要不要重试。失败属于哪一类看error_code细节看error_message。职责单一整个协议就不会出现十个地方十种错误语义的混乱。origin 与 fidelity路由子 Agent、保真供应商细节两个可选字段解决了两个看似无关的问题origin子 Agent 的消息路由。当 Agent 用run_subagent派生子会话时子会话的消息转发给父级每经过一层就在origin链首加一个子会话 ID由外到内。渲染层按这条链把消息归入对应的嵌套卡片而带origin的消息不写入父 Trace——子会话有自己的 Trace父 Trace 只保留一条subagent指针事件。fidelity供应商保真负载。一些模型回放历史时要求携带逐字节一致的供应商数据如思考签名、加密推理内容。fidelity是一个对 PenguinHarness完全不透明的 JSON 对象全链路原样透传、原样存储不改写、不丢失。这也是 Trace 能无损恢复会话的前提之一。同一协议贯穿三条通道 通道使用的子集SDK 边界session.run的输出完整model_msg 流式partial_* 全部event_msg落盘的 Tracesession_meta 完整model_msg 全部event_msg不存分片与origin消息Server 的 SSE 推送与 SDK 边界相同原样的单行 JSON每条消息在进入输出流的同时追加写入 Trace因此流序与 Trace 序天然一致。Trace 观测面板可以直接回放这些消息还原出每一轮的执行时间线消息如何在一轮的五个参与者Human、engine、LLM、Environment、Trace之间传递、哪些顺序有保证官方文档有专门一页梳理packages/docs/content/message-flow.zh.md。动手体验用 SDK 消费 OmniMessage 流想感受协议的统一性只需几行代码。prismshadow/penguin-core导出了协议的全部类型、构造函数builders和运行时判别函数完整用法见 packages/docs/content/quickstart-sdk.zh.md 与 packages/core/README.mdimport { createAgent, isCompleteModelMessage, userText } from prismshadow/penguin-core; const agent await createAgent({ agentId: default_agent }); const session await agent.createSession({ workspaceDir: process.cwd() }); for await (const output of session.run([userText(列出当前目录的文件)], { approve: async () allow, })) { if (isCompleteModelMessage(output) output.payload.type text) { console.log(output.payload.text); } }循环中你拿到的就是Trace 里存的内容、SSE 里推的内容——同一种结构。想深入协议逐字段定义官方文档是最佳入口packages/docs/content/omni-message.zh.md。写在最后OmniMessage 的哲学可以浓缩成一句话流出去的、存下来的和模型看到的是同一种结构。它用一个信封、三类消息、四值终止原因和不透明的保真字段同时解决了流式渲染、磁盘存储与会话恢复三个看似矛盾的需求也让一切可观测、Session 可从 Trace 完整恢复成了平台级的承诺。如果你想了解它如何与 ReAct 循环、压缩和重连协作可以继续阅读 packages/docs/content/architecture.zh.md 与 packages/docs/content/agent-loop.zh.md。【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

IPV4报头20字节逐字段详解:从抓包到MTU排障实战

IPV4报头20字节逐字段详解:从抓包到MTU排障实战

搞网络排障这些年,我见过太多人一抓包就犯晕:满屏十六进制,不知道从哪看起。其实IPV4报头就是把网络层所有“控制信息”打包的地方,寻址、分片、防环、协议识别全靠它。很多看似玄乎的问题——UDP大包发不出去、某些路径MTU不对、…

📅 2026/10/4 23:18:34
Claude Code Remote Control 完全指南:从手机控制你的终端

Claude Code Remote Control 完全指南:从手机控制你的终端

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/4 23:18:34
Excel转Lua工具开发指南:从表头协议到工程化避坑

Excel转Lua工具开发指南:从表头协议到工程化避坑

简介:Excel转Lua工具是一款面向游戏开发与配置管理场景的实用辅助程序,主要帮助开发者将结构化Excel表格批量转换为Lua脚本,省去手工编写数据表的繁琐过程,解决Excel数据难以被Lua程序直接读取的问题。资源包共4个文件&#xff0c…

📅 2026/10/4 23:18:34
MORE NEWS

更多资讯

📰

WorkBuddy:基于MCP协议的组织级工作流神经中枢

1. WorkBuddy 不是“另一个AI工具”,而是组织级工作流的神经中枢你有没有遇到过这样的场景:市场部刚在飞书多维表格里更新完本周投放数据,技术部却还在用Excel核对上月API调用量;产品经理在Midas Gen里完成结构模型轻量化验证后&a…

📰

AZ-104题库深度拆解:从刷题到掌握Azure管理员核心考点

简介:AZ-104是微软MCP认证体系中面向Azure云平台的核心科目之一,适合计划成为Azure解决方案专家或正在准备微软认证考试的IT人员。这份PDF题库围绕Azure资源管理、标签分组、Azure AD条件访问策略等高频考点,收录了专家验证过的单选与场景判断…

📰

企业核心数据灾备自动化:用 OpenClaw 备份到本地 + 云端 + 离线存储的 TaoToken 统一通道实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

SpringBoot+Vue+MyBatis企业级房屋租赁管理系统源码解析

做房屋租赁管理这类系统,最怕的不是没有需求,而是需求是一块一块长出来的。我前前后后接触过好几家做长租公寓和房屋中介的团队,他们的日常是这样的:几百间房源的租客信息、合同期限、收租记录全部摊在Excel里,房租到期…

📰

插件加载失败深度解析:从did not activate到生命周期排查指南

1. 插件到底是个什么东西:从报错里的“activate”说起先还原一个场景。前几天有人在开发者群里贴了一段报错:failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p跟着又补了一条类似的:harness failed to load plu…

📰

原创性如何?8款AI论文工具排行榜,毕业护航利器!

论文选题无从下手,文献综述抓耳挠腮,格式排版反复修改? 别担心!AI论文工具正成为学术写作的新帮手。本文将从内容原创性、文献整合能力、格式规范性和查重通过率四大维度,深度测评8款热门AI论文生成工具,助…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬