DeepChat 本地优先 AI Agent 桌面客户端完全指南:Tape 会话体系、Skills、ACP 与远程控制实战
【免费下载链接】deepchat🐬DeepChat - A smart assistant that connects powerful AI to your personal world项目地址: https://gitcode.com/GitHub_Trending/dee/deepchat
DeepChat 是一款开源的本地优先(local-first)AI Agent 桌面客户端,将模型、工具、Skills、Agent 运行时、Tape 会话记录与长时间运行会话统一收敛到单一桌面应用中。本文基于官方日文版文档,结合仓库源码,系统讲解其 Tape/Trace 会话架构、可携带 Skills、ACP 原生集成、IM 远程控制等核心能力,并给出从安装、配置模型到本地开发与多平台构建的完整实战路径。读完本文,你将掌握如何安装部署 DeepChat、接入云端与本地模型、按会话启用 Skills,以及如何把它接入 Telegram、飞书、Discord 等消息渠道远程驱动。
项目定位与技术架构概览
DeepChat 的核心定位是本地优先的 Agent 桌面客户端:无论是接入 OpenAI、Gemini、Anthropic 等云端 API,还是连接本地部署的 Ollama 模型,都在同一个应用内完成,保持流畅一致的使用体验。
其会话与 Agent 进程设计遵循 Tape.systems 哲学——"保留过程"(keep the process):上下文、工具调用、请求与结果都保持可恢复(recoverable)、可追踪(traceable)、可检查(inspectable)。在此基础上,DeepChat 提供完善的 MCP(Model Context Protocol)支持、可安装的 Skills、ACP(Agent Client Protocol)Agent 集成,以及来自 Telegram、飞书/Lark、QQBot、Discord、微信 iLink 等 IM 工具的远程控制能力。
从代码结构看,这是一个标准的 Electron 三进程应用(详见 CONTRIBUTING.md):
- 主进程(
src/main/):承担窗口/标签管理、配置、模型提供商、MCP、知识库、同步等运行时编排与持久化;会话数据存放在 SQLite(app_db/chat.db),设置存放在 Electron Store,知识库使用 DuckDB。 - 预加载层(
src/preload/):上下文隔离的桥接层,对外暴露类型化的window.deepchatAPI。 - 渲染进程(
src/renderer/):基于 Vue 3 + Pinia 的界面层,业务代码位于src/renderer/src(组件、stores、视图、i18n)。
这种"数据交互与 UI 行为分离"的架构,使模型提供商、MCP 服务高度解耦,便于以最小成本定制扩展。
为什么选择 DeepChat:核心优势
与其他 AI 工具相比,DeepChat 的差异化优势可以归纳为以下几点:
- 本地优先的 Agent 桌面客户端:DeepChat Agent、ACP Agent、支持远程控制的 Bot 可以同时运行在同一个本地应用中。
- Tape.systems 哲学:保留可恢复的会话历史;当 Agent 工作变复杂时,可以检查请求上下文与 token 预算。
- 可携带的 Skills:按会话安装、导入、导出、启用 Skills,覆盖代码审查、文档、前端、Office/PDF 等任务。
- 原生 ACP 集成:把 ACP 兼容的编码/任务 Agent 作为"模型"同级的入口来使用。
- 出色的 MCP 支持:支持 Resources、Prompts、Tools 三大核心,支持多种 Transport、inMemory 服务与一键安装。
- 远程就绪的工作流:从 Telegram、飞书/Lark、QQBot、Discord、微信 iLink 操作 DeepChat 会话。
- 统一的多模型管理:主流云端 LLM 与本地 Ollama 模型在单一应用中统一管理,无需在多个应用间切换。
- 隐私优先:本地数据存储与网络代理支持,降低信息泄露风险。
- 商业友好:基于 Apache License 2.0 开源,适合商业与个人使用。
核心功能全景
本地优先的 Agent 桌面客户端
- 在接近"模型选择"的统一入口中选择 DeepChat、ACP 与支持远程的 Agent;
- 支持带项目文件夹、权限模式、工具输出与可恢复上下文的长时运行会话。
Tape 与 Trace
- Session Tape 记录结构化的作业历史,为恢复、续跑与未来的 Agent memory 流程提供支撑;
- Trace 预览可查看请求序号、提供商/模型元信息、Tape view manifest、包含的条目与 token 预算。
Skills
- 支持从文件夹、ZIP 文件、URL 安装 Skills;
- 按会话启用 Skills,让 DeepChat 加载任务专属指令、参考资料与可选脚本;
- 可与 Claude Code、Codex、Cursor、Windsurf、GitHub Copilot 等兼容工具互相导入/导出;
- 内置 Skills 覆盖生成艺术、代码审查、DeepChat 设置、文档协作、DOCX、前端设计、git commit 消息、信息图语法、MCP 构建、PDF、PPTX、Skill 创建、Web Artifacts、XLSX 等工作流。
ACP(Agent Client Protocol)Agent 集成
- 将 ACP 兼容 Agent(内置或自定义命令)作为可选择的"模型"运行;
- 当 Agent 提供时,通过 ACP Workspace UI 展示结构化计划、工具调用与终端输出。
远程控制
- 从 Telegram、飞书/Lark、QQBot、Discord、微信 iLink 操作 DeepChat 会话;
- 支持将远程端点绑定到会话,远程切换模型、回答待处理交互、停止运行、在桌面打开会话。
丰富的聊天能力
- 基于 CodeMirror 的完整 Markdown 渲染(含代码块渲染);
- 多窗口 + 多标签架构,支持跨维度多会话并行,像用浏览器一样使用大模型;
- 支持 Artifacts 渲染多种结果展示;
- 消息支持重试生成多个变体,对话可自由分叉(fork);
- 支持图片、Mermaid 图表等多模态内容渲染,支持 GPT-4o、Gemini、Grok 的文本生图能力;
- 支持在内容中高亮搜索结果等外部信息来源。
搜索增强能力
- 内置博查搜索、Brave Search 等主流搜索 API,让模型智能判断搜索时机;
- 通过模拟用户网页浏览,支持 Google、Bing、Baidu、搜狗公众号搜索等主流搜索引擎;
- 支持读取任意搜索引擎:只需配置搜索助手模型,即可把内网、无 API 的引擎、垂直领域搜索引擎接入为模型的信息源。
MCP 支持
- 完整支持 Resources / Prompts / Tools 三大核心;
- 支持 StreamableHTTP、SSE、Stdio 等 Transport;
- 内置 Node.js 工具链(按需从设置安装),npx/node 系服务开箱即用;
- 支持代码执行、Web 信息获取、文件操作等 inMemory 服务;
- 清晰展示工具调用、参数与返回值,便于调试;
- 通过 DeepLink 支持 MCP 服务一键安装。更深入的主进程 MCP 实现可参阅 docs/architecture/mcp-v2-protocol/spec.md。
其他能力
- 多平台支持:Windows、macOS、Linux;
- 本地模型部署:集成 Ollama 的完整管理能力,无需命令行即可控制、管理 Ollama 模型的下载、部署与运行;
- DeepLink 支持:通过链接发起会话、与其他应用无缝集成,也支持 MCP 服务一键安装;
- 安全优先设计:聊天数据与配置数据预留加密接口与代码混淆能力;
- 隐私保护:支持屏幕投影隐藏、网络代理等方式降低信息泄露风险;
- 商业友好:清晰代码结构、模型提供商与 MCP 服务高度解耦、架构合理,拒绝简单 Web 套壳,充分利用 Electron 能力。
深入 Tape 与 Trace:可恢复的会话事实存储
Tape 是 DeepChat 最具辨识度的架构特性。仓库中的 docs/architecture/tape-system.md 详细规定了其设计:Tape 是与 Session 同寿命的append-only fact store(只追加的事实存储),在同一物理条目序列中承载三族语义隔离的事实:
- Context Tape:保存可回放的消息事实、anchor、ViewManifest、provider attempt 与 Subagent lineage,服务于上下文组装、召回、回放与审计;
- Execution Journal:保存 Run、工具副作用与终态的原生边界事实,服务于失败分类与崩溃后对账;
- Contract lineage:保存冻结的任务语义与验收裁决,服务于实时委派(live delegation)的约束、交接、评价与审计。
Tape 条目只能追加:更正、压缩与交接都通过新 fact/anchor 表达,不原地改写旧 entry;anchor 改变后续读取起点或重建状态,但不删除被覆盖的历史。这保证任何时刻都能回溯完整作业轨迹。
在 Trace 预览中,你可以看到请求序号、提供商/模型元信息、Tape view manifest、包含/排除的上下文条目与 token 预算——这正是长时 Agent 会话易于调试与续跑的原因。模型只可调用tape_search与tape_context两个工具(tape_info、tape_anchors为诊断用途),且这五个名称均为 reserved,MCP 不能 shadow,持久化 disabled-tool 配置也不能关闭这一 system capability。
关键实现与测试路径:
- 领域纯逻辑:
src/main/tape/domain/ - 应用服务与
SessionTape兼容 facade:src/main/tape/application/ - 存储实现(entry store、search projection、lifecycle adapter):
src/main/tape/infrastructure/sqlite/ - 运行时组装与策略:
src/main/agent/deepchat/runtime/tapeViewAssembler.ts、tapeViewPolicy.ts - 行为测试:
test/main/session/data/tape*.test.ts、test/main/tape/layerBoundaries.test.ts
Skills:可携带的领域能力
DeepChat Skills 按标准Agent Skills 规范兼容设计:一个 Skill 可包含任务指令、参考资料、资产与可选脚本,启用后 DeepChat 会像该领域的专家助手一样工作。
快速上手三步:
- 打开设置 → Skills;
- 安装或导入 Skill(支持文件夹、ZIP 文件、URL 三种来源);
- 在需要的会话中启用该 Skill。
Skills 可与 Claude Code、Codex、Cursor、Windsurf、GitHub Copilot、Kiro、Antigravity、OpenCode、Goose、Kilo Code 等兼容工具互相导入/导出,因此可以在不同工具之间"随身携带"你的领域能力。
从源码看,Skills 的实现采用**渐进披露(progressive disclosure)**三层设计(详见 docs/architecture/skill-progressive-disclosure/spec.md):Route(系统提示中的有界路由目录)→ Discover(通过skill_list的有界本地搜索与游标分页)→ Activate(按激活作用域投影的有效内容构建器,并由 Tape fact 背书)。这种设计让已安装的 Skills 始终可发现,又不会让每次首个请求都随完整目录膨胀而变慢。相关主进程代码位于 src/main/skill/(路由目录routingCatalog.ts、发现 workerdiscoveryWorker.ts、导入服务agentSkillImportService.ts、工具定义skillTools.ts等)。
ACP 集成:把外部 Agent 运行时变为一等公民
DeepChat 内建对Agent Client Protocol(ACP)的支持,可将外部 Agent 运行时原生集成到应用中。启用后,ACP Agent 会出现在模型选择器中,作为"模型"供选择,并可与 ACP Workspace UI 一起在 DeepChat 内使用编码/任务类 Agent。
快速上手三步:
- 在设置 → ACP 代理(ACPエージェント)中启用 ACP;
- 启用内置 ACP Agent,或添加 ACP 兼容命令;
- 在模型选择器中选择该 ACP Agent 启动会话。
底层实现位于 src/main/agent/acp/,包含 Agent 仓库(acpAgentRepository.ts)、启动逻辑(launch/)、运行时(runtime/)、兼容层(compatibility/)与路由(routes.ts)。从架构文档看,ACP 兼容请求保留有界的 Route 元数据,但不会把本地完整 Skill 正文投射到 provider(ACP 绕过 DeepChat 的 materialization 与权威上下文准入路径,因此不会在 ACP 侧注入无 Tape authority 的可变本地指令)。
远程控制:从 IM 渠道驱动 DeepChat 会话
远程控制让你离开桌面时仍能继续同一会话。配置入口在设置 → Remote。支持 Telegram、飞书/Lark、QQBot、Discord、微信 iLink 五个渠道;从源码目录结构看,每个渠道在主进程 src/main/remote/channels/ 下有独立实现(telegram/、feishu/、qqbot/、discord/、weixinIlink/)。
远程端点可绑定到单个 DeepChat 会话,支持的操作包括:从远程聊天创建新会话、列出最近会话并切换、停止生成、在桌面打开当前会话、回答待处理的问题与权限请求、切换模型、查看运行状态。
主要命令:/start、/help、/pair、/new、/sessions、/use、/stop、/open、/pending、/model、/status。在命令路由实现 src/main/remote/conversation/commandRouter.ts 中还可以看到,处于待处理交互状态时仅允许start、help、status、open、pending五个命令(TELEGRAM_PENDING_ALLOWED_COMMANDS),其余操作需先处理完待办交互。
支持的模型提供商
DeepChat 支持大量云端 LLM 提供商与本地部署方案,包括:DeepSeek、OpenAI(含 Responses API)、Moonshot/Kimi、Grok、Gemini、Anthropic、Ollama、七牛云(Qiniu)、New API、智谱(Zhipu)、PPIO、MiniMax、Fireworks、AIHubMix、豆包(Doubao)、阿里云百炼(DashScope)、Groq、JieKou.AI、ZenMux、GitHub Models、LM Studio、腾讯混元(Hunyuan)、302.AI、Together、Poe、Vercel AI Gateway、OpenRouter、Azure OpenAI、TokenFlux、BurnCloud、CherryIn、ModelScope、AWS Bedrock、Voice.ai、Vertex AI、GitHub Copilot、小米(Xiaomi)、o3.fan、Novita AI、Astraflow、SiliconFlow、OrcaRouter、Synthorai 等。
关键兼容性声明:与 OpenAI/Gemini/Anthropic API 格式兼容的任何模型提供商都可以接入。这意味着你可以通过自定义端点或兼容网关,把内网部署、私有化模型与各类聚合平台统一接入同一套配置体系。模型提供商相关实现位于 src/main/provider/。
典型使用场景
- 日常助手:回答问题、提供建议、辅助写作;
- 开发辅助:代码生成、调试、技术问题排查;
- 学习工具:概念讲解、知识探索、学习引导;
- 内容创作:文案撰写、创意灵感、内容优化;
- 数据分析:数据解读、图表生成、报告撰写。
快速上手
下载与安装
DeepChat 提供三种安装途径:
方式一:GitHub Releases
从 GitHub Releases 页面下载对应系统的最新版本:
- Windows:
.exe安装文件; - macOS:
.dmg安装文件; - Linux:
.AppImage或.deb安装文件。
方式二:官方网站
从官方网站的下载页获取安装包。
方式三:Homebrew(仅 macOS)
brew install --cask deepchat配置模型
- 启动 DeepChat 应用;
- 点击设置图标;
- 选择"模型提供商"标签页;
- 添加 API Key,或配置本地 Ollama。
开始对话
- 点击 "+" 按钮新建会话;
- 选择要使用的模型;
- 开始与 AI 助手对话。
开发指南
开发前请先阅读 CONTRIBUTING.md。从 package.json 可以看到,项目对工具链有明确版本约束:Node.js 需满足>=24.18.0 <25,pnpm 需满足>=10.34.5 <11,且通过preinstall钩子强制使用 pnpm。
克隆与安装依赖
git clone https://gitcode.com/GitHub_Trending/dee/deepchat cd deepchat pnpm install pnpm run installRuntime若出现No module named 'distutils'错误,需要先安装 setuptools:
pip install setuptoolsWindows 注意:非管理员用户需要开启"开发者模式"或使用管理员账户,才能创建符号链接/硬链接,否则 pnpm 操作会失败。
启动开发
pnpm run dev项目还提供带调试能力的变体:pnpm run dev:inspect(附加调试端口 9229)、pnpm run dev:linux(Linux 下以--noSandbox启动)。
构建
# Windows pnpm run build:win # macOS pnpm run build:mac # Linux pnpm run build:linux # 指定架构打包 pnpm run build:win:x64 pnpm run build:win:arm64 pnpm run build:mac:x64 pnpm run build:mac:arm64 pnpm run build:linux:x64 pnpm run build:linux:arm64构建链路本身包含类型检查(pnpm run typecheck,node + web 双目标)、electron-vite 构建与 CLI 构建(pnpm run build)。Windows 与 Linux 由 GitHub Action 自动打包;macOS 相关签名与打包流程可参阅 docs/release-flow.md 及维护者发布规范(pnpm run release:ff -- release/<version> --tag v<version>快进发布流程)。
测试与质量门禁
- 单元测试:
pnpm run test(Vitest,test/main、test/renderer两套用例); - 渲染层测试:
pnpm run test:renderer; - 端到端测试:
pnpm run e2e:smoke(Playwright,配置见 test/e2e/playwright.config.ts); - 格式与 lint:
pnpm run format、pnpm run lint(oxfmt + oxlint); - 国际化校验:
pnpm run i18n。
社区与贡献
DeepChat 是一个活跃的开源社区项目,欢迎以多种形式参与:报告问题、提交功能建议、提交代码改进、完善文档、参与翻译。完整的参与流程(fork 工作流、dev分支目标、PR 检查清单、代码风格规范)请查阅 CONTRIBUTING.md。
开源许可
DeepChat 基于Apache License 2.0开源(详见 LICENSE),适用于商业与个人使用场景。
【免费下载链接】deepchat🐬DeepChat - A smart assistant that connects powerful AI to your personal world项目地址: https://gitcode.com/GitHub_Trending/dee/deepchat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考