Skip to Content
智能体PenguinHarness

PenguinHarness

PenguinHarness 是 PrismShadow AI 团队推出的开源(Apache-2.0)、本地优先的智能体平台:一个带 Web 应用的服务器, 以及运行在其上的 penguin chat 命令。在 NeuroSquad 中,每张 Penguin 卡片都在自己的终端里运行真正的 penguin chat。

基于 PenguinHarness 0.2.13 及其 main 分支实测。

安装

安装 penguin 命令
npm install -g @prismshadow/penguin-cli

需要 Node 24 或更新版本。也可以使用 penguin.ooo  提供的安装脚本。NeuroSquad 的 Settings → Setup 可以替你执行 npm 安装。

添加你的模型

像平常一样在 Penguin 中设置提供方和模型——卡片会使用它们。卡片也可以改用 OpenRouter 或你自己的服务器。

添加 PenguinHarness 卡片

添加一张智能体卡片并选择 PenguinHarness。

卡片如何工作

NeuroSquad 为自己的数据目录运行自己的 Penguin 服务器,在第一张 Penguin 卡片启动时开启,在你退出时停止。 每张卡片都是一个独立的 Penguin 智能体(ns_<卡片>),拥有自己的钩子、MCP 服务器和说明。你的 Penguin 项目配置——你的模型和密钥——每次启动时都会复制进来;你自己的 ~/.penguin 从不被改写。

可用功能

  • 准确的状态。 卡片跟随服务器为其会话提供的状态流——工作中和已完成——由 NeuroSquad 钩子决定哪些调用需要你。 NeuroSquad 自己的工具、read_file 和子智能体无需询问即可运行;其他调用会等待 Penguin 自己的 ? Approve this tool call? [Y/n],通知会写明这次调用(PenguinHarness needs your permission: write_file: a.txt)。
  • 箭头。 NeuroSquad 的 MCP 服务器写在卡片的智能体里。Penguin 会为工具拍快照,所以 NeuroSquad 的全部工具一开始就提供, 由箭头在调用时决定;技能或已安装的 MCP 服务器需要卡片下次启动后生效。已安装的服务器每次调用前都会询问。
  • 卡片模式。 钩子拒绝 exec_command 和 input_command——Penguin 的 shell,也是它上网的唯一途径——危险模式下也一样。 参见卡片模式。
  • 危险模式无需重启。 开关打开时,钩子放行每次调用。参见危险模式。
  • 停止。 停止按钮、预算刹车和手机上的停止都使用 Penguin 自己的中止 API;聊天保持打开。
  • 会话。 重启后卡片继续同一段对话(--resume);被删除的会话会换成新会话。
  • 长时间会话。 上下文仪表、Compact(/compact)、速率限制提示、提示词队列、日志和交接。
  • 用量。 每次请求都从 Penguin 的 Trace 文件读取,子智能体单独标记,显示在用量与费用、 Run Stats 和 Agent Pulse 中。
  • 模型。 主智能体可以通过 agent_set_model 更换模型,或把对话迁到 Claude Code 再迁回来。OpenRouter 和你自己的服务器 经由 NeuroSquad 的本地中继——磁盘上没有密钥。

须知

  • 对话保存在 NeuroSquad 的 Penguin 目录中。 你自己运行 penguin chat --resume 不会列出它们;把 PENGUIN_HOME 指向该目录并加上 --agent-id ns_<卡片> 后就能看到。
  • 在卡片里添加的模型只保留到卡片下次启动——请在你自己的 Penguin 中添加。
  • 插件。 Caveman、记忆、Context7 和 Graphify 通过一个钩子为每一轮添加文字,而 Penguin 只在 0.2.13 之后的版本才会在每条提示词上运行它; 在 0.2.13 上,它们的工具仍可通过箭头使用。省令牌无法工作:Penguin 的钩子不能改写命令。
  • 用量栏位。 Penguin 把缓存创建并入输入、把推理并入输出,所以这两栏显示“未报告”;在 Claude 模型上价格因此略微偏低。
  • 卡片的 MCP 令牌保存在其智能体的配置中(Penguin 在那里无法从环境变量读取)。它只用于本机回环、每张卡片各不相同, 并在应用每次运行时更换。

PenguinHarness 卡片只在本机运行——不支持 WSL 或 SSH 工作区。