silent-Tiangong

mcp
Security Audit
Pass
Health Pass
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 23 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

基于 Rust + Tauri 的桌面级个人 AI 智能终端:GUI / CLI / Server 三入口,内置嵌入式浏览器人机协同、多智能体协作、WASM 插件生态(MCP/Skill/记忆/定时任务),支持飞书/微信/QQ 移动端远程控制。

README.md

Silent-Tiangong(天工)

面向个人工作流的桌面级 AI 自动化中枢:对话、规划、执行、记忆、工具调用、嵌入式浏览器、多智能体协作、移动端控制和定时任务。

天工是一个基于 Rust、Tauri 和 silent 构建的个人智能终端。它既可以作为桌面 AI 助手使用,也可以通过 CLI 和 Server API 接入脚本、服务或外部消息通道。核心目标不是只回答问题,而是让 Agent 能围绕真实工作区读取资料、拆解任务、调用工具、执行命令、保存长期记忆,并在你主动要求分工时招募 Sub Agent 协作。天工内置嵌入式浏览器,Agent 可自主打开网页、读取页面内容、点击元素和填写表单,同时感知用户在浏览器中的操作行为,实现人机协同浏览;通过飞书、微信、QQ 等 IM 平台接入移动端控制,可随时随地远程驱动 Agent,配合定时任务和 Webhook 实现按计划或按事件自动执行。项目完全适配 DeepSeek 的上下文缓存机制,多轮对话中历史消息可被高效命中缓存,显著降低重复传输成本并提升响应速度。DeepSeek 适配已跟进 V4 新版接口(deepseek-v4-pro / deepseek-v4-flash),支持思考模式(reasoning_effort 分档控制)、结构化与文本协议双通道工具调用解析,以及流式 KV cache 命中率统计。模型推荐使用 DeepSeekKimi 的 kimi-k3 和 智谱 的 GLM5.2,其他模型可以通过自定义供应商接入。

安全提示:天工当前未使用沙箱技术隔离工具执行环境。如果你对本地文件访问、命令执行或自动化操作的隔离要求较高,建议暂时考虑其他软件。

多智能体协作示例

项目起源

天工的出发点很简单:让 AI 不只是聊天,而是能真正帮你干活。遇到需要读文件、跑命令、查资料、操作网页这类实际工作,当前体验最好的是 Claude、Codex、OpenCode 这类 CLI 终端工具,但它们受限于终端环境,无法提供可视化的操作界面和交互反馈。主流大厂的产品则集中在两个方向:Claude 桌面端资源消耗巨大,ChatGPT 桌面端只有搜索能力,而且它们的核心场景都是 coding。对于普通用户来说,这些产品对接其他平台模型也不够直观,需要一定的折腾能力。更重要的是,现有工具在浏览网页等交互式场景中人的参与度过低——提交任务后只能等待结果,或者直接打断再继续和 Agent 沟通,缺乏实时协同的能力。天工内置嵌入式浏览器,用户和 Agent 可以同时操作同一个页面,Agent 自主完成任务的同时能感知用户的操作行为,实现真正的人机协同。再加上多智能体协作、长期记忆、多媒体生成等能力,以及桌面 GUI、CLI 和 Server 三种入口,不限于写代码,而是覆盖日常工作全场景的个人智能终端。整个项目用 Rust 构建,单机运行,数据本地存储,不依赖云服务。

核心能力

能力 说明
桌面 Agent Tauri + React + shadcn/ui 桌面界面,支持会话、工作区、工具过程、模型配置和运行状态展示
嵌入式浏览器 内置多标签浏览器,Agent 可自主浏览网页、读取页面内容、点击元素、填写表单,用户也可手动操作
CLI / Server 同一个 tiangong 入口支持命令行、后台 Server、更新检查和安装
多智能体协作 主 Agent 可按任务创建 PM、Developer、Tester、Researcher 等 Sub Agent,并通过消息和文件锁协作
WASM 插件生态 工具执行、MCP/Skill、定时任务(Cron/Webhook)、长期记忆、多媒体生成、Coding 工作模式、桌面应用控制等能力均以独立签名发布的 WASM 插件提供,支持默认推荐、安装进度、按需启停和本地导入开发
移动端控制 通过独立 Bot 制品接入飞书、微信、QQ,支持扫码配置、运行托管、日志查看和图片/文件收发
DeepSeek V4 适配 V4 新版接口,支持思考模式分档、结构化与文本协议双通道工具调用解析、流式 KV cache 统计
权限治理 桌面会话可在监督模式和信任模式之间切换,Server 模式使用受控的远程角色边界
发布更新 GitHub Release 分发安装包,桌面设置页和 tiangong update 共用在线更新链路

