OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:kevin-luo/dsh-org-panel
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把 DeepSeek Harness 变成一家公司:员工长期存在、各自成长,任务会自动组队,Web / 微信 / QQ / 飞书进入同一套协作运行时。
dsh-org-panel 2.0 的核心不是“多几个 Agent 卡片”,而是一套 Persistent Cyber Company Runtime。
每位数字员工都有自己的长期记忆、技能证据、工作履历、插件绑定、模型绑定和成长轨迹;公司任务由 Work Orchestrator 自动选择合适员工组成临时或持续工作组,员工之间可以直接协作、互相 @ 拉同事入场。秘书只是总裁办的一名普通员工,只会在行政、日程、会议安排等任务命中她的岗位时参与。
本项目当前使用 PolyForm Noncommercial License 1.0.0。
完整条款见 LICENSE。本项目源码公开,但由于包含非商业限制,不属于 OSI 定义下的开源软件许可。
Web / 微信 / QQ / 飞书 / 其他 DSH IM
│
▼
Work Orchestrator
任务理解 / 自动组队
显式 @ / 动态邀请
│
▼
Persistent WorkSession
来源 / 会话 / 成员 / 历史交付
│
┌─────────┼─────────┐
▼ ▼ ▼
小刘 小画 阿明 ...
程序员 设计师 产品经理
│ │ │
└─────────┼─────────┘
▼
Employee Runtime
│
┌─────────────┼─────────────┐
▼ ▼ ▼
长期记忆 SkillEvidence TaskHistory
插件/工具 自动成长 真实模型路由
│
▼
evolution.json
DSH root session 只承担不可见的执行根职责,不代表任何员工,也不会以“主 Agent”身份向用户汇报。
每位员工独立持久化:
SkillEvidence刷新页面或重启面板不会把员工重置成一份新 Prompt。
老板可以直接输入:
帮我重新设计 App 首页,同时评估实现成本和后续推广。
Work Orchestrator 会根据岗位和任务语义自动拉合适的员工,例如产品、视觉、开发、增长组成工作组。明确 @小刘 会锁定小刘,复杂任务仍可以补充相关同事;员工公开回复里写 @小麦 帮我评估传播策略,小麦会动态加入同一个工作组。
员工看到同一份原始任务以及前序同事真实公开输出,可以补充、质疑和接棒。业务输出直接来自具体员工,不经过秘书二次转述。
同一个 Web / 微信 / QQ / 飞书会话会复用稳定工作组上下文:
goalcurrentTask第二轮任务能看到第一轮真实协作结果,重启 Host 后仍可恢复。
文本模型不再只是“配置里有个名字”。2.0 会读取 DSH LlmRuntime.listProviders() 的真实 provider route,并在启动员工子代理时传入:
agentOptions: {
provider: "deepseek",
model: "deepseek-v3"
}
配置模型时需要指定:
公司 Provider ID coder-main
DSH Provider Route deepseek
Model deepseek-v3
员工显式绑定优先,其次按公司文本模型顺序兜底。DSH route 不存在时绑定会如实标记为 missing,员工继续继承当前 DSH 默认模型,不会假装专属模型已经生效。
视觉 / 生图 / 视频 / Embedding 等公司能力继续由 Model Gateway 管理。
技能不会因为 Agent 自述“我学会了”就升级。
真实任务完成
→ 观测真实工具调用
→ SkillEvidence
→ 重新计算技能等级
→ 真正跨级才发 skill.updated
→ 成长轨迹 / 办公室升级反馈
同一任务同一技能不会重复刷证据;partial / blocked 不猜成败;找不到可信技能时不会凭空创建高级技能。
员工发现能力缺口时优先扫描公司已有能力,再进入 DSH 插件生态。插件安装链为:
能力缺口
→ 搜索候选插件
→ 安装申请
→ 人类审批
→ 真实安装
→ Capability Scan
→ Smoke Test
→ PluginBinding / SkillEvidence
LLM 无法给自己的安装申请批准。URL、tarball、git+ssh:、file:、本地路径和危险 shell 形式会被拒绝。
推荐安装 @xmanrui/dsh-im 作为通讯基础设施:
dsh plugin --profile web add @xmanrui/dsh-im
赛博公司通过 DSH RPC 复用它的微信 / QQ / 飞书等渠道能力。微信、QQ、飞书的扫码或授权状态会直接进入“设置 → 通讯”。
外部消息进入赛博公司后仍走同一个 Work Orchestrator,所以:
微信消息
→ 自动识别任务
→ 产品 + 设计 + 开发动态组队
→ 各自真实执行
→ 各自积累履历 / 技能证据
→ 员工原话回到微信
内置 IM Runtime 保留 transport / ACL / fail-closed 权限能力,但新的业务协作不会再维护另一套员工路由逻辑。
办公室是 Runtime 的游戏化投影,不生成随机“忙碌”。
员工档案包含概览、成长、技能、记忆、插件、履历;长期目标是让个人空间里的设备、证书和工作台都对应真实插件 / 技能 / 模型资产。
“设置”页只保留两类内容:真正可操作的设置,或者明确标注为只读状态的数据。
当前包括:
模型支持新增、编辑、删除、启停、默认顺序和员工绑定。文本模型可选择 Host 当前真实注册的 DSH Provider Route,不需要手改 company.json。
npm install dsh-org-panel
最小 Cordis 挂载:
- id: org-panel
name: dsh-org-panel
config:
tabLabel: 赛博公司
companyName: 赛博公司 · AI 员工总部
完整示例见 cordis.example.yml,配置说明见 docs/CONFIG.md。
默认位于:
~/.dsh-org-panel/evolution.json 员工记忆 / 技能 / 证据 / 履历 / 绑定
~/.dsh-org-panel/company.json 公司配置 / 模型供应商
~/.dsh-org-panel/work-sessions.json 跨渠道持久工作组
~/.dsh-org-panel/plugin-approvals.json 插件审批台账
~/.dsh-org-panel/secrets/... 本地密钥材料
~/.dsh-org-panel/attachments/ 外部消息附件
evolution.json 与 work-sessions.json 解析损坏时都采用 fail-closed:先保留原文备份,再拒绝静默覆盖历史。
模型和通讯配置中的密钥只接受 env:XXX / secret:XXX 引用,明文密钥拒绝落盘。
外部 IM 权限默认收紧:未知用户、未知会话和只读渠道不会被隐式提权。当前 DSH 子代理接口没有提供通用的工具白名单注入能力,因此 read-only 主要依赖“权限提示 + 对真实工具调用的事后审计 + 拦截对外回复 + blocked 记录”;如果写工具已经在 child 内执行,宿主无法倒转已经发生的副作用,这个边界不会在 UI 里伪装成预防式沙箱。
/org-panel events/since 增量轮询,不是服务器 push;页面隐藏时停止轮询并带退避。@xmanrui/dsh-im 是独立 DSH 插件;未安装时扫码渠道会明确显示不可用,不把第三方插件硬绑成 package dependency。PR 和 main 都必须通过:
npm ci
npm audit --audit-level=high
npm run typecheck
npm run build
node --test tests/*.test.mjs
npm run size-check
当前发布版本:2.0.0。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: multi-agent、subagent、visualization、workflow。