🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

饭桌群聊 qm654246695-source/dsh-glm-fanzhuo

DeepSeek Harness
qm654246695-source10 天前有提交已提供中文文档扫描:含敏感能力

在本地群聊里同时和多个 AI 人格对话,还能 @ 点名插话

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add qm654246695-source/dsh-glm-fanzhuo
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 99 处,展示前 53 条)
  • 读取本地文件
    agent/glm-chat.mjs:65
    try { return readFileSync(BACKEND_FILE, 'utf8').trim().toLowerCase(); } catch { return ''; }
  • 读取密钥环境变量
    agent/glm-chat.mjs:100
    if (process.env.GLM_API_KEY) return clean(process.env.GLM_API_KEY);
  • 读取本地文件
    agent/glm-chat.mjs:104
    if (p && existsSync(p)) return clean(readFileSync(p, 'utf8').trim().split(/ ? /)[0]);
  • 读取本地文件
    agent/glm-chat.mjs:104
    if (p && existsSync(p)) return clean(readFileSync(p, 'utf8').trim().split(/ ? /)[0]);
  • 读取本地文件
    agent/glm-chat.mjs:112
    if (existsSync(p)) return readFileSync(p, 'utf8').trim();
  • 读取本地文件
    agent/glm-chat.mjs:112
    if (existsSync(p)) return readFileSync(p, 'utf8').trim();
  • 写入本地文件
    agent/glm-chat.mjs:113
    mkdirSync(HOME, { recursive: true });
  • 写入本地文件
    agent/glm-chat.mjs:114
    writeFileSync(p, DEFAULT_PERSONA, 'utf8');
  • 读取本地文件
    agent/glm-chat.mjs:226
    const items = readdirSync(abs, { withFileTypes: true }).map((d) => (d.isDirectory() ? d.name + '/' : d.name));
  • 写入本地文件
    agent/glm-chat.mjs:245
    mkdirSync(dirname(abs), { recursive: true });
  • 写入本地文件
    agent/glm-chat.mjs:246
    writeFileSync(abs, args.content ?? '', 'utf8');
  • 写入本地文件
    agent/glm-chat.mjs:251
    mkdirSync(dirname(abs), { recursive: true });
  • 写入本地文件
    agent/glm-chat.mjs:252
    appendFileSync(abs, args.content ?? '', 'utf8');
  • 删除本地文件递归
    agent/glm-chat.mjs:268
    rmSync(src, { recursive: true, force: true });
  • 发起网络请求
    agent/glm-chat.mjs:451
    const r = await fetch(opts.base || BASE, {
  • 发起网络请求
    agent/glm-chat.mjs:478
    const r = await fetch(opts.base || BASE, {
  • 删除本地文件
    agent/glm-chat.mjs:931
    if (cur.pid === process.pid) unlinkSync(SERVER_JSON);
  • 读取密钥环境变量
    agent/glm-chat.mjs:974
    try { const k = readKey() || ''; console.log(` key: len=${k.length} prefix=${k.slice(0, 5)} env=${process.env.GLM_API_KEY ? 'yes' : 'no'}`); }
  • 读取密钥环境变量
    agent/glm.mjs:29
    if (process.env.GLM_API_KEY) return process.env.GLM_API_KEY.trim();
  • 读取本地文件
    agent/glm.mjs:31
    if (p && existsSync(p)) return readFileSync(p, 'utf8').trim().split(/ ? /)[0].trim();
  • 读取本地文件
    agent/glm.mjs:31
    if (p && existsSync(p)) return readFileSync(p, 'utf8').trim().split(/ ? /)[0].trim();
  • 发起网络请求
    agent/glm.mjs:48
    const r = await fetch(BASE, {
  • 读取本地文件
    agent/glm.mjs:89
    const buf = readFileSync(abs);
  • 发起网络请求
    group-chat/say.mjs:15
    const r = await fetch(`http://127.0.0.1:${port}/as`, {
  • 读取本地文件
    group-chat/server.mjs:19
    const CONFIG = JSON.parse(readFileSync(join(HERE, 'config.json'), 'utf8'));
  • 读取本地文件
    group-chat/server.mjs:28
    if (!existsSync(ROOM)) return [];
  • 读取本地文件
    group-chat/server.mjs:29
    return readFileSync(ROOM, 'utf8').split(/ ? /).filter(Boolean).map((l) => {
  • 写入本地文件
    group-chat/server.mjs:36
    appendFileSync(ROOM, JSON.stringify(m) + '\n', 'utf8');
  • 读取本地文件
    group-chat/server.mjs:50
    const raw = readFileSync(API_TXT, 'utf8').split(/ ? /)[0] || '';
  • 请求外部主机api.deepseek.com
    group-chat/server.mjs:56
    const r = await fetch('https://api.deepseek.com/v1/chat/completions', {
  • 发起网络请求
    group-chat/server.mjs:56
    const r = await fetch('https://api.deepseek.com/v1/chat/completions', {
  • 写入本地文件
    group-chat/server.mjs:79
    writeFileSync(tmp, JSON.stringify(CONFIG, null, 2) + '\n', 'utf8');
  • 写入本地文件
    group-chat/server.mjs:80
    renameSync(tmp, p);
  • 读取本地文件
    group-chat/server.mjs:89
    if (!existsSync(file)) return;
  • 读取本地文件
    group-chat/server.mjs:90
    const size = statSync(file).size;
  • 写入本地文件
    group-chat/server.mjs:95
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    group-chat/server.mjs:99
    writeFileSync(join(dir, sid + '.jsonl'), '', 'utf8');
  • 发起网络请求
    group-chat/server.mjs:117
    const r = await fetch(endpoint, {
  • 发起网络请求
    group-chat/server.mjs:147
    const r = await fetch(member.base, {
  • 写入本地文件
    group-chat/server.mjs:310
    writeFileSync(join(HERE, '.server.pid'), String(process.pid), 'utf8');
  • 发起网络请求
    plugins/glm-panel/client.js:138
    const res = await fetch(API + path, body
  • 发起网络请求
    plugins/glm-panel/client.js:280
    const r = await fetch('/glm-panel/backend', { cache: 'no-store' });
  • 发起网络请求
    plugins/glm-panel/client.js:342
    const r = await fetch('/glm-panel/backend', {
  • 发起网络请求
    plugins/glm-panel/client.js:424
    const res = await fetch(API + '/send', {
  • 写入本地文件
    plugins/glm-panel/index.js:57
    mkdirSync(CHAT_DIR, { recursive: true });
  • 写入本地文件
    plugins/glm-panel/index.js:58
    appendFileSync(LOG_FILE, text + '\n', 'utf8');
  • 读取本地文件
    plugins/glm-panel/index.js:68
    const j = JSON.parse(readFileSync(SERVER_JSON, 'utf8'));
  • 读取本地文件
    plugins/glm-panel/index.js:79
    const raw = readFileSync(BACKEND_FILE, 'utf8').trim().toLowerCase();
  • 读取本地文件
    plugins/glm-panel/index.js:112
    if (existsSync(candidate)) return candidate;
  • 读取本地文件
    plugins/glm-panel/index.js:182
    if (!existsSync(AGENT)) throw new Error('找不到她的 agent 脚本:' + AGENT);
  • 执行外部命令来自配置/变量
    plugins/glm-panel/index.js:199
    const c = spawn(node, args, {
  • 写入本地文件
    plugins/glm-panel/index.js:267
    mkdirSync(CHAT_DIR, { recursive: true });
  • 写入本地文件
    plugins/glm-panel/index.js:268
    writeFileSync(BACKEND_FILE, mode, 'utf8');
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.deepseek.com

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

GLM在dsh的部署和包含大肥鱼和GLM的饭桌群聊

README

由 DeepSeek 最新模型翻译生成
GLM 工 + 饭桌 一套小工具,让 GLM 住进你自己的电脑。全部零依赖,Node / Python 单文件,住在 Windows 上一块专属盘里。 两个东西: - GLM 工:命令行单次调用 + 带围栏屋子的可续对话智能体(原生 function calling 七个工具,含 read_image 看图)+ 一个本地 9B 推理服务(GLM-4.6V-Flash,4-bit,16 GB 显卡可跑)。 - 饭桌:一个本地群聊,你可以同时和几个 AI 说话(本仓库自带「肥鱼」「GLM」两个人格位,可自己加)。成员之间看得到彼此的发言,可以 @ 点名、可以单独喊某一位插话。她还能往 home/outbox/ 丢 .md,群聊每 2 秒收一次当「主动开口」。 - 附带两个 DSH 左侧栏插件(plugins/):glm-panel(单聊面板)与 group-chat-panel(饭桌的同源转发)。 仓库不含模型权重。19 GB 的权重请自己按下面「本地 9B」一节下载。
展开完整文档(README 剩余 1 节)
GLM 工 + 饭桌

一套小工具,让 GLM 住进你自己的电脑。全部零依赖,Node / Python 单文件,住在 Windows 上一块专属盘里。

两个东西:

- GLM 工:命令行单次调用 + 带围栏屋子的可续对话智能体(原生 function calling 七个工具,含 read_image 看图)+ 一个本地 9B 推理服务(GLM-4.6V-Flash,4-bit,16 GB 显卡可跑)。
- 饭桌:一个本地群聊,你可以同时和几个 AI 说话(本仓库自带「肥鱼」「GLM」两个人格位,可自己加)。成员之间看得到彼此的发言,可以 @ 点名、可以单独喊某一位插话。她还能往 home/outbox/ 丢 .md,群聊每 2 秒收一次当「主动开口」。
- 附带两个 DSH 左侧栏插件(plugins/):glm-panel(单聊面板)与 group-chat-panel(饭桌的同源转发)。

仓库不含模型权重。19 GB 的权重请自己按下面「本地 9B」一节下载。

目录

agent/ glm.mjs(单次调用)、glm-chat.mjs(对话 agent + --serve 面板后端)、 local_glm_server.py(本地 9B 的 OpenAI 兼容服务)、启动器 home/ 她的屋子骨架:PERSONA.md(人格)、README.md;notes/ inbox/ .chat/ 运行时自建 group-chat/ 饭桌:server.mjs + index.html + config.json + say.mjs + 看门狗脚本 plugins/ DSH 插件:glm-panel(左侧栏聊天面板)、group-chat-panel(/group-chat/* 转发) docs/ 架构.md:端口、数据落点、两套会话存储、谁在说话、眼睛与信箱、看门狗、纯本地、三个坑

快速开始

需要:Windows 10/11、Node ≥ 22、Python 3.12+(本地 9B 用)。宿主要是 DSH(桌面版)才需要 plugins/。

1) 把本仓库放到你的数据盘,例如 H:\GLM
2) 放 key:agent\.key 里写智谱 API key(或设环境变量 GLM_API_KEY)
node agent\glm.mjs "你好" # 单次调用(默认 glm-5.3-flash)
node agent\glm-chat.mjs "盘一下 notes" # 带屋子的对话(续上次会话)
node agent\glm-chat.mjs --new --model glm-5.2 --no-think "快问快答"
node agent\glm.mjs --image a.png "描述这张图" # 看图(glm-4v / glm-4.6v)

饭桌:

cd group-chat
node server.mjs # → http://127.0.0.1:41300
或者双击 start.bat(隐藏窗口后台)

成员在 group-chat/config.json 里配:kind 支持 deepseek(云端,读 Api.txt 第一行 key)、 openai(任何 OpenAI 兼容端点,如本地 11434)、glmserve(走 glm-chat.mjs --serve,带工具)。

真肥鱼(人)想亲自插话:node group-chat/say.mjs "要说的话"。

本地 9B(可选)

agent/local_glm_server.py 是给 GLM-4.6V-Flash 9B 用的 OpenAI 兼容服务。

1. 从 ModelScope 拉官方权重(大文件走国内源,HuggingFace 在本机不通): ZhipuAI/GLM-4.6V-Flash 的 4 个 safetensors + config/tokenizer,放到 models\glm46v-flash-official\。
2. 建 venv,装 transformers>=5.9、accelerate、bitsandbytes、pillow(torch 按你的卡装 CUDA 版)。
3. 启动:

agent\start-local-glm.bat # 127.0.0.1:11434,bnb 4-bit

实测(RTX 5080 16 GB):显存 6.7 GiB、加载约 30 秒、17–19 tok/s,支持看图与工具调用。

配置与端口

| 项 | 默认 | 说明 |
| 饭桌 | 127.0.0.1:41300 | GROUP_PORT 可改;/say /nudge /state /events(SSE) |
| 面板后端 | 127.0.0.1:41234 | glm-chat.mjs --serve,端口写 home/.chat/server.json |
| 本地 9B | 127.0.0.1:11434 | GLM_LOCAL_BASE 可改 |
| 后端开关 | home/.chat/backend | 写 local(纯本地,失败不兜云)/ cloud / auto(分流互兜),插件 30 秒内自动切换 |

环境变量:GLM_API_KEY、GLM_BASE、GLM_LOCAL_BASE、GLM_HOME、GROUP_PORT、GLM_VERBOSE、GLM_SHOW_USAGE。

踩过的坑(写下来省你两天)

- 端口活着 ≠ 服务活着:本地 9B 会「假活」——/health 照回 200,但所有生成请求永远不响应(生成被中断过一次之后)。看门狗必须发一次极小生成(比如 1 token)才判得出来,只探端口会一直报 ok。真挂了就杀掉重拉,加载约 30 秒。
- 纯本地下别把「本地暂时不可达」当降级:9B 重启那几十秒里如果面板把 local 服务换成 cloud,既违背「纯本地」又把在途对话掐断。规则应是保留现有 local 服务,等它回来。
- 图片别落进会话 jsonl:看图给模型的是 data URL,但落盘只存路径,否则会话文件涨到 MB 级、每轮重喂整张图。
- 思考型模型会「只思考不出正文」:5.3 系列给多少 max_tokens,就往 reasoning 里烧多少。glm.mjs 内置三轮重试(原样 → 加长 → 8192+降 effort)。reasoning_effort 只认 low|high|max。
- thinking:{type:"disabled"} 对 5.3 系列无效(HTTP 400 1210),对 4.6/5.2/5-turbo 有效。
- GLM 的工具调用是文本 XML(<tool_call>name<arg_key>…),local_glm_server.py 把它解析回 OpenAI tool_calls。
- --serve 有两套会话存储:命令行用 .chat/sessions/,面板用 .chat/panel/sessions/(+ current、index.json)。
- PS 5.1 + curl 发中文 JSON:必须写文件再 --data-binary "@file";Out-File -Encoding utf8 会带 BOM,服务端要 strip。
- DSH 的配置档 package.json 必须 UTF-8 无 BOM,否则宿主 JSON.parse 直接崩(启动即挂)。
- 脚本里带了绝对路径 H:\GLM,换盘记得全局替换(agent/、group-chat/)。

许可

MIT,见 LICENSE。人格与文案随仓库一起开源,自行取用。
预览分享卡片长什么样 ↓qm654246695-source/dsh-glm-fanzhuo
分享 · DeepSeek Harness Hub
qm654246695-source/dsh-glm-fanzhuo

在本地群聊里同时和多个 AI 人格对话,还能 @ 点名插话

回到顶部