WASM 插件系统

天工的所有内置能力(文件、命令、网页抓取、MCP、Skill、记忆、调度、索引、媒体、Prompt、Coding、Computer Use 等)均已 WASM 化,运行在独立 sidecar 中,通过 WIT 接口与主程序解耦:

  • 独立签名发布:每个插件单独构建、签名和发布,CI 校验签名清单与目录结构,支持默认插件推荐与安装进度展示。
  • 按需启停:插件可在桌面设置页或 CLI 中启停、卸载和更新,失败不影响主进程稳定性。
  • 能力声明过滤:插件通过 WIT 声明自身能力(工具、媒体、记忆等),主程序按能力路由请求。
  • mention 候选:插件可通过 Core 接口聚合 mention 候选,统一接入提示补全。
  • 本地开发:参考 WASM 插件开发指南 编写清单、构建 sidecar 并本地导入。

插件源码位于根目录 plugins/,尚未 WASM 化的内置插件(多智能体团队、浏览器、终端)位于 crates/plugins/

多智能体协作

多智能体协作适合资料搜集、代码实现、测试验证、方案评审等需要分工的任务。Sub Agent 由用户主动招募——当你明确要求并行处理、分工协作、组建团队,或用 @角色 提及一个尚未创建的成员时,主 Agent 才会创建对应的 Sub Agent;单轮可完成的任务则直接由主 Agent 处理,不会主动拆分团队。每个 Sub Agent 拥有独立的角色、状态和上下文。

用户提出复杂任务并要求分工 / 并行 / @角色
    ↓
主 Agent 按需求招募对应角色的 Sub Agent
    ↓
Sub Agent 独立执行、互相发消息、必要时获取文件锁
    ↓
主 Agent 汇总结果并回复用户

已支持的协作方式:

  • 按需招募和解散 Sub Agent,默认不主动创建。
  • send_message / broadcast_message 进行 Agent 间通讯。
  • @dev@test@all 等语法直接向指定 Agent 发送消息。
  • Sub Agent 可直接向前端推送进度、阻塞和问题。
  • 文件编辑前获取锁,避免多个 Agent 同时修改同一文件。
  • 前端按 Agent 分 Tab 展示执行细节、状态和通知。

详细设计见 RFC 0011:多智能体协作系统

嵌入式浏览器

天工内置基于 WKWebView 的多标签浏览器,支持 Agent 自主浏览和用户手动操作两种模式协同工作:

  • Agent 自主浏览:Agent 可通过 web_fetch 工具打开网页、读取页面内容、提取表单、点击元素和填写字段,操作结果自动注入回对话上下文。
  • 用户手动操作:用户在浏览器中浏览、点击、输入时,Agent 通过页面快照和网络事件感知用户行为,结合对话内容给出上下文相关的建议。
  • 浏览历史:支持全局浏览历史和标签页内前进/后退导航,历史记录持久化存储。
  • 智能感知:Agent 在执行过程中自动检测页面变化(URL 切换、内容更新、网络请求),仅在变化时注入数据,避免重复干扰。

移动端控制

