HuangYuKaiLI1031/dsh-llm-web-bridge1

dsh-llm-web-bridge

DSH web plugin: bridge to third-party web LLMs (Gemini, ChatGPT, Doubao, custom) — agent-driven consult_llm tool, text-log primary UI with on-demand live view, headed/headless browser daemon.

包名
dsh-llm-web-bridge
版本
0.1.0
许可证
MIT
最近更新
2026年8月17日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:HuangYuKaiLI1031/dsh-llm-web-bridge

下载 Noto Sans SC 到 /.fonts/,配置 FONTCONFIG_FILE

配置

所有运行时路径通过环境变量或插件 config 配置:

环境变量默认说明
DSH_BRIDGE_BASE插件数据目录运行时数据(cookie/日志/截图)
DSH_BRIDGE_DAEMON/daemon/browser_daemon_webllm.py守护进程路径
DSH_BRIDGE_PYTHON/.venv/bin/pythonPython 解释器
DSH_BRIDGE_BROWSERS/.pw-browsersPlaywright 浏览器
DSH_BRIDGE_FONTCONFIG/fonts.conf中文字体配置
DSH_BRIDGE_XVFBxvfb(PATH)Xvfb 二进制

也可在 cordis.patch.yml 的插件 config 中设置 headless / display / xvfbBin / daemonPath 等。

使用教程

1. 面板直接对话(人机交互)

直播面板在输入框上方,默认文字记录模式:

  • 输入问题 → 回车 → 网页 LLM 回复 → 记录在下方
  • 切"📷 实时" → 显示浏览器实时画面(按需开启)
  • 站点下拉切换(Gemini / ChatGPT / 豆包 / 自定义)
  • 标题栏状态点:绿=会话健康,红=会话异常(点"重新连接")

持续会话:同站点连续发送(不带 fresh)延续同一对话——适合"一个项目开一个对话持续聊"。

2. 融入 agent 工作流(核心用法)

consult_llm全局工具,注册在 agent 的工具列表里。有两种触发方式:

触发方式 A:agent 自动调用

主 agent 判断需要"外援"时自动调用(独立审核、交叉验证、代码审查等场景)。你不需要做任何事——只要在对话里提出需求,agent 会自行决定调用:

用户:审查一下 src/utils.ts 的这段代码有没有问题
→ agent 判断需要外援 → 自动调用 consult_llm { ... }

触发方式 B:显式指定(推荐,可控性更高)

在对话中明确要求使用网页 LLM,并可用 role 指定角色。agent 会把你的话翻译成工具调用:

用户:用 Gemini 的代码审查角色看看这段代码
→ agent 调用 consult_llm { provider: "gemini", role: "code-review", ... }

用户:让网页 LLM 从红队角度挑战这个结论
→ agent 调用 consult_llm { role: "adversary", ... }

指定角色的方式

角色通过 consult_llmrole 参数传入,两种途径:

  1. 对话里说(agent 帮你填):
    • "用翻译角色翻译这段" → role: "translator"
    • "红队挑战一下这个方案" → role: "adversary"
  2. 工具参数直接写(如果你直接操作工具):
    • role: "code-review" / "review" / "translator" / "adversary" / "reasoner" / "editor" / 自定义角色名
    • 留空 = 自由对话(不套角色)

💡 提示:想让 agent 总是用某个角色,就在需求里说清楚,例如"每次审查代码都用 code-review 角色"。

代码审查完整示例:

用户:审查一下 src/utils.ts 的这段代码,用代码审查角色
agent → 调用 consult_llm {
  provider: "gemini",
  role: "code-review",
  context: ,
  question: "审查这段代码:检查正确性、边界情况、安全性、可读性和性能"
}
→ Gemini 在真实网页里审查并返回意见 → agent 汇总给你

结论交叉验证——主 agent 完成分析后,让独立 LLM 复核:

agent 完成推理后 → 调用 consult_llm {
  role: "adversary",
  context: ,
  question: "从红队视角找出这个结论的所有漏洞"
}

翻译role: "translator" + context: 原文 → 专业翻译。

3. 内置角色详解

角色名用途适用场景
review独立审核员:查事实错误、逻辑漏洞、遗漏,给改进建议审查文档/方案/结论(默认角色)
code-review资深代码审查:正确性、边界、安全、可读性、性能,指出 bug 并给修复建议代码审查
translator专业翻译:保留语气与术语中英互译、文档翻译
adversary红队对抗:找反驳点、反例、风险、未考虑场景,越尖锐越好结论压测、方案找茬、风险预判
reasoner严谨推理:逐步推导、显式检查每一步逻辑逻辑题、数学题、复杂分析
editor资深编辑:润色表达、结构、用词,说明主要改动文章润色、文案改写

4. 自定义角色

面板 ⚙️ → 输入角色名 + 提示词 → 保存。之后 role 填角色名即可。

示例

保存 {name: "国学大师", prompt: "你是精通国学的大师,引经据典,文风典雅"}
发送 role: "国学大师" → 模型按国学大师风格回答

自定义角色适合:法律顾问、产品经理、架构师、面试官等任何你需要的"人设"。

5. agent 自动调用参数

参数说明
question问题(必填)
providergemini(默认) / chatgpt / doubao / generic
role内置或自定义角色名(留空=自由对话)
context待审内容(代码/文本/结论,可选)
freshtrue=新建对话开始新工作流;默认延续当前上下文

6. 工作流建议

  • 审核流程:主 agent 产出 → role: review 复核 → 汇总分歧点
  • 双模型交叉:Gemini 主用 + ChatGPT 备用(provider 切换),同一问题对比答案
  • 项目对话归档:一个项目一个会话,chat_log_.jsonl 自动记录,可回溯
  • 角色模板化:把常用审查/写作角色存为自定义角色,团队共享