dsh-ui-agents-pixe
Đã xác minhdsh-ui-agents-pixe · v1.0.16 · MIT · Giao diện web
给 DeepSeek Harness Web 主窗口加「工作角色」页签 + 对话区像素人办公室浮层(The Agency en / agency-agents-zh 255+ 角色,29 预设团队)。一条命令安装,不改 dsh 源码。
Cài đặt
dsh plugin add dsh-ui-agents-pixe Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Thẻ
Readme
dsh-ui-agents-pixe
给 DeepSeek Harness 的 Web 主窗口加「工作角色」页签 + 对话区「像素办公室」浮层——255+ 位专家变成会走会聊的像素小人。一条命令安装,不改 dsh 源码。
⚡ 安装
官方 DSH CLI 一条命令安装:
dsh plugin --profile web add dsh-ui-agents-pixe
⚠️ 请一律用
dsh plugin命令,不要用npx @deepseek-ai/dsh——npx 对包名每次都会重新下载一份 dsh,装插件不该重装 dsh。包内
dsh.bundle.patch声明了cordis.patch.yml,dsh plugin add后插件行自动挂载,无需手改任何 profile 补丁文件。首次安装后重启 dsh web 生效(之后改 UI 均为热更新)。
安装完成后:聊天页出现「工作角色」页签,对话区出现可折叠的像素办公室浮层;模型选择器、会话模型完全不受影响。
🖥 推荐:dsh-desktop 桌面壳
想要双击即用的完整桌面体验(自动带起 dsh web + 本插件效果),推荐桌面壳 dsh-desktop——Tauri 打包的 DeepSeek Harness 桌面工作台,开箱即用。
也可以先装可视化插件市场,在设置界面里浏览、搜索、一键安装本插件:
dsh plugin --profile web add dshmarket
✨ 功能
- 🧑💼 工作角色页签:The Agency(en 255)+ agency-agents-zh(zh 253)= 508 张完整角色卡内置随包分发,搜索 / 中英切换 / 分部分类选人。
- 🏢 像素办公室:
shell.overlay浮层,Canvas 2D 程序化像素小人(站立 / 打字 / 踱步 + 四态徽章),可拖动、折叠、缩放,选人即入列;闲置与工作中的人都会聊天,台词可接 AI。 - 🛠 agents_pixe_roles 工具:宿主半边注册,agent 按角色名取回完整角色卡(定位 + 规则 + 清单 + 语气),以「某个角色/团队身份回应」时自动调用。
- 📦 持久客户端插件:npm 双面包 + 组合补丁层,包内自挂载(
dsh.bundle.patch),安装即生效,重启不丢。
界面预览(真实抓屏)
📸 全部真实抓屏/录屏。
🧑💼 工作角色页签
🏢 像素办公室浮层
📇 点击像素人 → 查看完整角色卡
⚙️ 设置 → 像素办公室(角色工具 / 取卡粒度)
更多完整桌面壳效果(对话主界面等)见 dsh-desktop 的 README。
AI 聊天(开关 + 可插拔接口)
像素人的聊天台词可接入 AI,含内置 AI 与一个外部接口,由页签/浮层顶部的 🤖 AI 开关统一控制:
- 开关关:走内置罐头问候(含打破第四面墙的问答彩蛋)。
- 开关开 + 未接外部:走内置 AI——客户端 fetch 宿主端点
/agents-pixe/chat,用 dsh 自己配好的模型(ctx.llm,第一个 provider/model)按角色 + 实时状态生成一句 20 字内的中文闲聊;模型失败/空则回退实时活动台词 → 罐头。 - 开关开 + 已接外部:优先走外部接口,未返回/返回空时回退内置。
外部接口:在页面里赋值一个异步函数即可接管台词:
window.__AGENTS_PIXE_CHAT__ = async (req) => '你好,人类';
// req = { roleName, roleKey, emoji, state, activity, sessionId, isLeader }
// state ∈ 'idle' | 'working' | 'done';返回 string(展示)或 null/空(回退内置)
编程式控制开关/接口:
window.__AGENTS_PIXE_CHAT_API__.setEnabled(true); // 开/关 AI 聊天
window.__AGENTS_PIXE_CHAT_API__.setProvider(async (req) => '…'); // 设外部接口
window.__AGENTS_PIXE_CHAT_API__.isOn(); // 当前开关状态
实现说明:持久
dsh.client客户端插件没有「客户端→宿主」私有 RPC,但宿主半边(lib/index.js)可注入llm+webServer,注册GET /agents-pixe/chat精确路由生成台词——复用 dsh 已配置的模型,无需额外密钥、无 CORS、不改 dsh 源码。
🆕 更新日志(v1.0.2 → v1.0.3)
修复:设置 → 像素办公室「角色工具」开关点击无反应
问题根因有两层,均已修复:
- 客户端
settingsScope.bind在分区渲染函数里每次调用(每次渲染新建 controller → 订阅与写入的 scope 不是同一个)。改为在apply()中只绑定一次(参考dsh-ui-three-body的写法),开关点击立即可见。 - 宿主半边
inject数组缺少settings服务,导致settings.register('agents-pixe', …)不可用/时序不稳,namespace 从未在宿主侧生效——客户端describe()读不到、写入被拒。已补上'settings'声明。
新增:设置分区统一管控「🤖 像素人 AI 闲聊」
工作角色页签与像素办公室浮层顶部的 AI 按钮已移除,AI 相关配置统一收拢到设置 → 像素办公室分区,一个入口管全部:
- AI 聊天开关(默认关,开启前有「会消耗 token,确认开启?」)
- 台词频率(低 / 中 / 高)
- 思考模式(开启走带思考链的模型)
变更:像素办公室标题栏按钮全部放大
选人 / 缩小 / 放大 / 设置 / 折叠按钮整体加大(padding 与字号提升),悬浮窗操作更清晰易点,不再看不清。
零成本确认
关闭全部配置时(角色工具 + AI 闲聊都关)为纯本地零 token 消耗:工具不注册、提示段不注入、/agents-pixe/stats 返回 calls:0, tokens:0。开启后依旧受「AI 模式硬门 + 每小时 60 次 / 60K token 预算」兜底。
Token 管控(省着花)
角色工具:默认关闭,配置分区启用
- 默认零消耗:
agents_pixe_roles/agents_pixe_team工具与提示段默认不注册——不开开关,每轮模型调用不背任何角色工具成本。 - 配置分区启用:设置 → 像素办公室 顶层分区,打开「角色工具」开关才注册工具(动态注入/移除,无需重启)。
- 完整卡默认(v1.0.7 起):
agents_pixe_roles默认返回完整角色卡(1:1 上游 508 张,定位/使命/关键规则/交付物/工作流程/沟通风格全部章节);总量上限 100K 字符,超出跳过后续角色并说明。 - 按需省 token:设置 → 像素办公室 → 选「取卡粒度」——完整卡 / 仅规则 / 仅交付物(按钮,默认完整卡)——这是
agents_pixe_roles的全局默认,不用每次口头交代(工具仍可被sections=rules/deliverables单次覆盖)。 - 真·团队编排(v1.0.7 新增):
agents_pixe_team——领袖拆解任务 → 每位成员开独立子代理(种子=完整角色卡,上下文互不挤占,provider spawn/fork)并行执行 → 领袖汇总。工作角色页签有「🚀 一键编排」按钮(最稳,走 dsh setDraft),办公室选人面板也有(有反馈),一点就把当前团队送进编排指令,补一句任务即可发送。预设 29 团队名直传或角色名列表;成员上限默认 4、最大 6。成本 = N+2 次子代理调用,深度任务再用。
🧠 智子内核(v1.0.9 新增):system prompt 注入
设置 → 像素办公室 → **「开启内核模式」**开关 + 档位/语气/自称/称呼。开启后把「智子内核」注入每次对话的 system prompt(第一性原理 + 五步纲领:问清→方案→章程→执行→交付),团队/角色协作用上它。
- 档位:
minimal精简 /balanced均衡 /full完整(含示例),默认 balanced。 - 语气:傲慢 / 温和 / 热忱;语言:中 / 英;自称 / 称呼默认「本尊 / 主上」。
- 内核覆盖:设置里粘贴自定义文本(优先级最高,
{{self}}/{{master}}会替换)。 - ⚠️ 开启即 token 成本(每轮 ~200-800 字进上下文),不用时可关。
- 像素人点击查看角色卡详情(v1.0.11 新增):办公室浮层里,左键点击任一像素人即可打开该角色的完整角色卡(定位/使命/关键规则/交付物/沟通风格/工作流程全部章节,1:1 上游内容),分段展示、可滚动,点 ✕ 关闭。
- token 实时可见:办公室浮层标题栏实时显示当前会话全局计量——
N 轮 · M 步 | 缓存命中 X% | 输入↑xx.xK | 输出↓xx.xK(来自 dsh 真实 provider 用量的tokenUsage/sessionStats投影,非仅插件闲聊)。
🧠 内核(推荐 dsh-ui-three-body)
本插件不自带智子内核,也不注入 system prompt。想要「第一性原理 + 五步纲领(问清→方案→章程→执行→交付)」式的内核,请用专门的内核插件:
- 推荐插件:dsh-ui-three-body(「驯兽师内核」)——
dsh plugin --profile web add dsh-ui-three-body。它把内核注入每次对话的 system prompt,左上角悬浮萌宠做开关,设置面板可配内核档位(minimal/balanced/full × 中/英 × 傲慢/温和/热忱)与人设自称/称呼。与本插件同作者,可一并安装。
说明:本插件聚焦「角色页签 + 像素办公室 + 角色/团队工具」,内核交给专门的 three-body 插件,职责单一、互不干扰。
编排内核(团队协作)
上游 agency-agents(en/zh)没有一份项目级共享纲领——每个角色卡自带的 frontmatter + 章节(Identity & Memory / Core Mission / Critical Rules / Communication Style / Deliverables)就是角色的「内核」。本插件的团队协作另有一套编排内核,贯穿
agents_pixe_team的三段式:
- 领袖拆解:唯一持完整卡 + 团队名册的调度者;输出
{assignments:[{name,assignment}], synthesis_focus}的 JSON 分工。拆分失败自动退化为「各成员按自身专业并行处理同一任务」。 - 成员独立执行:每位成员一个独立子代理,种子 = 该角色完整角色卡——因此 30K 字全卡第一次真正用上(上下文互不挤占),成员只在自身专业内对
assignment负责,彼此不吞上下文。 - 领袖汇总:收齐各成员产出后再合成为最终报告(结论先行、标注关键分歧、给出下一步行动),
synthesis_focus指定汇总重点。
成本与质量权衡(编排内核的取舍):完整卡保真度最高、最耗 token;sections=rules/deliverables 取单章节是质量/成本的中间档;agents_pixe_team 用 N+2 次子代理换真并行闭环。简单问题不套团队,深度任务才编排。
AI 闲聊:同样省着花
- 闲聊走便宜快模型:默认自动路由到
flash/mini/lite/free/small等便宜模型(可手动指定);reasoningEffort: off关思考、maxTokens: 120封顶输出。 - AI 模式硬门:未开启 AI 模式时,服务端凭
aiEnabled授权标记直接拒绝调用、零 token 消耗(不依赖客户端自觉);开启后才走下面的预算管控。 - 滚动小时预算:每小时最多 60 次真实调用、估算 token 上限 60K(字符/2 粗估);超出直接回退罐头台词,绝不静默烧 token。
- 台词去重缓存:相同请求 45s 内命中缓存不重复调用(重复帧/重复角色)。
- 输入硬化:接话上下文截断 200 字符、角色描述 120 字符。
- 默认低频:AI 台词频率默认
low(180s/角色、全局 1 并发);开启 AI 前有「会消耗 token,确认开启?」弹窗。 - 用量透明:
/agents-pixe/stats返回调用数/失败/缓存命中/预算拦截/估算 token,办公室浮层实时显示「已调用 N/60 次 · 约 M token」。
角色库已内置
agency-agents 全量角色卡(en 255 + zh 253 = 508 张)固化进本插件,随包分发,换环境不丢:
lib/roles.json:紧凑目录(name/emoji/color/desc),冻结进 client bundle,UI 直接用。lib/roles-full.json:508 张完整角色卡(定位 + 规则 + 清单 + 语气),宿主工具数据源。lib/index.js(宿主半边):注册agents_pixe_roles工具,agent 按角色名取回完整卡。
唯一不随包走的是「你手动保存的自定义团队」(本机 localStorage)与「AI 生成的自定义角色」(~/.dsh/agents-pixe/custom-roles.json)。
目录结构
dsh-ui-agents-pixe/
├── package.json # dsh.client 声明 + dsh.bundle.patch 自挂载
├── cordis.patch.yml # 组合补丁行(- insert: ui-agents-pixe)
├── assets/ # README 截图/录屏(demo.gif + 真实抓屏)
├── lib/
│ ├── index.js # node 半边:agents_pixe_roles 工具 + /agents-pixe/* 路由
│ ├── client.js # browser 半边(构建产物,自包含 __ModuleLoader__.load)
│ ├── roles.json # 角色目录(生成物,冻结进 client.js)
│ └── roles-full.json # 508 张完整角色卡(宿主工具数据源)
├── src/
│ ├── client.prelude.js # bundle 头(require react + var ROLES_DATA =)
│ └── client.main.js # 主体逻辑(像素引擎 + 页签 + 浮层)
├── scripts/
│ ├── gen-roles.mjs # 从 en/zh 角色库生成 roles.json + roles-full.json
│ └── build-client.mjs # prelude + roles.json + main → lib/client.js
└── test/
└── smoke.test.mjs # 发布前冒烟测试(node --test)
构建 / 测试 / 发布
# 生成角色数据(缺失自动从上游克隆)→ 生成 lib/client.js
node scripts/gen-roles.mjs
node scripts/build-client.mjs
# 冒烟测试
node --test
# 发布(需已 npm login;版本号在 package.json)
npm publish
gen-roles.mjs读 en(~/.agents/skills/agency-agents/references/或AGENTS_PIXE_EN_ROOT)与 zh(%TEMP%\dsh-analysis\agency-agents-zh或AGENTS_PIXE_ZH_ROOT);本地缺失自动git clone上游(en: github.com/msitarzewski/agency-agents,zh: github.com/jnMetaCode/agency-agents-zh)。build-client.mjs把 prelude + roles.json + main 拼成自包含 bundle,无任何构建工具依赖。- peerDependencies(
@deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm)由 dsh 运行时依赖闭包提供,插件不重复安装。
与桌面壳(dsh-desktop)的关系
本插件是独立 npm 包,dsh-desktop 不再内置它;按需安装即可:
dsh plugin --profile web add dsh-ui-agents-pixe
待办 / 后续开发方向
已落地:角色卡完整化(sections=rules/deliverables)、一键团队编排(agents_pixe_team)、像素人点击查看角色卡详情、tok 实时计量、取卡配方按钮。
数据与持久化
- 保存的自定义团队跨环境不丢(当前在 localStorage;可选导出/导入 JSON 或宿主侧持久化)。
- 自定义角色表单编辑器:在 UI 里增删改角色卡字段(当前仅 AI 生成 + 导入 md),含角色卡格式校验。
角色工具(agent 侧)
- 按部门 / 技能 / 关键词检索角色(当前
agents_pixe_roles只按名查)。 - 团队编排多轮协作:领袖收到成员产出后还能再派下一轮/驳回重做(当前一轮到底)。
- 成员间传递中间产物 + 依赖排序(A 的产出喂给 B),支持超时 / 断点续跑。
- 编排 provider 混合:不同成员指定不同后端(spawn / fork / codex 等)。
像素办公室(表现层)
- 「+选人」弹出面板右侧留空:推荐团队区右侧空白待利用(可放角色预览 / 搜索框 / 最近使用)。
- 角色卡详情增强:详情里直接「加入团队」「设为领袖」「复制角色卡」快捷键。
- 更多状态动画:喝咖啡 / 开会 / 庆祝等;agent 完成任务时小人举手提示。
- 场景与皮肤:多背景(会议室 / 茶水间)、白天黑夜主题、像素人换装。
- 精确运行态:目前靠会话
running信号;精确到「每个角色各自的工具调用」需接真实事件流(HookProvider 形态)。 - 大团队性能:50+ 人同屏时 Canvas 脏矩形 / 离屏画布优化。
AI 闲聊
- 台词注入角色性格:把角色卡「语气」段落喂给
/agents-pixe/chat,按角色风格说话。 - 台词多语言:跟随 dsh UI locale 输出中/英台词。
工程化
- 设置分区文案 i18n(当前硬编码中文)。
- 客户端 bundle 自动化冒烟测试(当前测试仅覆盖宿主半边)。
- CI:发布前自动跑
gen-roles数据一致性校验(角色库上游更新时 508 张卡数量比对)。