天工通过独立 Bot 制品接入第三方 IM 平台,实现移动端远程控制:天工负责下载、配置、启动、监控和升级 Bot,Bot 通过 Server API 与天工通信。平台专属的扫码授权和凭证存储完全由对应 Bot 制品负责,天工只接收运行状态。

  • 已支持平台:飞书、微信、QQ,并支持本地自有 Bot 接入与第三方 Bot 目录贡献。
  • 扫码配置:桌面端调用 Bot 制品发起扫码,展示授权二维码与状态;扫码所得凭证由 Bot 自行保存,天工不接触明文。
  • 运行托管:Bot 随天工自动运行或手动启停,支持日志查看、配置删除、自动注入天工服务地址和 Token,Windows 停止时抑制终端窗口闪现。
  • MCP 主动推送:Bot 自动维护已授权主动发过消息的多目标清单,具备文本、图片和文件推送能力,MCP 注册和注销绑定到 Bot 启停流程。
  • 远程管理:通过 tiangong bot 子命令可在无图形界面环境下完成 Bot 的全生命周期管理。

定时与触发

调度与触发能力通过 scheduler 插件提供(底层基于 tiangong-scheduler crate),用于按计划或外部事件驱动 Agent 执行:

  • 定时任务:JSON 文件存储(~/.tiangong/scheduler/),复用 silent 框架内置 Scheduler,Server 启动时自动恢复已启用的 Cron Job。
  • 双模式编辑:桌面端提供简单模式和 Cron 模式两种编辑器,内置校验和下次触发预览,可关联已有会话复用上下文或自动创建新会话。
  • Webhook 触发:Server 内置独立于定时任务的 HTTP 触发能力(~/.tiangong/webhooks/),提供无需认证的外部触发端点和需认证的管理端点,支持可选签名验证。
  • 结果推送:定时任务和 Webhook 触发的结果可推送到指定 Bot 通道,与移动端控制联动。

架构

天工采用 Cargo workspace 多 crate 结构,核心引擎和各入口解耦:

crates/
  tiangong-types/       公共类型、消息、会话、任务状态和流事件
  tiangong-config/      配置加载、持久化和日志初始化
  tiangong-llm/         LLM 协议抽象和 Provider 封装
  tiangong-anthropic/   Anthropic Messages API 与 SSE 适配
  tiangong-core/        Agent 循环、工具调用、MCP、Skill、多 Agent 团队
  tiangong-memory/      长期记忆、检索、反刍和工作区隔离
  tiangong-bots/        移动端控制:Bot 制品下载、配置、启停和监控
  tiangong-scheduler/   定时任务(Cron)与 Webhook 触发
  tiangong-cli/         CLI / TUI 前端
  tiangong-entry/       统一命令入口
  tiangong-server/      HTTP REST + WebSocket Server
  tiangong-media/       图片、视频、语音等多媒体能力
  plugins/              已 WASM 化的可插拔能力(fs/command/fetch/mcp/skill/
                        memory/scheduler/index/media/prompt/coding/computer-use
                        等,独立签名发布)
  crates/plugins/       尚未 WASM 化的内置插件(agent-team/browser/terminal)
frontend/               桌面前端
src-tauri/              Tauri 桌面壳

核心执行流程:

用户输入
  ↓
会话与工作区上下文装配
  ↓
ReAct 循环:推理、工具调用、观察、继续执行
  ↓
默认由主 Agent 直接完成;用户要求分工时招募 Sub Agent 协作
  ↓
结构化事件实时推送到 GUI / CLI / Server

安装

从发布包安装

GitHub Releases 下载当前系统对应的安装包:

  • macOS:下载 .dmg,打开后将「天工」拖入「应用程序」目录。
  • Windows:下载 .msi.exe,按安装向导完成安装。
  • Linux:下载 .AppImage.deb.rpm,按发行版习惯安装或直接运行。

macOS 当前构建暂未接入 Apple 签名和公证,首次打开如提示应用已损坏,可执行:

xattr -cr /Applications/天工.app

Linux 服务器安装

在无桌面环境的服务器上(VPS、云主机、Docker 容器),推荐通过源码编译获得纯 CLI/Server 二进制(不依赖 WebKit/GTK 等桌面运行时):

# 安装编译依赖(Debian/Ubuntu)
sudo apt-get install -y build-essential pkg-config protobuf-compiler libssl-dev ca-certificates curl

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh && source "$HOME/.cargo/env"

