深入PenguinHarness架构:SDK、Server、CLI与Web接口边界设计完整解析
深入PenguinHarness架构SDK、Server、CLI与Web接口边界设计完整解析【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harnessPenguinHarness 是一个开源、本地优先的多 Agent 应用开发平台它能自动化 AI 应用的构建、优化与部署。本文用一张分层图讲清楚它的架构核心SDKcore、Server、CLI、Web 四个接口各司其职的边界设计——哪一层负责跑 Agent、哪一层负责鉴权与持久化、哪一层只负责呈现。一张图看懂四层分工PenguinHarness 的 Monorepo 里四个packages目录正好对应四个接口层依赖关系是严格单向的接口层包名一句话定位源码入口SDKprismshadow/penguin-coreAgent / Session 运行时 OmniMessage 协议packages/core/src/index.tsServerprismshadow/penguin-server多用户鉴权、SSE 流式会话、用量计费packages/server/src/CLIprismshadow/penguin-clipenguin命令行Agent 可脚本化驱动packages/cli/src/commands/Webprismshadow/penguin-web浏览器里的完整控制台packages/web/上图即 SDK 能力的缩影一句话让 PenguinHarness 构建出带检索、引用来源的完整 RAG 应用全程仅花费约 $0.02 的 token 成本。边界设计的第一原则只有 SDK 层知道如何跑一个 AgentServer、CLI、Web 全部是 SDK 的调用方谁也不重写一份 Agent 逻辑。SDK 层Agent、Session 与三接口契约penguin-core是整个平台的唯一事实来源导出三块核心内容见 packages/core/src/index.tsOmniMessage 协议——统一的跨层消息格式一次定义SDK/Server/Web 通用三份接口契约——Human / LLM / Environment分别定义输入谁、问哪个模型、在哪个环境执行见 packages/core/src/interfaces/运行时入口——createAgent、Session、ContextEngine见 packages/core/src/agent.ts。最简用法只有一小段const agent await createAgent({ agentId: default_agent }); const session await agent.createSession({ workspaceDir: process.cwd() }); for await (const output of session.run([userText(创建 hello.txt)], { approve: async () allow, // 每次工具调用可单独审批 })) { /* 处理流式输出 */ }设计要点模型引用永远是 (provider, model_id) 二元组会话在上下文打开那一刻从磁盘组装模型上下文assembleContext压缩/切换模型都会打开一个全新的上下文——这让 SDK 天然可嵌入任何宿主程序桌面 App、CI 脚本、另一个 Agent。完整文档见 packages/docs/content/quickstart-sdk.zh.md 与 packages/docs/content/interfaces.zh.md。Server 层唯一碰数据的进程penguin-server基于 Hono 构建职责被严格圈定为三件事多用户鉴权与授权内置admin账号 首登链接机制见 packages/server/src/auth/会话执行与 SSE 流式推送所有会话的 Token 流、工具输出经 SSE 实时下发用量计费与观测成本中心、Trace 轨迹文件的落盘与导出。关键约束是Server 是数据根目录~/.penguin/data的独占使用者内置文件锁packages/server/src/lock.ts保证同一数据根只有一个 Server 进程运行。所以桌面 App 启动时发现 CLI 已起了服务就直接附着过去而不是再起一个。Trace 观测面就是这套设计的直接产出——每一轮工具调用、思考耗时、Token 成本都在执行时间线上可视化Server 落盘的 Trace 文件在 Web 端展开为轨迹观测全局统计 分轮次执行时间线。API 全貌见 packages/docs/content/server-api.zh.md。CLI 层给 Agent 用的脚本化入口penguin命令是 SDK 与 Server 的双重消费者一部分命令直接调 SDK如penguin run一次性任务一部分通过 HTTP 调用已运行的 Server如penguin server-status、penguin server-stop见 packages/cli/src/client.ts。常用命令速查命令用途penguin run -m 任务一次性跑完一个任务就退出penguin chat交互式 REPL支持 /compact、/clearpenguin server以无头模式启动服务与 Web 同一套 APIpenguin config model add添加/配置模型凭据penguin schedule/penguin cost定时任务 / 成本查询命令实现分散在 packages/cli/src/commands/ 下的 18 个模块中。这种SDK 直连 Server 代理的双通道设计让 CLI 既能离线单机跑也能管理远端服务——对用 Agent 驱动 Agent的场景尤为友好。文档见 packages/docs/content/cli.zh.md。Web 与桌面同一前端不同外壳Web 前端packages/web/只与 Server 的 HTTP/SSE 接口通信从不直接触碰文件系统或 SDK——这是它可以在浏览器里安全运行的前提。桌面 Apppackages/desktop/则更进一步内嵌 Server 内嵌 Web 前端双击即开、免登录、免终端且与 CLI 共享同一个~/.penguin/data数据根两种安装方式可无缝混用。Web 控制台左侧多会话列表 智能体/技能库/模型库/成本中心/评估中心五大导航右侧流式对话与工具执行折叠卡。为什么这样切边界三条设计原则单向依赖SDK 是唯一事实来源——Agent 循环、压缩、上下文组装只在penguin-core写一遍四个接口层零重复。数据独占Server 是单点写入者——所有状态文件经原子写packages/core/src/internal/atomic-write.ts落盘避免多进程互相踩坏数据。表现层无状态——Web 桌面只是 Server 的投影随时可关、可换升级前端不影响会话数据。快速选型我该用哪个接口你的场景推荐接口日常聊天、管理 Agent 与模型️ 桌面 App 或 Web服务器上无头跑批、接入 CI⌨️penguin server API在自己程序里嵌入 Agent 能力prismshadow/penguin-coreSDK让另一个 Agent 自动化操作本工具⌨️ CLIpenguin run等总结PenguinHarness 的架构精髓不在功能堆料而在克制——SDK 管怎么想Server 管怎么存CLI 管怎么驱动Web 管怎么看。四层边界清晰后无论嵌入宿主程序、无头部署还是多用户访问走的都是同一条经过打磨的 Agent 内核。想动手深入建议从 packages/docs/content/architecture.zh.md 与 README.md 开始。【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

K210人脸检测与识别实战:KPU底层调优与边缘部署全链路

K210人脸检测与识别实战:KPU底层调优与边缘部署全链路

/* 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 6:16:19 阅读更多 →
从0到1搭建AI内容生产流水线:架构设计与工程实践

从0到1搭建AI内容生产流水线:架构设计与工程实践

1. 先搞清楚“AI内容生产流水线”到底在说什么“从0到1搭建AI内容生产流水线”这个说法,最近一年在技术社区里出现的频率越来越高。很多人第一次听到会以为就是“用AI写文章”,但真正动手做过的人都知道,这两件事之间的差距,大概相…

2026/10/4 6:16:19 阅读更多 →
建筑学AI开题报告写作指南:从场地分析到技术路线一次讲清

建筑学AI开题报告写作指南:从场地分析到技术路线一次讲清

建筑学专业的开题报告比一般专业更"重":既要文字论述,又要设计前期分析图,设计类课题还要附场地调研。很多同学图做得漂亮,文字部分却逻辑混乱,开题答辩被评委连环追问"你的研究问题到底是什么"&a…

2026/10/4 6:16:19 阅读更多 →

最新新闻

海康VisionMaster上手开篇:从安装准备到搭建第一个视觉方案

海康VisionMaster上手开篇:从安装准备到搭建第一个视觉方案

/* 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 8:35:49 阅读更多 →
MR25H40CDF与STM32F415RG:SPI MRAM替代Flash的实战存储方案

MR25H40CDF与STM32F415RG:SPI MRAM替代Flash的实战存储方案

/* 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 8:35:49 阅读更多 →
签名检测数据集与YOLO训练实战:从解压到上线的完整指南

签名检测数据集与YOLO训练实战:从解压到上线的完整指南

/* 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 8:35:49 阅读更多 →
Excel只读设置全攻略:从无密码到加密保护一文搞懂

Excel只读设置全攻略:从无密码到加密保护一文搞懂

1. 为什么你需要"只读"这个功能1.1 只读不是"不能编辑",而是"防止误改"做办公室工作这么多年,我几乎每周都能碰到同事问我:Excel 只读怎么设?明明做了半天表,发给别人之后被改得面目全非…

2026/10/4 8:35:49 阅读更多 →
大规模预训练模型工程实录:从数据到checkpoint的12个关键切片

大规模预训练模型工程实录:从数据到checkpoint的12个关键切片

/* 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 8:35:49 阅读更多 →
会小汪从 2026 重庆(十一)车展现场,窥见国内汽车市场的双线博弈与行业抉择

会小汪从 2026 重庆(十一)车展现场,窥见国内汽车市场的双线博弈与行业抉择

一、展会概况:多元产品同台,动力路线共存2026 重庆十一车展,是国庆假期西南地区规模较大的综合性汽车展会。展会现场汇聚了自主品牌、合资品牌、进口品牌,展品矩阵覆盖纯电、插混、燃油越野、燃油家用轿车 / SUV 等全品类车型。 从…

2026/10/4 8:34:48 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* 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 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* 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 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* 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 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* 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 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* 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 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* 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 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/3 9:42:36 阅读更多 →