【DeepThink V1.1.0 发布】全球免费开源自由使用打造你的个人 AI 操作系统:支持全自主托管模式完成超复杂长程任务

254 阅读44分钟

DeepThink 是你的开源免费自由使用的私有 AI 操作系统 (AI OS),在安全隔离的沙箱环境中,自主执行代码、管理文件、完成超复杂长程任务。自托管的多用户本地 AI Agent Loop Engineering 系统 (支持桌面端+浏览器+移动端) —— 让 DeepThink 成为你的全能数字助手。 —— Powered By AI Genius Institute & 光剑AI

在这里插入图片描述

DeepThink 项目开源代码(如果你觉得好玩,就一起来玩, Star 一下)Gitcode: gitcode.com/AIGeniusIns… Github: github.com/AIGeniusIns…


DeepThink v1.1.0 发布说明

自托管的多用户本地 AI Agent Loop Engineering 系统(支持桌面端 + 浏览器 + 移动端) Powered By AI Genius Institute,AI 光剑

发布日期:2026-08-07

v1.1.0 是一个自主性跃迁版本——DeepThink 从"工具使用者驱动的 Loop Engineering"进化到"自主感知→决策→执行→学习→维护全闭环的自主 Agent 系统"。本版本交付两块拼图:自主 AI Agent 系统升级(Autonomy Layer + 度量埋点 + 验收套件)全托管模式(Autonomous Mode),并修复桌面版打包的依赖漏洞。


✨ 新功能

一、自主 AI Agent 系统升级(Autonomy Layer)

在这里插入图片描述

在已合并的 5 个自主相关 PRD(self-evolving-harness / loop-engineering-v3 / supervisor-longrunning / super-agent-team / graph-engineering)之上,新增横切 Autonomy Layer,把分散的 7 大能力收口为可度量、可验收、可闭环的统一系统,并补齐量化度量与无人工干预 E2E 验收。6 个工作包全部交付:

WP内容阶段状态
WP1自主性中枢(事件总线 + 能力注册表 + 7 能力模型)P0
WP2度量埋点 + 采集 + 聚合(8 指标口径 + API)P0
WP6验收套件骨架(Playwright E2E)P0
WP3学习接入主循环(graph_run → lesson 沉淀 + 检索)P1
WP4主动适应(信号 → 处理 → 适应速度指标)P1
WP5自愈 + 预测预警 + 仪表盘P2

7 大能力采集闭环

能力度量口径状态
①自主感知perception.active_trigger → proactivity_ratio
②自主认知复用 supervisor-agent 决策 + harness-eval 断言
③自主决策decision.generated human_triggered=false → decision_independence
④自主执行execution.completed success/fail + retry/recovery 既有
⑤自主学习learning.promoted(latency_ms) + lesson 沉淀/检索
⑥自主适应adaptation.adjusted(latency_ms) + adapt loop
⑦自主监控monitoring.predicted + self_healed

关键 APIGET /api/autonomy/capabilities(7 能力注册表)、GET /api/autonomy/metrics(指标聚合)、GET /api/autonomy/health(健康)、POST /api/autonomy/signals + POST /api/autonomy/signals/process(信号→适应闭环)、GET /api/autonomy/lessons(学习沉淀)。

Schema 迁移:SCHEMA_VERSION 53→54,4 表 IF NOT EXISTS 幂等,不动既有列。

诚实说明:本版本建立了全部 7 能力的指标采集口径 + 落库 + 聚合 API + 验收断言闭环——埋点→事件→metrics 表→aggregateMetric→API→E2E 断言。E2E 与单测验证了采集闭环可工作(注入可控信号后指标正确落库 + ratio 正确计算 + denominator=0 返回 null 不 NaN)。实际达标率(如 ≥95% 主动性)取决于真实业务流量下的分子分母积累——骨架已就绪可量化,全标达标待真实流量。详见 docs/test_report/autonomy-system/REPORT.md

二、全托管模式(Autonomous Mode)

新增全托管模式作为 DeepThink 的连续推进开关:Agent 一旦进入任务即全自主完成,覆盖三道防御层(CLAUDE.md Think Before Coding 宪法、Supervisor clarify 路径、RLHF 端回合礼貌),并加入四道硬刹车护栏保证自主性的同时最小化风险。

三道防御层覆盖

  1. CLAUDE.md 宪法层:向 agent-runner 注入 Autonomous Override 段(含 6 条规则:禁止向用户提问、禁用 AskUserQuestion、必须填写 <assumption>、循环检测、硬刹车、任务无法完成时的处置)。
  2. Supervisor clarify 旁路supervisor.ts parseDecision 在 autonomous 时把 clarify 降级为 delegate,question 被丢弃(reason='autonomous_downgrade'),若原 clarify 携带 instruction 则保留。
  3. RLHF 端回合礼貌:agent-runner 主循环端回合检测——AskUserQuestion tool 调用作为强信号 + ASKING_PATTERNS 弱信号,命中后自动续接而不打断。

四道硬刹车护栏

  • 破坏性命令检测DESTRUCTIVE_PATTERNS):14 个正例覆盖 rm -rf /git push --forcegit reset --hardDROP TABLE/DATABASETRUNCATEDELETE FROM 无 WHERE、mkfs.*dd to /dev/、fork bomb 等;10 个反例避免误杀 rm -rf ./buildgit push --force-with-lease、guarded DELETE ... WHERE 等。
  • 轮次上限:超过最大轮次强制停止。
  • token 上限:超过 token 预算强制停止。
  • 循环检测:滑动窗口尾部 3 条相同 turn 触发(hash 仅取前 5000 字符,确定性)。

