@多个AI角色独立发言,主持人收敛出共识与行动建议
28.3/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add vuchisu069-source/dsh-round-table该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 78 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
- 写入本地文件index.mjs:105
appendFileSync('/tmp/round-table-persist.log', `${new Date().toISOString()} apply dshHomePath=${JSON.stringify(harnessHome)} statePath=${stateFile}\n` - 写入本地文件index.mjs:170
appendFileSync('/tmp/round-table-persist.log', `${new Date().toISOString()} ${line}\n`) - 发起网络请求lib/client.js:71
const res = await fetch(STATE_PATH, { headers: { accept: "application/json" } }); - 发起网络请求lib/client.js:96
await fetch(path, { - 发起网络请求lib/client.js:428
const res = await fetch(STATE_PATH, { headers: { accept: "application/json" } }); - 读取本地文件lib/src/persistence.mjs:23
const raw = JSON.parse(readFileSync(file, 'utf8')) - 写入本地文件lib/src/persistence.mjs:37
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件lib/src/persistence.mjs:39
writeFileSync(tmp, JSON.stringify(state), 'utf8') - 写入本地文件lib/src/persistence.mjs:40
renameSync(tmp, file) - 写入本地文件lib/src/persistence.mjs:43
writeFileSync('/tmp/round-table-persist.log', `${new Date().toISOString()} saveState FAIL file=${file} err=${String(error?.message ?? error)}\n`, { fl - 发起网络请求lib/client/index.mjs:58
const res = await fetch(STATE_PATH, { headers: { accept: 'application/json' } }) - 发起网络请求lib/client/index.mjs:76
await fetch(path, { - 发起网络请求lib/client/index.mjs:414
const res = await fetch(STATE_PATH, { headers: { accept: 'application/json' } })
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 多AI角色同房研讨
- 主持人收敛共识建议
- 三种发言模式
README
由 DeepSeek 最新模型翻译生成round-table · 圆桌
DSH 角色扮演与多角色讨论插件(@ 提及范式)在 DSH 左侧边栏创建带形象的 AI 角色,然后在对话输入框 @角色名 直接召唤:单角色 = 该角色以独立人格回答;多角色 = 各角色以独立会话真实讨论一轮,最后主持人收敛出共识 / 分歧 / 行动建议。
目录
- 这是什么
- 安装
- 功能截图
- 快速上手
- 能力面
- 工作机制
- 典型场景
- 配置
- 开发
- License
这是什么
round-table 是 DSH(DeepSeek Harness)的官方 bundle 格式插件,把「AI 角色」引入你的日常对话:
1. 创建角色:左侧边栏常驻「圆桌成员」——你可以创建任意数量的 AI 角色,每个角色有独立的形象(4 种形状 × 10 种表情 × 8 种配色)、System Prompt、性格参数、以及可选的 SOUL.md 人设文档(Hermes 范式)。
2. @ 召唤:在 DSH 主输入框输入 @,弹出角色候选(带形象图标);选中即插入 @角色名,发送后模型完全以该角色的身份、第一人称回答。
展开完整文档(README 剩余 1 节)
round-table · 圆桌 DSH 角色扮演与多角色讨论插件(@ 提及范式)在 DSH 左侧边栏创建带形象的 AI 角色,然后在对话输入框 @角色名 直接召唤:单角色 = 该角色以独立人格回答;多角色 = 各角色以独立会话真实讨论一轮,最后主持人收敛出共识 / 分歧 / 行动建议。 目录 - 这是什么 - 安装 - 功能截图 - 快速上手 - 能力面 - 工作机制 - 典型场景 - 配置 - 开发 - License 这是什么 round-table 是 DSH(DeepSeek Harness)的官方 bundle 格式插件,把「AI 角色」引入你的日常对话: 1. 创建角色:左侧边栏常驻「圆桌成员」——你可以创建任意数量的 AI 角色,每个角色有独立的形象(4 种形状 × 10 种表情 × 8 种配色)、System Prompt、性格参数、以及可选的 SOUL.md 人设文档(Hermes 范式)。 2. @ 召唤:在 DSH 主输入框输入 @,弹出角色候选(带形象图标);选中即插入 @角色名,发送后模型完全以该角色的身份、第一人称回答。 3. 真·多角色讨论:@架构师 @产品经理 讨论xxx —— 不再是"一个模型分饰两角",而是每个角色以独立的 Agent 会话真实推理(架构师先发言,产品经理拿到架构师的真实输出后独立回应),最后主持人收敛出共识点 / 分歧点 / 行动建议。 4. 工具能力:角色 @ 时可以使用 DSH 宿主自带的全部工具(读文件、搜索、执行命令等)——让"架构师"真的去读你项目的代码再给方案。 相比传统"房间 / 多方群聊"形态,@ 范式把角色直接织入日常对话流:不用切面板、不用进房间,想到谁就 @ 谁,成本更低、更自然。 安装 官方 bundle 插件 格式(仓库根 package.json 的 dsh.bundle + dsh.client)。经官方 profile 管理: dsh plugin --profile web add "github:vuchisu069-source/dsh-round-table#main" 或本地目录:dsh plugin --profile web add 装完重启 web(bundle 层在启动时合成)。重启后左侧边栏底部出现「圆桌成员」区块。 功能截图 多角色讨论结果:@架构师 @产品经理 一句话:导出功能该不该做? 主会话快速确认 → 架构师、产品经理各自独立发言(互不知晓对方内容,真实推理)→ 主持人收敛出结构化结论(共识 / 分歧 / 行动建议): 多角色讨论 @ 候选:主输入框输入 @ 弹出角色候选(emoji 形象 + 名称 + 人设摘要),选中即插入 @角色名: @ 候选菜单 New Agent 模态:形象(形状/表情/颜色)+ 名称 / Title / 描述 / System Prompt / 性格参数 / Advanced 折叠区(SOUL.md 人设文档——留空则自动从名称/描述合成,@ 时注入): New Agent 编辑角色:角色卡片 ⋯ 打开编辑模态——保留原 id 更新,底部带删除按钮(确认后删除)与 SOUL 编辑: 编辑角色 快速上手 | 你做什么 | 发生什么 | | 左栏「+ 新建角色」 | 打开 New Agent 模态:选形象(形状/表情/颜色)+ 填名称/Title/描述/System Prompt/性格 + Advanced(SOUL.md) | | 左栏点角色卡片 | 自动把 @角色名 插入主输入框(便捷召唤) | | 左栏角色卡片 ⋯ | 编辑角色(含 SOUL、删除) | | 输入框输入 @ | 弹出角色候选(官方输入管线),选中插入 @角色名 | | 发 @架构师 帮我看看 | 主会话以架构师身份回答;可调用 DSH 自带工具(读文件/搜索/执行命令) | | 发 @架构师 @产品经理 讨论xxx | 真·多角色讨论:各角色独立会话各答一轮 → 主持人收敛出共识/分歧/行动建议 | | @ 角色不回复? | 检查角色名称是否与候选一致(@ 按名称精确匹配);讨论有 90s/角色 与 120s 整体超时保护 | 单角色 @ 示例 你:@架构师 看看这个项目的 lib/src 结构,评估一下分层是否合理架构师:读了 lib/src 后,我的评估是……(角色卡 + SOUL + 工具读码) 多角色讨论示例(一次调用的完整链路) 你:@架构师 @产品经理 一句话:导出功能该不该做? 主会话:已收到,各角色独立讨论进行中,结果稍后汇总。 架构师(独立会话):该做,但前提是明确导出规模与格式约束…… 产品经理(独立会话):该做,但先别谈架构,先用数据定边界:谁在导、导多少、拿去干什么…… 主持人:共识点 3 条 / 分歧点 2 条 / 行动建议 3 条(结构化收敛) 多角色讨论中,各角色是串行接力:A 的真实输出作为 B 的上下文,B 独立推理后再回应——观点的分岔与交锋是真实的,不是同一个模型"编两段"。 能力面 | 能力 | 说明 | | 角色库 | 用户自建角色(形象 / System Prompt / 性格 / SOUL),跨会话复用,持久化到 ~/.dsh/data/round-table/state.json | | 形象系统 | 4 形状 × 10 表情 × 8 配色,左栏卡片、@ 候选、New Agent 模态统一使用 | | SOUL.md | 角色人设文档(Hermes 范式):@ 时注入角色卡,2000 字上限截断防长文档烧 token;留空自动合成 | | @ 提及 | 官方输入触发管线(ctx.inputTriggers):输入 @ 弹候选,选中插入 @角色名,点击角色卡片也可插入 | | 单角色扮演 | 主会话以该角色身份回答(第一人称、不再以通用助手身份) | | 真·多角色讨论 | 各角色独立 Agent 会话串行接力(A 输出 → B 上下文),仅一轮防死循环;主持人收敛共识/分歧/行动 | | 工具能力 | 角色 @ 时可使用 DSH 宿主全部工具(读文件/搜索/执行命令)——角色能真读代码再回答 | | 纯文本护栏(多角色协调阶段) | 多角色讨论时主会话等待阶段禁用工具(防 Deep diving 烧 token);角色独立会话与单角色不受限 | | 成本控制 | 讨论 90s/角色 + 120s 整体超时;SOUL 截断;协调等待阶段无工具 | | 持久化 | 角色存 ~/.dsh/data/round-table/state.json(原子写,跨重启保留);角色独立会话由 DSH 持久化 | 工作机制 架构总览 ┌─────────────────────── 浏览器(client half)───────────────────────┐ │ 左栏「圆桌成员」section │ @ 输入触发管线(官方 ctx.inputTriggers) │ │ ├ 角色卡片(avatar/⋯) │ └ 注册 @ source:「圆桌角色」 │ │ ├ + 新建角色(模态) │ candidates() → 角色候选(实时拉取) │ │ └ 点击卡片 → 插入 @角色名 │ onPick() → 插入字面 @角色名 │ └───────────────────────────────────────────────────────────────────┘ │ /round-table/state(轮询 + SSE 同步) ▼ ┌─────────────────────── 宿主(Node half,index.mjs)────────────────┐ │ 角色账本(state.json) │ │ session/event:检测主会话 user/message 中的 @角色名 │ │ ├ 单角色 → system-prompt/assemble 注入扮演指令(+工具放开) │ │ └ 多角色 → ① assemble 注入协调等待(tools 清空,防 Deep diving) │ │ ② 驱动角色独立会话(resume/create + followup,串行接力) │ │ ③ 全部回复后 followup 主会话 → 主持人收敛 │ └───────────────────────────────────────────────────────────────────┘ 关键机制(官方 API) | 机制 | 说明 | | ctx.inputTriggers.registerSource | 浏览器端向官方 @ 管线注册「圆桌角色」候选源(trigger: @) | | system-prompt/assemble waterfall | AssembleContext.scope 即 agent;据此向主会话注入角色卡(单角色)或协调等待指令(多角色);多角色时清空 assembly.tools | | ctx.agents.resume / create | 角色独立会话:已持久化会话走 resume(实测 create 对已存在 sessionId 会空转),全新会话才 create | | session/event | 检测主会话 user/message(多角色 @ → 启动讨论);turn/end 回读角色发言 | | agent.followup | 驱动角色会话发言 + 讨论完成后触发主会话主持人收敛 | | eventUserText | 从 user/message 事件提取文本(比 assemble 时读 session.events 可靠——后者会拿到 "Current runtime context" 快照) | | parseMentions | @角色名 解析(lookbehind 排除邮箱/URL 里的 @;去重;上限 4 个角色) | 为什么是真讨论 多角色讨论 = 串行接力:角色 A 的独立会话先收到「议题 + 角色卡」,独立推理后回复; round-table 捕获 A 的真实输出,作为「前序发言」连同 B 的角色卡发给 B 的独立会话; B 独立推理后回应。每个角色一次调用、各自独立上下文,观点真实分岔——主持人最后收敛出的"分歧点"是讨论中真实出现的,而不是编排出来的。 成本设计 - 纯文本护栏:多角色讨论的主会话等待阶段清空工具(模型无法 Deep diving);角色独立会话与单角色 @ 放开工具(用户决策:角色应能读代码干活)。 - SOUL 截断:2000 字符硬上限。 - 超时保护:单角色发言 90s、整体讨论 120s,超时自动推进/结束。 - 仅一轮:每个角色只发言一次(A → B → 结束),从机制上杜绝死循环。 典型场景 - 需求评审:@产品经理 @架构师 @安全专家 讨论新功能的需求边界——产品经理讲用户价值、架构师讲技术约束、安全专家质疑合规风险,主持人收敛出行动项。 - 代码审查:@架构师 评估一下 lib/src 的分层——架构师用 DSH 工具真读代码后给意见。 - 方案打磨:@架构师 @产品经理 一句话各自的方案倾向——快速两轮对比,主持人提炼分歧点。 - 日常扮演:@安全专家 这段话有没有泄露隐私的风险——让专业角色随时在场。 配置 /settings.yaml 的 round-table: 段(热生效): round-table: enabled: true # 渲染开关 maxRounds: 5 # 默认最大讨论轮数(1–20) defaultMode: manual # 默认发言模式:manual | all | chain pauseOnPageLeave: true # 页面离开自动暂停(可配置后台继续) 注:maxRounds / defaultMode / pauseOnPageLeave 为 v1(房间范式)遗留配置,v2 @ 范式下讨论固定一轮(机制上防死循环);配置项保留以兼容旧数据。 开发 node --test 'tests/*.test.mjs' # 纯逻辑单测(state / mentions) node scripts/build-client.mjs # 生成 lib/client.js(产物入库,勿手改) node scripts/build-client.mjs --check 源码结构: index.mjs # Node half:角色账本 + 讨论编排 + 路由 lib/client/index.mjs # 浏览器 half:左栏角色库 + @ source 注册 lib/client.js # 构建产物(勿手改) lib/src/state.mjs # 角色数据模型(形象/SOUL/迁移) lib/src/mentions.mjs # @ 解析 + 扮演/讨论 prompt 组装(纯函数) lib/src/config.mjs # 配置命名空间与校验 lib/src/persistence.mjs # state.json 原子持久化 tests/ # state.test.mjs / mentions.test.mjs docs/decisions/ # 决策记录(D1–D6 与 v2 范式决策) License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
vuchisu069-source/dsh-round-table
@多个AI角色独立发言,主持人收敛出共识与行动建议
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这是你的仓库?认领条目