# 编译
git clone https://github.com/silent-rs/silent-Tiangong.git && cd silent-Tiangong
cargo build --release
sudo install -m 0755 target/release/tiangong /usr/local/bin/tiangong

服务端通过模块化 CLI 完成无界面配置(详见 docs/linux-server-deployment.md):

tiangong model add-provider deepseek --protocol deepseek --base-url https://api.deepseek.com --api-key-env DEEPSEEK_API_KEY
tiangong model add-model deepseek-v4-pro --provider deepseek --model-id deepseek-v4-pro --capability chat
tiangong model route set chat deepseek-v4-pro
tiangong server config set --host 127.0.0.1 --port 8080
tiangong server token generate
tiangong doctor
tiangong server -d

命令行入口

桌面安装包内包含同一个 tiangong 入口,可用于 CLI、Server 和更新命令。macOS 可创建软链接:

ln -s /Applications/天工.app/Contents/MacOS/天工 /usr/local/bin/tiangong

Windows 可将安装目录加入 PATH。Linux 安装包通常会直接提供可执行入口。

使用

# 桌面 GUI 模式,源码运行时默认启动桌面应用
cargo run --release

# CLI 模式
cargo run --release -- cli

# Server 模式
cargo run --release -- server
cargo run --release -- server -d
cargo run --release -- server stop

# 检查更新
cargo run --release -- update --check

安装后的命令行入口:

tiangong cli
tiangong server
tiangong server -d
tiangong server stop
tiangong update --check
tiangong update

更新机制:桌面应用通过设置页或 tiangong update 自动下载安装更新;CLI/Server 二进制(Linux 服务器)当前需重新编译或下载新版本二进制替换(tiangong update --check 仅检查版本不自动安装)。配置独立存储在 ~/.tiangong/,更新二进制不丢失配置。

模块化配置(0.12.0+)

纯服务端环境可通过 CLI 完成与桌面设置页等价的分模块配置,无需 GUI(设计详见 RFC 0015):

tiangong model list                      # 查看模型配置
tiangong model route set chat deepseek-v4-pro  # 切换 chat 模型
tiangong server token show               # 查看 Server Token
tiangong memory enable                   # 启用 Memory
tiangong prompt edit                     # 编辑自定义 Prompt
tiangong bot list                        # 查看已配置 Bot
tiangong bot start feishu                # 启动指定 Bot
tiangong config show                     # 配置概览
tiangong doctor                          # 环境诊断

配置

默认数据目录:

~/.tiangong/
  models.json           模型配置:Provider + Model + Routing
  server.json           Server 监听配置(host/port/auth_token)
  custom-prompt.md      自定义 Prompt(独立文件,CLI 可直接编辑)
  skills.json           Skill 配置
  mcp.json              MCP 配置
  sessions/             会话持久化
  logs/                 运行日志
  media/                生成或归档的媒体文件
  memory/               长期记忆数据(含独立 config.json)

模型配置采用 Provider、Model、Routing 三层结构。api_key 支持 ${ENV_VAR} 环境变量引用,便于避免明文保存密钥。自定义 Prompt 独立存储为 custom-prompt.md,可通过 tiangong prompt 命令管理。

详细的 Linux 服务器部署、systemd 托管、反向代理与更新策略见 部署指南

开发

开发或本地调试 WASM 插件前,请先阅读 WASM 插件开发指南,了解插件目录、清单、构建、sidecar 接入和本地导入流程。

# Rust 检查
cargo check --workspace

# Rust lint
cargo clippy --workspace --all-targets --tests --benches -- -D warnings

# 格式化
cargo fmt

# 前端构建
yarn --cwd frontend build

# 完整检查链
cargo fmt -- --check && cargo check --workspace && cargo clippy --workspace --all-targets --tests --benches -- -D warnings && cargo nextest run --workspace --no-tests pass

前端开发使用 yarn:

yarn --cwd frontend install
yarn --cwd frontend dev

文档

许可证

Apache License 2.0

Reviews (0)

No results found