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 工作区。