dsh-onecompany
一人公司(One-Person Company):为 DeepSeek Harness 提供多 agent 公司编排——员工/CEO、项目群与大厅会话、任务与信箱、审批流、定时排班、资料库 ACL、工作日志与 token 统计 适合需要构建复杂多智能体协同、定时排班和审批流的管理任务。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xiazhi88/dsh-onecompanyREADME
Read the full README ↗配置(cordis.patch.yml)
- insert:
- id: onecompany
name: dsh-onecompany
config:
companyRoot: '' # 公司根目录;空 = $DSH_HOME/onecompany
companyName: 一人公司
tickMs: 30000 # 调度/投递周期
maxResidentAgents: 8 # 常驻员工上限
defaultDailyTokenCap: 5000000
approvalsRequired: [hire, spend, strategy, danger]
timeZone: Asia/Shanghai
目录布局:/employees//(工位,含 AGENTS.md)、/library/(公司资料库)、/projects//(项目文件)。
v2:原生 dsh 做主交互面(面板退为配置台)
新的会话地图
| 会话 | 谁在驱动 | 作用 |
|---|---|---|
| 「一人公司 · 大厅」 | CEO 司南 | 董事会指令入口 + 全公司简报/周报 |
| 「项目名 · 项目群」 | CEO 的项目实例 | 该项目一切汇报与派活(汇报默认落这里) |
| 「员工名 · 工位」 | 员工本人 | 任务帧落点 + 执行现场(偏审计) |
- 汇报路由:
company_report按任务的项目归属归口。投递模式由reportDelivery决定:digest(默认):投到项目群/大厅,由 CEO 转成给董事会的易读简报(一轮模型调用);record:不叫醒任何 agent——原文追加进项目档案的《汇报流水》,同时进面板未读信箱(零 token、零回声)。 审批/阻塞类仍会正常送达需要裁决的人。
- 派活三条路:① 任意会话里
@员工名(@是共享多分组触发器,与原生文件引用、子会话并列,name: onecompany唯一)→ 模型调company_call;②/call(命令直达,不经模型);③/company assign。 - 面板跳转:组织页「打开工位」、资料库项目页「打开项目群」→ 直接切到原生会话(目标工作区未加载时会先连接再打开)。
- 固定会话标题:工位/项目群/大厅创建即改名(
ctx.sessionTitle.rename)。 - 工作区归入:公司会话自动挂到 cwd 对应工作区(否则侧栏不可见、无法跳转);公司自建的空工作区会自动命名(只改「仅含我们这一个会话」的工作区,绝不动用户已有工作区)。
- 开场消息:新建会话后发一条「就绪/到岗确认」,让它跑出首个轮次——没有轮次的会话是 blank,会被客户端从侧栏隐藏(
SessionSummary.blank)。可用kickoffOnCreate: false关闭。 - B 路线:员工提示词要求「重活开子会话」,worklog 按
parentSession血缘把子会话 token/工时归集到员工。 - 员工 preset:组合时挂载部署默认 preset(缺省
standard),员工因此有 bash/fs/子 agent/压缩(v1 漏挂导致「员工无 shell」的教训)。
新增配置项:
autoProvision: true # 启动时自动补建 CEO 与项目群会话
kickoffOnCreate: true # 新建会话后发开场消息(让会话出现在侧栏)
reportDelivery: record # digest = CEO 转简报;record = 只归档 + 面板未读(不叫醒 agent)