数据流与持久化

  • per-group 配置 + per-message 覆盖(true / false / null
  • messages.autonomous / scheduled_tasks.autonomous
  • API:GET/PUT /api/config/autonomousGET /api/config/autonomous/all

前端体验

  • AutonomousToggle 开关 + AutonomousStopButton 硬刹车按钮 + CreateTaskForm checkbox
  • 4 个新 StreamEvent:autonomous_started / autonomous_continued / autonomous_aborted / autonomous_brake
  • chat store 完整事件处理
  • UI 显式展示全托管状态:持久 banner + 消息火箭角标,让"Agent 正在全自主推进"的状态在长任务中始终可见

测试:49 单测(5 文件覆盖 clarify 旁路、模式检测、配置持久化、CLAUDE.md 注入、Schema 校验、循环检测)+ 20 E2E(autonomous-mode 14 + autonomous-brake 6)+ 三端 tsc + StreamEvent 同步校验全绿。详见 docs/test_report/feat-autonomous-mode/TEST_REPORT.md


🐛 缺陷修复

桌面版打包:web 依赖未装导致失败

make desktop-pack-mac 不会自动安装 web 依赖,干净环境或拉新分支后报 Cannot find module '@monaco-editor/react'(此前 commit 974bd38 加了 monaco-editor 到 web/package.json)。新增 web-install 目标(带 mtime 守卫避免重复安装),并挂到 desktop-build-deps 前置链。详见 docs/issues/。(a2f78f3


✅ 验证

验证项结果证据
Autonomy 单元测试✅ 31/31P0 15/15 + P1 10/10 + P2 6/6
Autonomy E2E(Playwright)✅ 18/18tests/e2e/autonomy.mjs
Autonomous Mode 单测✅ 49/495 文件覆盖 6 维度
Autonomous Mode E2E✅ 20/20autonomous-mode 14 + autonomous-brake 6
全量回归✅ 零新增回归1325 passed / 1 基线既有失败 / 4 skipped(autonomy);256 单测无回归(autonomous-mode)
Schema 迁移✅ 幂等SCHEMA_VERSION 53→54
Runtime boot✅ PASSautonomy-registry booted + metrics collector started + learning collector started + adapt loop started + autonomy-heal collector started
三端 typecheck✅ PASS后端 + agent-runner + web tsc --noEmit 全绿
StreamEvent 同步校验✅ PASSshared/stream-event.ts 三处副本一致

📦 获取方式

  • GitCode:git@gitcode.com:AIGeniusInstitute/deepthink.git
  • GitHub:git@github.com:AIGeniusInstitute/deepthink.git
  • 桌面端安装包:见各平台 Release 资产(macOS .dmg / Windows .exe / Linux AppImage)
git fetch --tags
git checkout v1.1.0
# 或直接拉取 main 分支(已包含 v1.1.0 全部内容)

🙏 致谢

让每一家企业都拥有一支永不停歇、持续进化的 AI 超级研发团队——从工具使用者,到代码创造者,最终成长为可自我繁衍的超级智能体。让我们在通往 AGI 的道路上一起前行。

AI天才研究院(AI Genius Institute)是一家专注于通用人工智能深度思考、前沿技术拆解、思维体系构建的独立研究博客与智识实验室。我们跳出碎片化资讯的桎梏,拒绝浅层的AI科普,以严谨的研究视角、通透的逻辑拆解、前瞻的行业洞察,深耕人工智能底层逻辑、技术迭代、思维范式与落地应用,为创作者、开发者、研究者、行业从业者与AI爱好者,打造高质量、纯干货、有深度的AI认知阵地。

关于作者


Languages:

English · 简体中文 · Español · हिन्दी · العربية · বাংলা · Português · Русский · 日本語 · Deutsch · Français · Bahasa Indonesia · اردو · मराठी · తెలుగు · Türkçe · தமிழ் · 한국어 · Tiếng Việt · Italiano · Polski · Українська · Nederlands · ไทย · ગુજરાતી · Bahasa Melayu · ಕನ್ನಡ · فارسی · Svenska · Čeština

在这里插入图片描述

DeepThink

自托管的多用户本地 AI Agent Loop Engineering 系统(支持桌面端 + 浏览器 + 移动端)/ Powered By AI Genius Institute,AI光剑.

DeepThink 快速上手教程

DeepThink 是什么

DeepThink,开源企业级自主 Agent 超级智能体自进化平台,是从 Harness Engineering 到 Loop Engineering 范式的先行者,面向企业客户的新一代 AI 基础设施(AI Infra)。DeepThink 平台以多 Agent 协作框架为核心,融合 AI 自主编程(AI Coding)、自主进化(Self-Evolving)、全栈可观测性(Full-Stack Observability)、Bug 自修复闭环(Bug Auto-Fix Loop)与 程序员-Agent 共生协作(Human-Agent Symbiosis),构建一个能持续学习、自我改进、最终成长为超级智能体的企业级 AI 系统:

  • AI 自主研发平台 —— Agent 独立完成软件研发全生命周期,无需人类工程师介入常规编码任务
  • 自进化智能体引擎 —— Agent 持续从错误中学习、从代码库中吸收知识、从用户反馈中进化
  • 程序员-Agent 协作中枢 —— 每位程序员拥有个人"开发项目",内含多个并行会话,中央调度防止并发冲突
  • 企业级 SaaS 平台 —— 多租户隔离、权限分级、弹性计费、企业集成(飞书/钉钉/企微/LDAP)
  • 超级智能体孵化器 —— 通过持续进化,单一 Agent 最终具备完整软件团队的综合能力

"让每一家企业都拥有一支永不停歇、持续进化的 AI 超级研发团队——从工具使用者,到代码创造者,最终成长为可自我繁衍的超级智能体。让我们在通往 AGI 的道路上一起前行。"

关键特性

  • 原生 Claude Code 驱动 —— 基于 Claude Agent SDK,底层为完整的 Claude Code CLI 运行时,继承其全部能力
  • Harness & Loop Engineering —— 版本化 harness 清单(system prompt / subagents / tools / skills),支持 snapshot / diff / eval / promote / rollback,以及长时运行的自主任务循环,每次迭代可审查并重新注入失败原因
  • Autonomy Layer 与 Autonomous Mode (v1.1.0) —— 跨层的 Autonomy Layer 统一了 7 大能力(perception / cognition / decision / execution / learning / adaptation / monitoring),配套 metrics collection 与 E2E acceptance;外加完整的 Autonomous Mode,让 Agent 无需人类手把手即可 end-to-end 完成任务,覆盖 three defense layers(CLAUDE.md 宪法性覆盖 / Supervisor clarify 绕过 / RLHF 末端礼貌)与 four hard brakes(破坏性命令 / turn 限制 / token 限制 / 循环检测)
  • Agent-as-a-Service(PaaS) —— 跨租户创建、版本化、挂载、共享并安装数据库支撑的 Agent 定义,具备 per-user 配额、管理员审核和可发布的模板市场
  • 多用户隔离 —— Per-user 工作区、Per-user IM 通道、RBAC 权限体系、邀请码注册、审计日志,每个用户拥有独立的执行环境
  • 八端消息统一路由 —— 飞书(流式卡片 + Reaction)、Telegram Bot API、QQ Bot API v2、钉钉 Stream、微信 iLink、Discord Gateway、WhatsApp(Baileys)和 Web 界面——统一路由
  • 多引擎 & 多提供商 —— 可插拔的代码 Agent 引擎(Claude Code / AtomCode / Codex / OpenCode)和多个 Claude API 提供商,三种负载均衡策略(round-robin / weighted / failover),自动健康检测与恢复
  • 沙箱化代码执行 —— Docker + seccomp + cgroups 加固沙箱,用于 Python / Node / shell 代码执行和 Chromium CDP 浏览器自动化,作为 MCP 工具暴露给 Agent
  • 计费与用量统计 —— 完整的计费系统(订阅计划、钱包余额、兑换码),Per-model Token 用量追踪与图表可视化
  • 移动端 PWA —— 针对移动端深度优化,支持一键安装到桌面,iOS / Android 均已适配
  • 国际化 —— 29 种 UI 语言,支持原生 endonym 和 RTL;Agent 以用户选择的语言回复

项目借鉴了 OpenClaw 的容器化架构,并融合了 Claude Code 官方 Cowork 的多会话协作思路:多个独立 Agent 会话并行工作,各自拥有隔离的工作空间和持久记忆,结果通过 IM 渠道送达。

功能展示

DeepThink 核心能力的可视化导览 —— 每个界面长什么样、为用户带来什么价值。

主工作区:全自主托管

在这里插入图片描述

超级 Agent 团队

输入超复杂任务,DeepThink 自主拆解、组建 Agent 团队(自主设计角色 / System Prompt / 工具),用 DAG 任务图可视化执行,节点内步骤 + 工具调用全 trace 可回溯。 在这里插入图片描述

Agent Studio

创建并管理你的 Agent 在这里插入图片描述

技能(Skill)管理

在这里插入图片描述

知识库

为你的 Agent 挂载私有知识(FTS5 全文检索 + 向量混合检索,支持 .md / .txt / .pdf / .docx / URL)

在这里插入图片描述

插件市场

浏览并安装 Agent / MCP / Skill / KB 模板(含评分与评论) 在这里插入图片描述

MCP 服务器
记忆管理

管理全局记忆、心跳摘要、会话记忆、日期记忆与对话归档。

多引擎支持

管理可用引擎: Claude Code / AtomCode / Codex / OpenCode / Pi

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

沙箱 Sandbox

在隔离容器内执行代码与浏览器自动化 · 实时观察终端与浏览器画面

在这里插入图片描述

定时任务管理

在这里插入图片描述

Loop Engineering

在这里插入图片描述

Supervisor Agent
  • 新建 Supervisor 新建一个长驻监督者,自主定义监督目标 / 周期 / 策略,监督主对话 Agent 全过程并回喂结论。

在这里插入图片描述

Self-Evolving Harness

版本档案库 · 行为证据评估 · 可证伪契约 · promote/rollback

提交 Harness 变异提案 Meta-Loop 会:① 把当前 harness 注册为 proposed 版本 → ② 对 baseline + proposed 跑 eval → ③ 仅当 proposed 严格改进且无新增 fail 才 promote,否则 rollback(保留为垫脚石)。 判定只看行为证据,不看本提案的论证文本。

在这里插入图片描述

消息通道

在这里插入图片描述

模型服务商

在这里插入图片描述

核心能力

多通道接入

渠道连接方式消息格式亮点
飞书WebSocket 长连接流式卡片(打字机效果)原生流式渲染、多卡片自动分页、图片/文件下载到工作区、Reaction 反馈、群聊 @mention 控制
TelegramBot API(Long Polling)Markdown → HTML长消息自动分片(3800 字符)、图片经 Vision(base64)、文档文件自动下载到工作区
QQWebSocket(Bot API v2)流式卡片 / 纯文本C2C 私聊 + 群聊 @Bot、流式打字机(stream_messages)、图片消息(Vision)、配对码绑定
钉钉Stream 协议长连接Markdown 卡片AI Card 流式打字机、消息去重(LRU 1000 条 / 30min TTL)、图片下载(downloadCode / contentUrl)、群聊 @mention 过滤
微信iLink Bot API(Long Polling)纯文本(2000 字符)扫码配对、CDN 图片下载 + AES 解密、输入指示器、自动重连
Discorddiscord.js Gateway(WebSocket)流式编辑消息Guild / DM、附件处理、2000 字符自动分片、ack Reaction、500ms 节流的流式编辑回复
WhatsAppBaileys(WhatsApp Web 协议)Markdown → 纯文本QR / 配对码登录、多文件认证状态、媒体(图片/视频/音频/文档)下载、群组成员事件
WebWebSocket 实时流式 Markdown图片粘贴/拖拽上传、虚拟滚动、Mermaid 图表渲染、图片灯箱

每个用户都可以独立配置自己的 IM 通道(飞书应用凭据、Telegram Bot Token、QQ Bot 凭据、钉钉 Client ID/Secret、微信 iLink Token、Discord Bot Token、WhatsApp QR),互不干扰。消息统一路由:各渠道来源的消息回复到对应渠道,Web 来源的消息在 Web 端回复。

多引擎 & 多提供商

DeepThink 支持可插拔的代码 Agent 引擎和多个 API 提供商,用于高可用部署:

  • 可插拔引擎 —— 每个会话可在 Claude Code、AtomCode、Codex、OpenCode 之间选择;Engines 页面展示统一的可用性仪表盘并管理每个引擎的守护进程生命周期
  • 三种负载均衡策略 —— Round-Robin、Weighted、Failover
  • 自动健康检测 —— 连续错误追踪(默认 3 次错误标记为不健康),5 分钟自动恢复探测
  • 按工作区切换提供商 —— 监控页可指定每个工作区使用哪个提供商
  • OAuth 凭据支持 —— 支持 Claude Code OAuth Token,兼容所有认证方式;sticky provider 选择避免跨 OAuth thinking block 签名失效
  • 活跃会话数 —— 实时展示每个提供商的并发使用量

Agent 执行引擎

基于 Claude Agent SDK 构建;SDK 底层会调用完整的 Claude Code CLI。

  • Per-user 主工作区 —— 每个用户有固定的主工作区(admin 用 host 模式,member 用 container 模式);IM 消息路由到各自的主工作区
  • 宿主机模式 —— Agent 直接在宿主机运行,访问本地文件系统,零 Docker 依赖(admin 主工作区的默认模式)
  • 容器模式 —— Docker 隔离执行,非 root 用户,预装 40+ 工具(member 主工作区的默认模式)
  • 多会话并发 —— 最多 20 个容器 + 5 个宿主机进程同时运行,会话级队列调度
  • 脚本任务 —— 定时任务支持 Agent 和 Script 两种执行类型;Script 模式直接执行 shell 命令
  • 自定义工作目录 —— 每个会话可配置 customCwd 指向不同的项目
  • 自动失败恢复 —— 指数退避重试(5s → 80s,最多 5 次);上下文溢出时自动压缩并归档历史

Harness Engineering

管理员可以对模型的 harness(system prompt、subagents、tools、skills 的完整集合)进行 snapshot、diff、eval、promote 和 rollback,作为版本化清单。每个 harness 版本在 promote 前可进行行为评测并基于证据判定,从而安全地演进 Agent 配置,并在出现回退时立即回滚。

Loop Engineering

长时运行的自主任务循环,在你离开后仍持续工作。支持六种循环模式 —— goalloopscheduleproactiveadaptiveskill_evolution。每次迭代由 SDK 审查,失败原因被重新注入到下一次迭代中,闭合自进化回路。循环由斜杠命令驱动,并实时发出 loop_start / loop_iteration_start / loop_iteration_end / loop_goal_check / loop_review_result / loop_end 流式事件。

Autonomy Layer & Autonomous Mode (v1.1.0)

一次两件套升级,让 DeepThink 从"工具使用者驱动的 Loop Engineering"跃迁到"完全自包含的自主 Agent 系统"。

Autonomy Layer —— 一层横切能力层,将 7 大能力(perception / cognition / decision / execution / learning / adaptation / monitoring)统一为一个可度量、可验证的闭环系统。建立在既有的 self-evolving / loop / supervisor / super-agent / graph 模块之上,新增 event bus、capability registry、metrics collection(8 个指标维度)以及 Playwright E2E acceptance 测试套件。

  • 能力注册表(capability registry) —— GET /api/autonomy/capabilities 按规范顺序返回 7 个 canonical capability
  • 指标采集(metrics collection) —— 每个能力的指标(proactivity_ratio / decision_independence / execution success / learning latency / adaptation_speed / prediction accuracy / self-heal rate)经 event bus 流入 metrics 表,通过 aggregateMetric 聚合,由 GET /api/autonomy/metrics 暴露
  • 信号 → 自适应闭环 —— POST /api/autonomy/signals + POST /api/autonomy/signals/process 把信号驱动到落地的适配,并采集 adaptation_speed_ms
  • 学习闭环 —— graph_run 结果沉淀为 lessons;GET /api/autonomy/lessons 取出以供重新注入
  • 自愈 & 预测 —— 连续错误会触发 monitoring.predicted + self_healed 事件;仪表盘展示 health、signals 与 lessons
  • Schema 迁移 —— SCHEMA_VERSION 53 → 54(4 张表,幂等 IF NOT EXISTS

7 能力采集闭环已全链路打通(signal → event → metrics 表 → aggregateMetric → API → E2E 断言)。要达到目标头条指标(≥95% proactivity、≥90% success 等)还需累积真实流量——骨架已就位,量化门槛已明确。

Autonomous Mode —— 一个 per-group 的持续推进开关:一旦 Agent 进入任务,便 end-to-end 完成,无需人类手把手。三层 defense layers 覆盖天然的摩擦点,四道 hard brakes 保障自主性安全。

  • Defense layer 1 —— CLAUDE.md 宪法性覆盖 —— 向 agent-runner 注入一段 Autonomous Override,包含 6 条规则:不主动询问用户、禁用 AskUserQuestion、填写 <assumption>、循环检测、hard brakes 以及任务无法完成时的处置策略
  • Defense layer 2 —— Supervisor clarify 绕过 —— 开启自主模式时 supervisor.ts parseDecisionclarify 降级为 delegate,丢弃问题(reason='autonomous_downgrade');任何显式 instruction 都会被保留
  • Defense layer 3 —— RLHF 末端礼貌 —— agent-runner 主循环检测末端询问行为(强信号:AskUserQuestion 工具调用;弱信号:ASKING_PATTERNS)并自动继续而不中断
  • Hard brake 1 —— 破坏性命令检测 —— 14 个正向模式(rm -rf /git push --forcegit reset --hardDROP TABLE/DATABASETRUNCATE、无 WHEREDELETE FROMmkfs.*dd to /dev/、fork bomb…)配合 10 个负向模式避免误报(rm -rf ./buildgit push --force-with-lease、带守卫的 DELETE … WHERE
  • Hard brake 2 —— turn 限制 —— 达到最大轮次后强制停止
  • Hard brake 3 —— token 限制 —— 达到 token 预算后强制停止
  • Hard brake 4 —— 循环检测 —— 滑动窗口检查最近 3 轮是否完全相同(取前 5000 字符的哈希,确定性),命中则中止
  • per-group 配置 + per-message 覆盖true / false / null);messages.autonomousscheduled_tasks.autonomous 列持久化该标记
  • APIs —— GET / PUT /api/config/autonomousGET /api/config/autonomous/all
  • UI —— AutonomousToggle 开关、AutonomousStopButton 硬刹车按钮、CreateTaskForm 复选框、4 个新 StreamEvents(autonomous_started / autonomous_continued / autonomous_aborted / autonomous_brake)、持久化横幅 + 火箭 emoji 角标,让"Agent 全自主驾驶"的状态在长任务全程可见

已验证:Autonomy 31 单元测试 + 18 E2E,Autonomous Mode 49 单元测试 + 20 E2E(14 mode + 6 brake),1325 测试基线零新增回归。详见 docs/test_report/autonomy-system/REPORT.mddocs/test_report/feat-autonomous-mode/TEST_REPORT.md

Agent-as-a-Service(PaaS)

将 Agent 变为可共享、可安装产品的多租户平台:

  • 数据库支撑的 Agent 定义 —— 创建并版本化 Agent 定义,包含快照、挂载、协作者和分享
  • 管理员审核流程 —— Per-user 配额和发布前的管理员审核
  • 安装并挂载 —— 将共享 Agent 安装到自己的工作区;按需挂载到会话中
  • 市场 —— 管理员可发布的模板市场(agent / mcp / skill / kb 模板),支持浏览、评分 / 评论、举报、一键安装,以及幂等的启动期播种

知识库

Per-user 的知识库,让 Agent 基于你的自有文档工作:

  • FTS5 全文检索 —— 内置 SQLite FTS5 对挂载文档建立索引
  • 向量嵌入 —— 可选的 OpenAI 兼容 embedding 端点,用于语义检索
  • 文档抽取 —— 从 PDF / DOCX / MD 等格式抽取纯文本用于索引,Office 文档支持 LibreOffice → PDF 预览
  • kb_search MCP 工具 —— Agent 在运行时直接查询挂载的知识库

沙箱化代码执行

一个加固的沙箱,用于运行不可信代码和驱动浏览器,作为 MCP 工具暴露给 Agent:

  • Docker + seccomp + cgroups —— 通过 seccomp profile 和资源限制实现加固隔离
  • 代码执行 —— sandbox_run_code / sandbox_close,支持 Python、Node 和 shell,可选用 session 或 single-exec 模式
  • 浏览器自动化 —— sandbox_browser_navigate / _click / _type / _screenshot / _evaluate,通过沙箱内的转发器驱动 Chromium CDP target

Claude Code Plugins

对 Claude Code Plugins 的一等支持:

  • Per-user 启用/禁用 —— 每个用户独立选择启用插件;更改在下一次新会话生效(UI 会相应提示)
  • 不可变的内容寻址 catalog —— 管理员扫描宿主机一次构建共享 catalog;plugin snapshot 按内容寻址且不可变
  • 依赖预检 —— 在 materialize 前对 commands/*.mdallowed-tools 和 hook 命令做 best-effort 检查,并提供手动覆盖表
  • 运行时 materialize —— Per-user 的 enabled refs 在 spawn 时被 materialize 到版本化的 --plugin-dir 路径

Agent Studio & Agent 定义

定义自定义 Agent 的双层:

  • 全局 agents —— 直接从 Web UI 编辑 ~/.claude/agents/*.md
  • 数据库支撑的用户 Agent —— 版本化快照、工作区挂载、协作者和分享链接
  • 宿主能力预检 —— 在 Agent 运行前校验宿主机具备所需工具

对话追踪(Chat Trace)

Agent 执行的 DAG 可视化 —— 每个节点(turn / tool / review / goal_check / skill / subagent)都渲染为可导航的图,支持用户标注和客户端侧 rerun / continue-from-here,为 Agent 如何得到答案提供全栈可观测性。

Supervisor & i18n

  • Supervisor SubAgent —— 可按会话开启的意图解析器,在主 Agent 运行前对进入的消息进行预分流(clarify / delegate / auto),减少对模糊请求的无效工作
  • 国际化 —— 29 种 UI 语言,支持原生 endonym 和 RTL 标记;所选语言会注入到 Agent prompt 中,使回复匹配用户语言

多会话 & Agent 定义

同一工作区内支持多个独立会话,每个会话有独立的上下文和 session:

  • 会话标签 —— 可拖拽的标签栏;支持创建、重命名、删除会话
  • Per-conversation IM 绑定 —— 每个会话可独立绑定到一个 IM 通道
  • 自定义 Agent 定义 —— 创建自定义 SubAgent(如 code-reviewer、web-researcher),复用 Claude Agent SDK 的 agents 选项
  • 独立的会话持久化 —— 每个会话维护自己的 Claude session,完全隔离

实时流式体验

Agent 的思考与执行过程通过 30+ 种流式事件类型(文本、思考、工具调用、hooks、任务、记忆回放、循环、用量、todo、上下文审计等)实时推送到前端:

  • 思考过程 —— 可折叠的 Extended Thinking 面板,逐字符流式呈现
  • 工具调用追踪 —— 工具名称、执行时长、嵌套深度、输入参数摘要
  • 调用轨迹时间线 —— 最近若干条工具调用记录,便于快速回溯
  • Hook 执行状态 —— PreToolUse / PostToolUse Hook 的开始、进度、结果
  • 循环事件 —— 自主循环的实时 loop_iteration_*loop_review_result 事件
  • 流式 Markdown 渲染 —— GFM 表格、代码高亮、Mermaid 图表、图片灯箱
  • 分享为图片 —— 将消息导出为可分享的图片
  • 飞书流式卡片 —— 原生打字机效果,三层 fallback 链(Streaming → CardKit v1 → Legacy),多卡片自动分页,单元素支持 10 万字符
  • 钉钉 / QQ / Discord 流式 —— 各渠道原生的流式卡片 / 流式编辑打字机效果

计费系统

完整的订阅与用量计费系统(点击展开)

面向多用户部署的计费系统,支持灵活的计费模式:

  • 订阅计划管理 —— 管理员创建计费计划,设定价格、Token 配额和有效期
  • 用户钱包 —— 每个用户拥有独立余额,支持充值和消费
  • 兑换码系统 —— 创建带最大使用次数和过期时间的兑换码
  • Per-model Token 追踪 —— Token 用量精确到模型级别(输入/输出/缓存)
  • 成本计算 —— 基于模型定价自动计算美元成本
  • 管理控制台 —— 计划 CRUD、用户余额管理、兑换码管理、计费审计日志
  • 配额检查 —— 请求前自动检查用户配额和余额;超额时阻止执行

用量统计

  • Token 用量拆分 —— 输入 token、输出 token、缓存读取/创建 token,各自独立追踪
  • 成本计算 —— 按模型自动计算成本,以美元格式化
  • 多维度筛选 —— 按用户、模型、时间范围(7/14/30/90 天)灵活筛选
  • 图表可视化 —— 柱状图和饼图展示用量趋势与分布
  • 管理员视图 —— 管理员可查看所有用户的用量数据

27 个 MCP 工具

运行时 Agent 通过内置 MCP Server 与主进程通信(22 个无条件 + 5 个条件触发):

工具说明
send_message / send_image / send_file运行期间向用户/群组立即发送消息、图片或文件
schedule_task / list_tasks / update_task创建定时/循环/一次性任务(cron / interval / once);列出并更新任务
pause_task / resume_task / cancel_task暂停、恢复、取消任务
register_group注册新群组(仅 admin 主工作区可用)
install_skill / uninstall_skill / create_skill安装、卸载或创建 Skill(仅主工作区可用)
memory_append / memory_search / memory_get追加、全文检索并读取工作区记忆文件
kb_search检索挂载的知识库(FTS5 + 可选向量嵌入)
sandbox_run_code / sandbox_close在加固沙箱中运行 Python / Node / shell 代码;关闭沙箱会话
sandbox_browser_navigate / _click / _type / _screenshot / _evaluate在沙箱内驱动 Chromium CDP 浏览器
discord_get_server_info / discord_get_channel_info / discord_get_history读取 Discord 服务器/频道元数据和消息历史

定时任务

  • 三种调度模式 —— Cron 表达式 / 固定间隔 / 一次性执行
  • 两种执行类型 —— Agent(启动完整的 Claude Agent)/ Script(直接执行 shell 命令)
  • 两种上下文模式 —— group(在指定会话中执行)/ isolated(独立隔离环境)
  • 通知渠道 —— 任务完成时通知指定 IM 通道(飞书 / Telegram / QQ / 钉钉 / 微信 / Discord)
  • 完整执行日志 —— 耗时、状态、结果,全部通过 Web 界面管理

记忆系统

Agent 自主维护跨会话的持久记忆:

  • 用户全局记忆 —— data/groups/user-global/{userId}/CLAUDE.md;每个用户有独立的全局记忆,所有会话可读
  • 会话记忆 —— data/groups/{folder}/CLAUDE.md,会话私有
  • 日期记忆 —— memory/YYYY-MM-DD.md,用于时间相关信息
  • 对话归档 —— PreCompact Hook 在上下文压缩前自动归档到 conversations/
  • 全文检索 —— 从 Web 界面在线编辑 + 检索

工作区级配置

每个工作区可独立配置自己的运行时环境:

  • Per-workspace MCP Servers —— 为工作区添加 stdio 或 HTTP MCP Servers,独立于全局配置
  • Per-workspace Skills —— 为工作区安装特定 Skills,按需启用
  • Per-workspace 环境变量 —— 群组级环境变量覆盖,优先级高于全局配置
  • 共享工作区成员 —— 多个用户可加入同一工作区协作
  • 跨组 ACL —— 纯授权函数治理群组间 IPC 路由(folder / user / 绑定 IM 规则),使非主工作区 Agent 能安全地向绑定通道发消息

IM 绑定系统

将 IM 通道绑定到工作区的灵活机制:

  • 工作区级绑定 —— 将 IM 群组/私聊绑定到指定工作区或特定会话
  • 飞书话题群映射 —— 绑定飞书话题群后,每个话题自动映射为独立会话并拥有自己的上下文;工作区切换为纵向话题列表导航
  • 斜杠命令管理 —— /bind <target> 绑定,/unbind 解绑,/where 查看当前绑定,/new <name> 创建新工作区并绑定
  • Web 设置管理 —— 在设置页查看并管理所有 IM 绑定

Skills 系统

  • 项目级 Skills —— 放在 container/skills/,自动挂载到所有容器
  • 用户级 Skills —— 放在 ~/.claude/skills/,自动挂载到所有容器
  • 工作区级 Skills —— 通过 Web 界面为特定工作区安装 Skills
  • 无需重新构建镜像;通过卷挂载 + 符号链接实现自动发现

Web 终端

基于 xterm.js + node-pty 的完整终端:WebSocket 连接、可拖拽可调整大小的面板,直接从 Web 界面操作容器。

Docker 构建 UI

在 Web 监控页一键构建 Docker 镜像;构建日志通过 WebSocket 实时流式输出 —— 无需在终端手动执行命令。

移动端 PWA

针对移动端优化的 Progressive Web App,可从移动浏览器一键安装到桌面:

  • 原生体验 —— 全屏模式、独立应用图标,视觉上与原生应用无异
  • 响应式布局 —— Mobile-first 设计;聊天界面、设置页和监控面板均适配小屏
  • iOS / Android 适配 —— 安全区处理、滚动优化、字体渲染、触控交互
  • 随时可用 —— 随时随地拿出手机即可与 AI Agent 对话、查看执行状态、管理任务

文件管理

  • 完整文件浏览器 —— 树形目录结构、文件类型图标
  • 文件操作 —— 上传(50MB 限制,支持拖拽)/ 下载 / 删除 / 创建目录
  • 文件预览 —— 在线文本文件查看、图片预览 + 灯箱、Markdown 渲染、Office 文档 → PDF 预览
  • 安全 —— 路径遍历防护 + 系统路径保护

安全 & 多用户

能力说明
用户隔离每个用户拥有独立主工作区(home-{userId})、工作目录和 IM 通道
个性化用户可自定义 AI 名称、头像 emoji / 颜色 / 上传图片
RBAC5 种权限,4 种角色模板(admin_full / member_basic / ops_manager / user_admin)
注册控制开放注册 / 邀请码注册 / 关闭注册
审计日志18 种事件类型,完整操作追踪
加密存储API 密钥使用 AES-256-GCM 加密;Web API 仅返回掩码值
挂载安全白名单校验 + 黑名单模式匹配(.ssh.gnupg 等敏感路径)
终端权限用户可访问自己容器的 Web 终端(host 模式不支持)
登录保护5 次失败锁定 15 分钟,bcrypt 12 轮,HMAC Cookie,30 天会话有效期
会话管理查看并删除活跃登录会话;支持多设备管理
CORS / WS 防御可配置放行来源;WebSocket upgrade 拒绝非白名单来源并返回 403(CSWSH 防御)
PWA一键安装到手机桌面,针对移动端深度优化,随时随地使用 AI Agent

快速开始

前置条件

开始前,请确保已安装以下依赖:

必装

  • Node.js >= 20 —— 运行主服务和前端构建

  • Docker —— 在容器模式下运行 Agent 和代码执行沙箱(member 用户必装;admin 仅用 host 模式可跳过)

  • Claude API Key —— Anthropic 官方或兼容的中转服务(各种 Coding Plan 均可);启动后在 Web 界面配置

可选(仅当你需要对应 IM 通道时)

Claude Code CLI 无需手动安装 —— 作为项目依赖打包的 Claude Agent SDK 已包含完整的 CLI 运行时,首次 make start 时会自动安装。

安装与启动

# 1. 克隆仓库
git clone https://github.com/AIGeniusInstitute/deep-think.git
cd deepthink

# 2. 一键启动(首次运行自动安装依赖 + 编译)
make start

打开:http://localhost:9898

如需公网访问,请自行用 nginx/caddy 配置反向代理

按设置向导完成初始化:

  1. 创建管理员 —— 自定义用户名和密码(无默认账号)
  2. 配置 Claude API —— 填入 API key 和模型(支持中转服务;可配置多个提供商)
  3. 配置 IM 通道(可选)—— 飞书 / Telegram / QQ / 钉钉 / 微信 / Discord / WhatsApp
  4. 开始对话 —— 直接从 Web 聊天页发消息

所有配置均通过 Web 界面完成,无需任何配置文件。API 密钥以 AES-256-GCM 加密存储。

启用容器模式

admin 用户默认使用 host 模式(无需 Docker),开箱即用。对于容器模式(member 用户注册后自动使用):

# 构建容器镜像
./container/build.sh

#(可选)构建用于代码执行 + 浏览器自动化的加固沙箱镜像
make sandbox-build

新用户注册时会自动创建容器模式主工作区(home-{userId})—— 无需额外配置。

配置飞书集成

  1. 前往飞书开放平台创建企业自建应用

  2. 在应用的"事件订阅"下添加:im.message.receive_v1(接收消息)

  3. 在应用的"权限管理"下启用以下权限:

    • cardkit:card:write(创建并更新卡片)
    • im:chat / im:chat:read / im:chat:readonly(群组信息)
    • im:message(发送消息)
    • im:message.group_at_msg:readonly(接收群 @ 消息)
    • im:message.group_msg(接收所有群消息)—— 敏感权限,需管理员审批。无此权限时,群内仅处理 @-Bot 消息
    • im:message.p2p_msg:readonly(接收私聊消息)
    • im:resource(获取并上传图片/文件资源)
  4. 发布应用版本并等待审批

  5. 在 DeepThink Web 界面"Settings → IM Channels → Feishu"下填入 App ID 和 App Secret

每个用户可在个人设置中独立配置飞书应用凭据,从而启用 per-user 飞书 Bot。

群聊 mention 控制:默认情况下群聊需要 @-Bot 才会响应。使用 /require_mention false 切换为全量消息响应(需 im:message.group_msg 权限)。

飞书话题群:将飞书话题群(chat_mode=topicgroup_message_type=thread)绑定到工作区后,每个话题会自动创建一个拥有独立上下文和消息历史的会话 Agent。Web 界面切换为纵向话题列表,支持搜索和删除。解绑时会自动清理所有话题会话。

配置 Telegram 集成

  1. 在 Telegram 中找到 @BotFather,发送 /newbot 创建 Bot
  2. 保存返回的 Bot Token
  3. 在 DeepThink Web 界面"Settings → IM Channels → Telegram"下填入 Bot Token
  4. 群聊使用:要在 Telegram 群中使用 Bot,请在 BotFather 中发送 /mybots → 选择该 Bot → Bot Settings → Group Privacy → Turn off;否则 Bot 只能收到 / 命令消息

配置 QQ 集成

  1. 前往 QQ 开放平台,用手机 QQ 扫码注册并登录
  2. 创建一个 bot,设置名称和头像
  3. 在 bot 管理页面获取 App IDApp Secret
  4. 在 DeepThink Web 界面"Settings → IM Channels → QQ"下填入 App ID 和 App Secret
  5. 配对:在设置页生成配对码,然后在 QQ 中向 Bot 发送 /pair <配对码> 完成绑定

QQ Bot 使用官方 API v2 协议,支持 C2C 私聊和群聊 @-Bot 消息。在群聊中,Bot 只接收 @-Bot 消息。C2C 私聊支持流式打字机回复。

配置钉钉集成

  1. 前往钉钉开放平台创建企业内部应用
  2. 在 App Management → Bots & Messaging 下启用"Bot Configuration"
  3. 选择 Stream mode(非 HTTP 回调模式)以接收消息
  4. 获取应用的 Client ID(AppKey)和 Client Secret(AppSecret)
  5. 在 DeepThink Web 界面"Settings → IM Channels → DingTalk"下填入 Client ID 和 Client Secret

钉钉 Bot 支持私聊和群聊。在群聊中,Bot 只响应 @-Bot 消息。支持 AI Card 流式打字机效果。

配置微信集成

  1. 在 DeepThink Web 界面"Settings → IM Channels → WeChat"下启用微信通道
  2. 填入 iLink Bot Token
  3. 点击"扫码配对"生成二维码
  4. 用微信扫码完成绑定

微信消息限制为 2000 字符;超长内容会自动分片。来自微信 CDN 的图片会先下载并 AES 解密后再传给 Agent。

配置 Discord 集成

  1. 前往 Discord Developer Portal 创建应用
  2. 在"Bot"标签下创建一个 bot 并复制其 Token
  3. 在"OAuth2 → URL Generator"下选择 bot 和(可选)applications.commands scope,勾选所需权限(Send Messages、Read Message History、Attach Files),打开生成的 URL 将 bot 邀请到你的服务器
  4. 在 DeepThink Web 界面"Settings → IM Channels → Discord"下填入 Bot Token

Discord 支持 guild(服务器)频道和私聊。长消息在 2000 字符处自动分片;回复采用 500ms 节流的流式编辑打字机效果,Agent 开始工作时会添加一个 ack Reaction。

配置 WhatsApp 集成

  1. 在 DeepThink Web 界面"Settings → IM Channels → WhatsApp"下启用 WhatsApp 通道
  2. 点击"生成二维码"
  3. 在手机 WhatsApp 上扫码(Settings → Linked Devices)
  4. 等待连接建立

WhatsApp 集成使用社区维护的 Baileys 库(WhatsApp Web 协议)。登录状态通过 multi-file auth 持久化,因此只需在首次启动时扫码。媒体(图片 / 视频 / 音频 / 文档)消息会下载到工作区。详见 docs/channels/whatsapp.md(包含风险提示)。

IM 斜杠命令

在飞书 / Telegram / QQ / 钉钉 / 微信 / Discord / WhatsApp 中,以 / 开头的消息会被拦截为斜杠命令(未知命令会回退为普通消息处理):

命令缩写用途
/list/ls列出所有工作区和会话
/status-查看当前工作区/会话状态
/where-查看当前绑定位置和回复策略
/bind <target>-绑定到指定工作区或 Agent(如 /bind myws/bind myws/a3b
/unbind-解绑回到默认工作区
/new <name>-创建新工作区并将当前群绑定到它
/recall/rcAI 总结最近的对话历史
/clear-清除当前会话的会话上下文
/require_mention-切换群聊响应模式:true(需要 @)或 false(全量响应)

执行模式

模式描述对象前置依赖
宿主机模式Agent 直接在宿主机运行,访问本地文件系统Admin 主工作区(folder=mainClaude Agent SDK(自动安装)
容器模式Agent 在 Docker 容器中隔离运行,预装 40+ 工具Member 主工作区(folder=home-{userId}Docker Desktop + 已构建镜像

admin 主工作区默认为 host 模式;member 注册时自动创建容器模式主工作区。你也可以在 Web 界面的会话管理中手动切换执行模式。

容器工具链

容器镜像基于 node:22-slim,预装以下工具:

类别工具
AI / AgentClaude Code CLI、Claude Agent SDK、MCP SDK
浏览器自动化Chromium、agent-browser
编程语言Node.js 22、Python 3(pip / venv)、Go
构建工具链build-essential、cmake、pkg-config
文本搜索ripgrep (rg)、fd-find (fd)
多媒体处理ffmpeg、ImageMagick、Ghostscript、Graphviz
文档转换Pandoc、poppler-utils(PDF 工具)
数据库客户端SQLite3、MySQL Client、PostgreSQL Client、Redis Tools
网络工具curl、wget、openssh-client、dnsutils、iputils-ping、lsof
飞书 CLIfeishu-cli(预编译二进制 + Skills)
ShellZsh + Oh My Zsh(ys 主题)
其他git、jq、tree、file、shellcheck、zip/unzip、rsync、bc、patch

技术架构

架构图

在这里插入图片描述

flowchart LR
    subgraph 接入层
        Feishu(&#34;飞书<br/>(WebSocket 长连接)&#34;)
        Telegram(&#34;Telegram<br/>(Bot API)&#34;)
        QQ(&#34;QQ<br/>(Bot API v2)&#34;)
        DingTalk(&#34;钉钉<br/>(Stream 长连接)&#34;)
        WeChat(&#34;微信<br/>(iLink Bot API)&#34;)
        Discord(&#34;Discord<br/>(Gateway WS)&#34;)
        WhatsApp(&#34;WhatsApp<br/>(Baileys)&#34;)
        Web(&#34;Web 界面<br/>(React 19 SPA)&#34;)
    end

    subgraph 主进程[&#34;主进程 (Node.js + Hono)&#34;]
        Router[&#34;消息路由<br/>(2s 轮询 + 去重)&#34;]
        Queue[&#34;并发队列<br/>(20 容器 + 5 宿主机进程)&#34;]
        Scheduler[&#34;定时调度器<br/>(Cron / 间隔 / 一次性)&#34;]
        WS[&#34;WebSocket Server<br/>(流式推送 + 终端)&#34;]
        Auth[&#34;认证 & RBAC<br/>(bcrypt + HMAC Cookie)&#34;]
        Config[&#34;配置管理<br/>(AES-256-GCM 加密)&#34;]
        ProviderPool[&#34;提供商池 / 引擎<br/>(Claude/AtomCode/Codex/OpenCode)&#34;]
        Billing[&#34;计费引擎<br/>(Plan + Wallet + Quota)&#34;]
        Harness[&#34;Harness / Loop<br/>(版本化 + 自主循环)&#34;]
        PaaS[&#34;PaaS / Marketplace<br/>(Agent 即服务)&#34;]
    end

    subgraph 执行层
        Host[&#34;宿主机进程<br/>(Claude Code CLI)&#34;]
        Container[&#34;Docker 容器<br/>(agent-runner)&#34;]
        Sandbox[&#34;沙箱<br/>(代码执行 + 浏览器)&#34;]
    end

    subgraph Agent[&#34;Agent 运行时&#34;]
        SDK[&#34;Claude Agent SDK<br/>(query 循环)&#34;]
        MCP[&#34;MCP Server<br/>(27 个工具)&#34;]
        Stream[&#34;流式事件<br/>(30+ 种类型)&#34;]
    end

    KB[(&#34;知识库<br/>(FTS5 + 向量)&#34;)]
    DB[(&#34;SQLite<br/>(WAL 模式)&#34;)]
    IPC[&#34;IPC 文件通道<br/>(原子读写)&#34;]
    Memory[&#34;记忆系统<br/>(CLAUDE.md + memory/)&#34;]

    Feishu --> Router
    Telegram --> Router
    QQ --> Router
    DingTalk --> Router
    WeChat --> Router
    Discord --> Router
    WhatsApp --> Router
    Web --> Router

    Router --> Queue
    Queue --> ProviderPool
    ProviderPool --> Host
    ProviderPool --> Container
    ProviderPool --> Sandbox
    Scheduler --> Queue
    Billing --> Queue
    Harness --> ProviderPool
    PaaS --> ProviderPool

    Host --> SDK
    Container --> SDK
    Sandbox --> SDK
    SDK --> MCP
    SDK --> Stream
    SDK --> KB

    MCP --> IPC
    IPC --> Router

    Stream --> WS
    WS --> Web

    Router --> DB
    Auth --> DB
    Billing --> DB
    SDK --> Memory

    class Feishu,Telegram,QQ,DingTalk,WeChat,Discord,WhatsApp,Web fe
    class Router,Queue,Scheduler,WS,Auth,Config,ProviderPool,Billing,Harness,PaaS svc
    class DB,KB db
    class Host,Container,Sandbox faas
    class SDK,MCP,Stream faas
    class IPC cfg
    class Memory cfg

数据流:消息从接入层(8 个通道)进入主进程,去重并路由后派发到并发队列。队列通过提供商池选择 API key / 引擎,并启动宿主机进程、Docker 容器或沙箱。容器内的 agent-runner 调用 Claude Agent SDK 的 query() 函数。流式事件(30+ 种类型:思考、文本、工具调用、hooks、任务、记忆回放、循环、用量等)通过 stdout marker 协议传回主进程,再通过 WebSocket 广播到 Web 客户端,或通过 IM API 回复到各通道。MCP Server 通过基于文件的 IPC 通道提供 27 个工具,实现 Agent 与主进程的双向通信。计费引擎在每次请求前检查配额和余额。Harness/Loop 层对 Agent 配置做快照并演进,同时驱动自主任务循环。

技术栈

技术
后端Node.js 22 · TypeScript 5.9 · Hono · better-sqlite3 (WAL) · ws · node-pty · Pino · Zod 4
前端React 19 · Vite 6 · Zustand 5 · Tailwind CSS 4 · shadcn/ui · Radix UI · Lucide Icons · react-markdown · mermaid · recharts · @dnd-kit · xterm.js · @tanstack/react-virtual · PWA
AgentClaude Agent SDK · Claude Code CLI · MCP SDK · IPC 文件通道
引擎Claude Code · AtomCode · Codex · OpenCode(可插拔,守护进程管理)
PaaS数据库支撑的 Agent 定义 · 模板市场 · per-user 配额 · 管理员审核
Harness / Loop版本化 harness 清单 · 自主任务循环 · 每次迭代 SDK 审查
AutonomyAutonomy Layer(event bus + capability registry + 7-capability metrics)· Autonomous Mode(3 defense layers + 4 hard brakes)· Playwright E2E acceptance
沙箱Docker + seccomp + cgroups · Chromium CDP 浏览器自动化
容器Docker (node:22-slim) · Chromium · agent-browser · Python · Go · 40+ 预装工具
安全bcrypt (12 轮) · AES-256-GCM · HMAC Cookie · RBAC · 路径遍历防护 · 挂载白名单 · 跨组 ACL
IM 集成@larksuiteoapi/node-sdk(飞书)· grammY(Telegram)· QQ Bot API v2 · dingtalk-stream(钉钉)· iLink Bot API(微信)· discord.js(Discord)· Baileys(WhatsApp)

目录结构

所有运行时数据统一在 data/ 目录下,启动时自动创建 —— 无需手动初始化。

deepthink/
├── src/                          # 后端源码
│   ├── index.ts                  #   入口:消息轮询、IPC 监听、容器生命周期
│   ├── web.ts                    #   Hono app、WebSocket、静态文件
│   ├── routes/                   #   28 个路由模块(auth / groups / files / config / monitor /
│   │                             #   memory / tasks / skills / admin / browse / agents /
│   │                             #   mcp-servers / plugins / usage / billing / bug-report /
│   │                             #   chat-trace / harness / loops / sandbox /
│   │                             #   agent-definitions / workspace-config / paas-admin /
│   │                             #   paas-agents / paas-embedding / paas-knowledge-bases /
│   │                             #   paas-marketplace / paas-share)
│   ├── feishu.ts                 #   飞书连接工厂(WebSocket 长连接)
│   ├── feishu-streaming-card.ts  #   飞书流式卡片(打字机 + 三层 fallback)
│   ├── telegram.ts               #   Telegram 连接工厂(Bot API)
│   ├── qq.ts                     #   QQ 连接工厂(Bot API v2 WebSocket)
│   ├── qq-streaming-card.ts      #   QQ 流式卡片(stream_messages 打字机)
│   ├── dingtalk.ts               #   钉钉连接工厂(Stream 协议)
│   ├── dingtalk-streaming-card.ts#   钉钉 AI Card 流式控制器
│   ├── wechat.ts                 #   微信连接工厂(iLink Bot API)
│   ├── whatsapp.ts               #   WhatsApp 连接工厂(Baileys)
│   ├── discord.ts                #   Discord 连接工厂(discord.js Gateway)
│   ├── discord-streaming-edit.ts #   Discord 流式编辑控制器
│   ├── im-manager.ts             #   IM 连接池(per-user 七通道管理)
│   ├── im-safety/                #   IM 安全原语(processing lock + stale detector)
│   ├── container-runner.ts       #   Docker / 宿主机进程管理
│   ├── group-queue.ts            #   并发控制队列
│   ├── provider-pool.ts          #   多提供商负载均衡
│   ├── atomcode-daemon-manager.ts#   可插拔引擎守护进程生命周期
│   ├── harness-*.ts              #   Harness Engineering(registry / eval / meta-loop)
│   ├── loop-orchestrator.ts      #   Loop Engineering 编排器
│   ├── supervisor.ts             #   Supervisor SubAgent(意图分流)
│   ├── plugin-*.ts               #   Claude Code Plugins(catalog / importer / materializer)
│   ├── embedding.ts              #   知识库向量嵌入
│   ├── cross-group-acl.ts        #   跨组 IPC 授权
│   ├── office-converter.ts       #   Office → PDF 预览 + 文本抽取
│   ├── i18n-languages.ts        #   29 种语言 i18n
│   ├── billing.ts                #   计费引擎(plans、wallet、quota)
│   ├── runtime-config.ts         #   AES-256-GCM 加密配置
│   ├── task-scheduler.ts         #   定时任务调度器
│   ├── script-runner.ts          #   脚本任务执行器
│   ├── file-manager.ts           #   文件安全(路径遍历防护)
│   ├── mount-security.ts         #   挂载白名单 / 黑名单
│   └── db.ts                     #   SQLite 数据层(Schema v1→v51)
│
├── web/                          # 前端(React + Vite)
│   └── src/
│       ├── pages/                #   26 个页面
│       ├── components/           #   UI 组件(chat / settings / billing / monitor / ...)
│       ├── stores/               #   21 个 Zustand store
│       └── api/client.ts         #   统一 API 客户端
│
├── container/                    # Agent 容器
│   ├── Dockerfile                #   容器镜像定义
│   ├── build.sh                  #   构建脚本
│   ├── sandbox/                  #   加固沙箱镜像(代码执行 + 浏览器)
│   ├── agent-runner/             #   容器内执行引擎
│   │   └── src/
│   │       ├── index.ts          #     Agent 主循环 + 流式事件
│   │       └── mcp-tools.ts       #     27 个 MCP 工具
│   └── skills/                   #   项目级 Skills
│
├── shared/                       # 跨项目共享类型定义
│   ├── stream-event.ts           #   StreamEvent 类型单一真相源(30+ 种)
│   ├── channel-prefixes.ts       #   IM 渠道前缀映射(7 个 IM 渠道)
│   └── image-detector.ts         #   图片 MIME 检测
│
├── scripts/                      # 构建辅助脚本
│   ├── sync-stream-event.sh      #   将 shared/ 类型同步到各子项目
│   └── check-stream-event-sync.sh#   校验类型副本一致性
│
├── config/                       # 项目配置
│   ├── default-groups.json       #   预注册群组
│   ├── mount-allowlist.json      #   容器挂载白名单
│   └── global-claude-md.template.md # 全局 CLAUDE.md 模板
│
├── desktop/                      # 桌面版 Electron 壳(macOS / Windows / Linux)
│
├── data/                         # 运行时数据(启动时自动创建)
│   ├── db/messages.db            #   SQLite 数据库(WAL 模式)
│   ├── groups/{folder}/          #   会话工作目录(Agent 可读写)
│   │   ├── downloads/{channel}/  #     IM 文件下载(按日期子目录)
│   │   └── CLAUDE.md             #     会话私有记忆
│   ├── groups/user-global/{id}/  #   用户全局记忆目录
│   ├── sessions/{folder}/.claude/#   Claude 会话持久化
│   ├── ipc/{folder}/             #   IPC 通道(input / messages / tasks)
│   ├── env/{folder}/env          #   容器环境变量文件
│   ├── memory/{folder}/          #   日期记忆
│   └── config/                   #   加密配置文件
│
└── Makefile                      # 常用命令

开发指南

首次安装
make install              # 安装根项目依赖 + 编译 agent-runner
make install-host-tools   # 安装 host 模式所需的外部工具(feishu-cli、agent-browser、uv)+ 刷新 builtin-skills 缓存

make install 会自动修复 node-pty 的 spawn-helper 可执行权限(在 macOS arm64 上,预编译二进制偶尔缺少 +x 位,会导致 Web 终端 PTY 模式失效)。

日常开发
make dev              # 并行启动前端 + 后端(热重载);首次运行自动安装依赖并构建容器镜像
make dev-backend      # 仅启动后端(tsx 直跑 TS,无需预构建)
make dev-web          # 仅启动前端(Vite 在 5173)
make status           # 查看服务状态(进程、端口、日志、Docker 容器)
make logs             # 实时查看日志(仅在手动后台化时有效,如 make start > /tmp/deepthink.log 2>&1 &)
make stop             # 停止服务(pm2 托管走 pm2 stop,否则杀掉监听端口的进程)

make dev 会自动检测 package.json 是否比 node_modules 更新,若是则重新运行 make install;同时确保 Docker 镜像存在(容器模式所需)。如果系统启用了 pm2,它会先暂停 pm2 以释放端口,退出时恢复。

构建与类型检查
make build            # 编译全部(后端 + 前端 + agent-runner,含 sync-types)
make build-backend    # 仅后端
make build-web        # 仅前端
make typecheck        # 全量 TypeScript 类型检查(后端 + 前端 + agent-runner)
make typecheck-backend    # 仅后端
make typecheck-web        # 仅前端
make typecheck-agent-runner  # 仅 agent-runner
make format           # 用 Prettier 格式化代码
make format-check     # 仅检查格式(用于 CI,不修改文件)
make test             # 运行约束测试(vitest;重构前后必跑)
make sync-types       # 将 shared/ 类型定义同步到各子项目(stream-event.ts、image-detector.ts、channel-prefixes.ts)
make clean            # 清理全部构建产物(dist/、web/dist/、container/agent-runner/dist/)

修改 shared/stream-event.ts 后必须运行 make sync-types 同步到三个子项目,否则类型会不一致。make buildmake typecheck 会自动触发同步。

生产部署
make start            # 生产一键启动(前台阻塞运行,日志输出到终端)
make update-sdk       # 手动将 agent-runner + 主服务的 Claude Agent SDK 更新到最新版本
make ensure-latest-sdk  # 启动前自动检查 SDK 是否有新版本(有则更新,无则跳过;已内置到 make start)
make sandbox-build    # 构建加固沙箱镜像 deepthink-sandbox:latest(代码执行 + 浏览器自动化)

如需后台运行:make start > /tmp/deepthink.log 2>&1 &,然后用 make logs 滚动日志,make status 查看进程状态,make stop 停止服务。

管理员账号管理
make admin-create     # 创建管理员账号(USERNAME=xxx [PASSWORD=xxx];省略 PASSWORD 则交互式输入)
make admin-passwd      # 修改管理员密码(USERNAME=xxx [PASSWORD=xxx];会清掉该账号所有旧登录会话)
数据管理
make reset-init       # 重置为首装状态(清空数据库、配置、工作区、记忆、会话、IPC、日志)
make backup           # 将运行时数据备份到 deepthink-backup-{date}.tar.gz
make restore          # 从最新备份恢复(或 make restore FILE=xxx.tar.gz 指定文件)
make migrate-data     # 将仓库内的旧 ./data 目录迁移到外部 DATA_DIR

make reset-init 会清空整个 data/ 目录 —— 仅用于测试设置向导或完全从零开始。生产环境慎用。

桌面版打包

将 DeepThink 打包为独立可执行应用(macOS .dmg / Windows .exe / Linux .AppImage);详见 CLAUDE.md §2.6。

make desktop-build      # 编译桌面版 Electron 壳(含 build + sync-types + npm install)
make desktop-fetch-node # 拉取当前平台的 Node.js 二进制到 desktop/dev-resources/node(首次打包前必做)
make desktop-rebuild-natives # 针对内置 Node ABI 重新编译原生模块(better-sqlite3 等),避免运行时 ABI 不匹配
make desktop-dev        # 桌面版开发模式:启动 Electron 壳加载本机后端
make desktop-pack-mac   # 打包 macOS .dmg(arm64 + x64,需在 macOS 上执行)
make desktop-pack-win   # 打包 Windows .exe(需在 Windows runner 上执行)
make desktop-pack-linux # 打包 Linux AppImage/.deb(需在 Linux runner 上执行)

构建产物输出到 desktop/release/,包括主 .dmg / .exe / .AppImage 文件和 .blockmap(用于增量更新)。

跨平台打包必须在对应平台的 runner 上执行(electron-builder 的限制)。macOS 可同时产出 arm64 + x64 dmg;Windows 和 Linux 只能在各自的原生平台运行。

发布 Release

DeepThink 提供两种发布到 GitHub Release 的方式:手动 make release(适合快速的单平台发布)和全自动 GitHub Actions(适合正式版本发布,三平台并行构建)。

方式一:手动发布(make release

前置条件:make desktop-pack-* 已产出制品,已创建 tag 并推送到远端。

# 1. 创建并推送 tag
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

# 2. 在本地构建制品(macOS 示例)
make desktop-pack-mac

# 3. 发布到 GitHub Release(需:brew install gh && gh auth login)
make release VERSION=v1.0.0

# 误发布时删除
make release-delete VERSION=v1.0.0

方式二:GitHub Actions 全自动(.github/workflows/release.yml

推送 v* tag 时自动触发;三平台并行构建并自动创建 Release。也可以在 GitHub 仓库的 Actions 页通过 workflow_dispatch 手动触发。如需自定义 release notes,请在推送 tag 前将内容写入 docs/release-notes/v1.0.0.md

帮助与端口
make help    # 列出所有可用 make 命令及描述
服务默认端口说明
后端9898Hono + WebSocket
前端开发服务器5173Vite,将 /api/ws 代理到后端(仅开发模式)
自定义端口

生产模式make start):仅后端服务运行;前端作为静态文件由后端提供。通过 WEB_PORT 环境变量更改端口:

WEB_PORT=8080 make start
# 打开 http://localhost:8080

开发模式make dev):前端 Vite 开发服务器(5173)和后端(9898)分别运行;开发时访问 5173。要让前端代理指向非默认后端,设置 VITE_API_PROXY_TARGETVITE_WS_PROXY_TARGET

环境变量

以下是可选的覆盖项。我们推荐使用 Web 设置向导配置 Claude API 和 IM 凭据(加密存储)。

变量默认值说明
WEB_PORT9898Web 服务端口
ASSISTANT_NAMEDeepThink助手显示名称
CONTAINER_IMAGEdeepthink-agent:latestAgent 容器镜像
CONTAINER_TIMEOUT1800000(30min)容器硬超时(可通过 Web 设置覆盖)
CONTAINER_MAX_OUTPUT_SIZE10485760(10MB)单次运行最大输出(可通过 Web 设置覆盖)
IDLE_TIMEOUT1800000(30min)容器空闲保活(可通过 Web 设置覆盖)
MAX_CONCURRENT_CONTAINERS20最大并发容器数(可通过 Web 设置覆盖)
MAX_CONCURRENT_HOST_PROCESSES5宿主机进程并发上限(可通过 Web 设置覆盖)
MAX_FILE_SIZE_MB50文件大小上限(MB),Web 上传与 IM 下载共用(可通过 Web 设置覆盖)
MAX_LOGIN_ATTEMPTS5登录失败锁定阈值(可通过 Web 设置覆盖)
LOGIN_LOCKOUT_MINUTES15锁定时长(分钟)(可通过 Web 设置覆盖)
AUTO_COMPACT_WINDOW0(禁用)SDK 自动压缩触发点(tokens);0 = 关闭(可通过 Web 设置覆盖)
TASK_BACKFILL_GRACE_MS300000(5min)重启后定时任务的逾期容忍窗口(可通过 Web 设置覆盖)
TRUST_PROXYfalse信任反向代理的 X-Forwarded-For
CORS_ALLOWED_ORIGINS空(仅 localhost)公网域名访问的放行来源;WebSocket upgrade 防御(CSWSH)所需。逗号分隔域名或 *
TZ系统时区定时任务时区

更多运行参数(容器超时、并发限制、登录保护、计费设置等)可在 Web 界面"Settings → System Settings"下配置 —— 无需环境变量。CORS_ALLOWED_ORIGINS 可写入项目根 .env(启动时由 src/load-env.ts 自动加载)。

管理员密码恢复

npm run reset:admin -- <username> <new-password>

数据重置

make reset-init

# 或手动:
rm -rf data store groups

贡献

欢迎提交 Issue 和 Pull Request!

开发流程

  1. Fork 仓库并克隆到本地
  2. 创建功能分支:git checkout -b feature/your-feature
  3. 开发并测试:make dev 启动开发环境,make typecheck 做类型检查
  4. 提交并推送到你的 Fork
  5. main 分支发起 Pull Request

Commit 约定

Commit message 使用简体中文,格式:类型: 描述

修复: 侧边栏下拉菜单无法点击
新增: Telegram Bot 集成
重构: 统一消息路由逻辑

项目结构

项目包含四个独立的 Node.js 项目,每个都有自己的 package.jsontsconfig.json

项目目录用途
主服务/(根目录)后端服务(28 个路由模块)
Web 前端web/React SPA(26 个页面,21 个 store)
Agent Runnercontainer/agent-runner/容器内 / 宿主机上的执行引擎
桌面版外壳desktop/Electron 打包,覆盖 macOS / Windows / Linux

此外,shared/ 目录存放跨项目的共享类型定义(StreamEvent、Channel Prefixes、Image Detector),在构建时通过 make sync-types 同步到各子项目。

Star History

在这里插入图片描述

License

MIT

Languages