Tianshu-harness

huiliyi37Apache-2.0活跃维护

天枢是一个终端编程智能体,通过认知执行环境(CVM)把目标、状态、证据和权限从对话历史中外部化,让模型稳定交付、验证闭环,并针对 DeepSeek V4 深度优化。

天枢harness是一个的终端编程智能体,它要回答的核心问题是:模型何以稳定地交付——目标不漂移、完成有证据、验证有闭环,不说"应该修好了"。为此它在模型与真实世界之间建立一层认知执行环境(CVM),把目标、状态、证据、资源、权限与终止条件从对话历史中外部化,由运行时持续管理。同时对deepseek v4极度优化。

v4.0.4发布于 2026-11-06 01:52 UTC1,331star +15 / 7 天99fork同步于 2026-11-10 17:51 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g tianshu-harness
tianshu
硬件要求按 README 说明

README 未说明显存或 GPU 要求;终端 CLI 需 Node.js 24.22.1+ 或 26.12.1+,桌面端自带运行时无需 Node。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给编程智能体加一层确定性运行时,让目标不漂移、完成有证据、验证有闭环

天枢是一个终端编程智能体,通过认知执行环境(CVM)把目标、状态、证据和权限从对话历史中外部化,让模型稳定交付、验证闭环,并针对 DeepSeek V4 深度优化。

核心能力

  • 用 TaskContract 把目标、范围与成功标准交给运行时持有
  • deliver_task 交付门按证据给出 RED/YELLOW/GREEN 并拦截不合格提交
  • 75 个 hook 模块在回合五阶段做收敛与空转检测
  • 前缀缓存优先设计,冻结前缀只追加增量
  • 多代理编排:scout 侦察、team 并行施工、council 会诊

容易踩的坑

Node 版本是硬门槛,22/23/25/27 及低于 24.22.1 的 24.x 会被启动闸门拒绝;从旧包 tianshu-tui 迁移会因 rivet 命令链接冲突报 EEXIST,需先 npm uninstall -g tianshu-tui;首次启动需在 /connect 向导里选服务商并粘贴 API Key。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v4.0.4
  1. v4.0.4最新正式版2026-11-06 · 2026-11-06 01:52 UTC

    安装指南 · Installation

    本段落随每个版本发布,嵌在 Release 正文顶部。完整安装与平台说明见 docs/guides/installation.md(含 Android Termux、源码构建、Shell 补全、自动更新)。

    This section is published with every release. For the full installation & platform guide (Android Termux, building from source, shell completions, auto-update), see docs/guides/installation.md.

    下载哪个文件 · Which file to download

    按平台与 CPU 架构选(不确定架构?mac 点左上角苹果菜单「关于本机」;Windows 设置 → 系统 → 系统信息;Linux 终端 uname -m):

    平台文件说明
    macOS Apple Silicon(M1/M2/M3/M4)Tianshu_4.0.4_aarch64.dmg多数现代 Mac
    macOS IntelTianshu_4.0.4_x64.dmg2020 前的 Intel Mac
    Windows 10(1809+)/ 11 x64Tianshu_4.0.4_x64-setup.exe安装向导,自带 WebView2 离线安装包
    Linux x86_64Tianshu_4.0.4_amd64.AppImage免安装
    Linux ARM64(树莓派 64 位等)Tianshu_4.0.4_aarch64.AppImage免安装

    CLI 用户也可 npm install -g tianshu-harness(需 Node.js ≥ 24),或用一键安装脚本。

    macOS 安装步骤

    1. 下载 .dmg 并双击打开,把 Tianshu 拖入「应用程序」文件夹

      从 4.0.2 或更早版本手动升级的,拖之前先看下文「macOS:升级前先把数据移出应用包」一节:数据还在应用包里时,先迁出再替换。

    2. 首次打开:本包为 ad-hoc 签名、未经 Apple 公证,浏览器下载后首次双击会报「已损坏,无法打开」或「无法验证开发者」。拖入应用程序后,在终端执行一次(移除下载隔离属性):

      xattr -cr /Applications/Tianshu.app
      
    3. 之后正常双击启动。若仍被拦:右键 App → 「打开」→ 再点「打开」,或系统设置 → 隐私与安全性 → 底部点「仍要打开」

    4. 应用内自动更新不受 Gatekeeper 影响——只需首次手动放行

    Windows 安装步骤

    1. 下载 Tianshu_4.0.4_x64-setup.exe,双击运行,按向导完成安装
    2. 界面依赖 WebView2 Runtime——3.5.3 起安装器已内嵌离线安装包,通常无需额外操作
    3. 窗口完全打不开时:开始菜单「修复 WebView2」,或手动安装 WebView2 离线安装包 后重启

    Linux 安装步骤

    1. 按架构下载 AppImage,加执行权限后直接运行:

      chmod +x Tianshu_*_amd64.AppImage   # ARM 设备换成 _aarch64
      ./Tianshu_*_amd64.AppImage
      
    2. 依赖:glibc ≥ 2.35(Ubuntu 22.04+ / Debian 12+ 等主流发行版),以及系统里的 libwebkit2gtk-4.1、libgtk-3 和托盘库 libayatana-appindicator3。缺了的话,Ubuntu / Debian 用 sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1 装齐

    3. 推荐 X11 会话(Wayland 尚未验证)

    常见问题

    • mac 提示「已损坏」:见上方 macOS 步骤 2 的 xattr 命令——这是 Gatekeeper 对未公证下载包的标准行为,不是包真坏了
    • Windows 装完提示 rivet 无法识别:新开一个终端(旧终端的 PATH 是装 Node 之前快照的)
    • Linux AppImage 双击没反应:先确认执行权限(chmod +x),再从终端运行,看报错。报错里有「Failed to load ayatana-appindicator3」,就是缺托盘库,Ubuntu / Debian 用 sudo apt install libayatana-appindicator3-1
    • Linux AppImage 提示「Cannot mount AppImage, please check your FUSE setup」:先装 fuse3(Ubuntu / Debian:sudo apt install fuse3)。不要改用 --appimage-extract-and-run,原因见文末已知问题。
    • 自动更新:桌面端应用内自动更新(mac Gatekeeper 仅影响首次手动安装);已安装用户无需每版重下

    v4.0.4 — Windows 自愈、目标续跑与服务商修复

    日期:2026-11-06 上一版本:v4.0.2(4.0.3 只发过候选版,没有推送给正式版用户)

    本版说明

    修复 4.0.2 之后用户和公开镜像报告的问题:Windows 上安装失败、启动卡住、强退后打不开、运行文件被杀毒软件隔离后不知道原因;macOS 上不在「应用程序」里运行时,更新会把数据连同旧应用包一起删掉;目标模式中途停下来问要不要继续;移除的服务商加不回来;OpenCode 上的 DeepSeek 调不了推理强度。修复都没有删减功能。

    4.0.4 包含 4.0.3 候选版的全部修复,另外修好了 4.0.3 候选版的一个打包问题:Intel Mac 用的 x64 包里漏了内置的 Node 运行时,装上后本地服务起不来。正式版用户从 4.0.2 直接更新到 4.0.4 即可。

    macOS:升级前先把数据移出应用包

    谁受影响:用 4.0.2 及更早版本、而且不在「应用程序」文件夹里运行天枢的 mac 用户。「应用程序」文件夹指访达边栏里的那个,即 /Applications。比如把 Tianshu.app 放在「下载」「桌面」,或个人文件夹下的「应用程序」(~/Applications)里,都算受影响。这时天枢把数据存在应用包里面。应用内更新,或者从 DMG 拖拽「替换」,都会把旧应用包连同里面的数据一起删掉,不进废纸篓。

    还有两种情况也一样:

    • 在「设置 → 存储」里选过「便携位置(应用同目录)」的,不管装在哪里。
    • 先在别处运行过、后来才挪进「应用程序」的,数据可能还在包里。

    一直在「应用程序」里运行、没选过便携位置的用户不受影响,新安装 4.0.4 的也不受影响。从 4.0.4 起,天枢不再把数据存在应用包里,以后的更新不会再这样删数据。

    怎么判断:

    • 打开「设置 → 存储」,看页面上显示的数据路径。路径里有 Tianshu.app/Contents/MacOS/TianshuData,就是受影响。
    • 也可以在访达里右键 Tianshu.app,选「显示包内容」,看 Contents → MacOS 里有没有 TianshuData 文件夹。
    • 已经按下面的步骤换成自定义文件夹的,包里留的是迁移前的旧副本,没有影响,可以直接更新。

    升级前怎么迁出(在 4.0.2 上做):

    1. 停掉正在运行的任务。
    2. 在访达里选「前往 → 个人」,新建一个空文件夹,比如「TianshuData」。不要建在「文稿」「桌面」「下载」里。
    3. 在天枢里打开「设置 → 存储」,选「自定义文件夹」,点「选择…」选中刚建的文件夹。勾选「将现有数据迁移到新位置」,点「应用并重启」。
    4. 重启后回到「设置 → 存储」,确认用的是新文件夹,会话列表里的会话都在。
    5. 再更新到 4.0
  2. v4.0.3v4.0.3(已撤回)pre-release2026-11-05 · 2026-11-05 21:52 UTC
    查看更新说明

    4.0.3 已撤回,请改用 v4.0.4。

    4.0.3 has been withdrawn. Please use v4.0.4 instead.

    安装指南 · Installation

    本段落随每个版本发布,嵌在 Release 正文顶部。完整安装与平台说明见 docs/guides/installation.md(含 Android Termux、源码构建、Shell 补全、自动更新)。

    This section is published with every release. For the full installation & platform guide (Android Termux, building from source, shell completions, auto-update), see docs/guides/installation.md.

    下载哪个文件 · Which file to download

    按平台与 CPU 架构选(不确定架构?mac 点左上角苹果菜单「关于本机」;Windows 设置 → 系统 → 系统信息;Linux 终端 uname -m):

    平台文件说明
    macOS Apple Silicon(M1/M2/M3/M4)Tianshu_4.0.3_aarch64.dmg多数现代 Mac
    macOS IntelTianshu_4.0.3_x64.dmg2020 前的 Intel Mac
    Windows 10(1809+)/ 11 x64Tianshu_4.0.3_x64-setup.exe安装向导,自带 WebView2 离线安装包
    Linux x86_64Tianshu_4.0.3_amd64.AppImage免安装
    Linux ARM64(树莓派 64 位等)Tianshu_4.0.3_aarch64.AppImage免安装

    CLI 用户也可 npm install -g tianshu-harness(需 Node.js ≥ 24),或用一键安装脚本。

    macOS 安装步骤

    1. 下载 .dmg 并双击打开,把 Tianshu 拖入「应用程序」文件夹

      从 4.0.2 或更早版本手动升级的,拖之前先看下文「macOS:升级前先把数据移出应用包」一节:数据还在应用包里时,先迁出再替换。

    2. 首次打开:本包为 ad-hoc 签名、未经 Apple 公证,浏览器下载后首次双击会报「已损坏,无法打开」或「无法验证开发者」。拖入应用程序后,在终端执行一次(移除下载隔离属性):

      xattr -cr /Applications/Tianshu.app
      
    3. 之后正常双击启动。若仍被拦:右键 App → 「打开」→ 再点「打开」,或系统设置 → 隐私与安全性 → 底部点「仍要打开」

    4. 应用内自动更新不受 Gatekeeper 影响——只需首次手动放行

    Windows 安装步骤

    1. 下载 Tianshu_4.0.3_x64-setup.exe,双击运行,按向导完成安装
    2. 界面依赖 WebView2 Runtime——3.5.3 起安装器已内嵌离线安装包,通常无需额外操作
    3. 窗口完全打不开时:开始菜单「修复 WebView2」,或手动安装 WebView2 离线安装包 后重启

    Linux 安装步骤

    1. 按架构下载 AppImage,加执行权限后直接运行:

      chmod +x Tianshu_*_amd64.AppImage   # ARM 设备换成 _aarch64
      ./Tianshu_*_amd64.AppImage
      
    2. 依赖:glibc ≥ 2.35(Ubuntu 22.04+ / Debian 12+ 等主流发行版),以及系统里的 libwebkit2gtk-4.1、libgtk-3 和托盘库 libayatana-appindicator3。缺了的话,Ubuntu / Debian 用 sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1 装齐

    3. 推荐 X11 会话(Wayland 尚未验证)

    常见问题

    • mac 提示「已损坏」:见上方 macOS 步骤 2 的 xattr 命令——这是 Gatekeeper 对未公证下载包的标准行为,不是包真坏了
    • Windows 装完提示 rivet 无法识别:新开一个终端(旧终端的 PATH 是装 Node 之前快照的)
    • Linux AppImage 双击没反应:先确认执行权限(chmod +x),再从终端运行,看报错。报错里有「Failed to load ayatana-appindicator3」,就是缺托盘库,Ubuntu / Debian 用 sudo apt install libayatana-appindicator3-1
    • Linux AppImage 提示「Cannot mount AppImage, please check your FUSE setup」:先装 fuse3(Ubuntu / Debian:sudo apt install fuse3)。不要改用 --appimage-extract-and-run,原因见文末已知问题。
    • 自动更新:桌面端应用内自动更新(mac Gatekeeper 仅影响首次手动安装);已安装用户无需每版重下

    v4.0.3 — Windows 自愈、目标续跑与服务商修复

    日期:2026-11-05 上一版本:v4.0.2

    本版说明

    修复 4.0.2 之后用户和公开镜像报告的问题:Windows 上安装失败、启动卡住、强退后打不开、运行文件被杀毒软件隔离后不知道原因;macOS 上不在「应用程序」里运行时,更新会把数据连同旧应用包一起删掉;目标模式中途停下来问要不要继续;移除的服务商加不回来;OpenCode 上的 DeepSeek 调不了推理强度。修复都没有删减功能。

    macOS:升级前先把数据移出应用包

    谁受影响:用 4.0.2 及更早版本、而且不在「应用程序」文件夹里运行天枢的 mac 用户。「应用程序」文件夹指访达边栏里的那个,即 /Applications。比如把 Tianshu.app 放在「下载」「桌面」,或个人文件夹下的「应用程序」(~/Applications)里,都算受影响。这时天枢把数据存在应用包里面。应用内更新,或者从 DMG 拖拽「替换」,都会把旧应用包连同里面的数据一起删掉,不进废纸篓。

    还有两种情况也一样:

    • 在「设置 → 存储」里选过「便携位置(应用同目录)」的,不管装在哪里。
    • 先在别处运行过、后来才挪进「应用程序」的,数据可能还在包里。

    一直在「应用程序」里运行、没选过便携位置的用户不受影响,新安装 4.0.3 的也不受影响。从 4.0.3 起,天枢不再把数据存在应用包里,以后的更新不会再这样删数据。

    怎么判断:

    • 打开「设置 → 存储」,看页面上显示的数据路径。路径里有 Tianshu.app/Contents/MacOS/TianshuData,就是受影响。
    • 也可以在访达里右键 Tianshu.app,选「显示包内容」,看 Contents → MacOS 里有没有 TianshuData 文件夹。
    • 已经按下面的步骤换成自定义文件夹的,包里留的是迁移前的旧副本,没有影响,可以直接更新。

    升级前怎么迁出(在 4.0.2 上做):

    1. 停掉正在运行的任务。
    2. 在访达里选「前往 → 个人」,新建一个空文件夹,比如「TianshuData」。不要建在「文稿」「桌面」「下载」里。
    3. 在天枢里打开「设置 → 存储」,选「自定义文件夹」,点「选择…」选中刚建的文件夹。勾选「将现有数据迁移到
  3. v4.0.2v4.0.2 — Windows 体验与稳定性修复2026-11-04 · 2026-11-04 12:27 UTC
    查看更新说明

    v4.0.2 — Windows 体验与稳定性修复

    日期:2026-11-04 上一版本:v4.0.1

    本版说明

    macOS:暂未 Apple 公证。首次打开提示「已损坏」时,拖进「应用程序」后执行一次 xattr -cr /Applications/Tianshu.app。应用内自动更新不受影响。

    集中修复 4.0.1 上线后用户反馈的问题:Windows 安装器的弹窗与页面重叠、内置浏览器卡顿、动态壁纸被卡住、登录后反复检测账号导致卡顿,以及生成中无法切换模型、余额不显示等。所有修复都没有删减功能或降低画质。

    内容清单

    安装器(Windows)

    • 「用户协议」「安装记录」窗口能用 ×、Esc、Alt+F4 和「关闭」按钮关闭;协议全文正常显示,可滚动、可复制。
    • 覆盖安装页不再露出英文说明,选项改为「先卸载旧版本再安装」「直接覆盖安装(保留设置)」,底栏文字不再重叠,100%–200% 缩放下都不重叠。
    • 完成页与失败页的 ×、Alt+F4 能正常关闭安装器;× 关闭不会启动天枢,只有「打开天枢 →」会启动。安装进行中点 × 会先确认,等安装完成再关闭。
    • 覆盖安装后刷新快捷方式与任务栏图标,不再出现任务栏旧图标、托盘新图标并存。

    性能(Windows)

    • 内置浏览器画面不再越来越卡:推流只保留最新一帧,前端只更新画面本身、不再整页重绘。分辨率与画质不变。
    • 天枢运行时不再让 Wallpaper Engine 一类动态壁纸被判定为「有全屏应用」而暂停;桌宠窗口不再抢前台焦点,桌宠功能全部保留。
    • 动态背景遇到解码器丢失、休眠唤醒等瞬时故障时自动重试恢复,不再弹出「加载失败」;持续失败时才提示,并提供「重试」。
    • 设置里「预览启动动画」能正常播放,三套体验都可预览。

    账号与对话

    • 登录后不再反复检测账号状态:改为在启动、切回窗口、网络恢复和账号变化时检查,失败自动退避,窗口隐藏时暂停。每个窗口对服务器的请求约降为原来的 1/15。
    • 生成或思考中也能打开模型选择,所选模型在本轮结束后生效。
    • 账户余额稳定显示:暂时取不到最新值时显示上次的额度,并标注更新时间。

    升级说明

    • Windows 用户:下载 v4.0.2 安装包覆盖安装即可,账号、配置和会话都会保留;已装 v4.0.1 的也会收到自动更新。
    • macOS 用户会通过自动更新收到 v4.0.2。
  4. v4.0.1v4.0.1 — Windows 启动闪退热修2026-11-03 · 2026-11-03 13:50 UTC
    查看更新说明

    安装指南 · Installation

    本段落随每个版本发布,嵌在 Release 正文顶部。完整安装与平台说明见 docs/guides/installation.md(含 Android Termux、源码构建、Shell 补全、自动更新)。

    This section is published with every release. For the full installation & platform guide (Android Termux, building from source, shell completions, auto-update), see docs/guides/installation.md.

    下载哪个文件 · Which file to download

    按平台与 CPU 架构选(不确定架构?mac 点左上角苹果菜单「关于本机」;Windows 设置 → 系统 → 系统信息;Linux 终端 uname -m):

    平台文件说明
    macOS Apple Silicon(M1/M2/M3/M4)Tianshu_4.0.1_aarch64.dmg多数现代 Mac
    macOS IntelTianshu_4.0.1_x64.dmg2020 前的 Intel Mac
    Windows 10(1809+)/ 11 x64Tianshu_4.0.1_x64-setup.exe安装向导,自带 WebView2 离线安装包
    Linux x86_64Tianshu_4.0.1_amd64.AppImage免安装
    Linux ARM64(树莓派 64 位等)Tianshu_4.0.1_aarch64.AppImage免安装

    CLI 用户也可 npm install -g tianshu-harness(需 Node.js ≥ 24),或用一键安装脚本。

    macOS 安装步骤

    1. 下载 .dmg 并双击打开,把 Tianshu 拖入「应用程序」文件夹

    2. 首次打开:本包为 ad-hoc 签名、未经 Apple 公证,浏览器下载后首次双击会报「已损坏,无法打开」或「无法验证开发者」。拖入应用程序后,在终端执行一次(移除下载隔离属性):

      xattr -cr /Applications/Tianshu.app
      
    3. 之后正常双击启动。若仍被拦:右键 App → 「打开」→ 再点「打开」,或系统设置 → 隐私与安全性 → 底部点「仍要打开」

    4. 应用内自动更新不受 Gatekeeper 影响——只需首次手动放行

    Windows 安装步骤

    1. 下载 Tianshu_4.0.1_x64-setup.exe,双击运行,按向导完成安装
    2. 界面依赖 WebView2 Runtime——3.5.3 起安装器已内嵌离线安装包,通常无需额外操作
    3. 窗口完全打不开时:开始菜单「修复 WebView2」,或从本 Release 底部 windows-repair 目录双击 repair-webview2.cmd,或手动安装 WebView2 离线安装包 后重启

    Linux 安装步骤

    1. 按架构下载 AppImage,加执行权限后直接运行:

      chmod +x Tianshu_*_amd64.AppImage   # ARM 设备换成 _aarch64
      ./Tianshu_*_amd64.AppImage
      
    2. 依赖:glibc ≥ 2.35(Ubuntu 22.04+ / Debian 12+ 等主流发行版)与系统图形栈 libwebkit2gtk-4.1.so.0 + libgtk-3.so.0——多数桌面发行版已自带;精简/服务器版需按发行版安装 webkit2gtk 4.1,缺库时 ldd Tianshu_*.AppImage 自查

    3. 推荐 X11 会话(Wayland 尚未验证)

    常见问题

    • mac 提示「已损坏」:见上方 macOS 步骤 2 的 xattr 命令——这是 Gatekeeper 对未公证下载包的标准行为,不是包真坏了
    • Windows 装完提示 rivet 无法识别:新开一个终端(旧终端的 PATH 是装 Node 之前快照的)
    • Linux AppImage 双击无反应:先确认执行权限(chmod +x),再 ldd 查缺库
    • 自动更新:桌面端应用内自动更新(mac Gatekeeper 仅影响首次手动安装);已安装用户无需每版重下

    v4.0.1 — Windows 启动闪退热修

    日期:2026-11-03 上一版本:v4.0.0

    本版说明

    修复 v4.0.0 在 Windows 上一启动就闪退的问题。原因是 Windows 主线程默认只预留 1 MB 栈空间,而 4.0 启动时有一个函数需要约 1.04 MB,导致立即栈溢出。现在把 Windows 主线程栈预留调到 8 MB,与 macOS、Linux 一致。

    本次只改了 Windows 的链接参数,功能与 v4.0.0 相同。从后台日志看,闪退发生在读入会话之后,没有发现会话数据损坏。

    内容清单

    • Windows:主线程栈预留由 1 MB 调到 8 MB,修复启动即闪退。
    • macOS 与 Linux 安装包随版本号一并更新,内容与 v4.0.0 相同。

    升级说明

    • 已装 v4.0.0 的 Windows 用户:直接下载 v4.0.1 安装包覆盖安装即可,账号、配置和会话都会保留。
    • macOS 用户会通过自动更新收到 v4.0.1。
  5. v4.0.0v4.0.0 — 桌面端全新外观、长对话治理与双层记忆2026-11-03 · 2026-11-03 11:13 UTC
    查看更新说明

    安装指南 · Installation

    本段落随每个版本发布,嵌在 Release 正文顶部。完整安装与平台说明见 docs/guides/installation.md(含 Android Termux、源码构建、Shell 补全、自动更新)。

    This section is published with every release. For the full installation & platform guide (Android Termux, building from source, shell completions, auto-update), see docs/guides/installation.md.

    下载哪个文件 · Which file to download

    按平台与 CPU 架构选(不确定架构?mac 点左上角苹果菜单「关于本机」;Windows 设置 → 系统 → 系统信息;Linux 终端 uname -m):

    平台文件说明
    macOS Apple Silicon(M1/M2/M3/M4)Tianshu_4.0.0_aarch64.dmg多数现代 Mac
    macOS IntelTianshu_4.0.0_x64.dmg2020 前的 Intel Mac
    Windows 10(1809+)/ 11 x64Tianshu_4.0.0_x64-setup.exe安装向导,自带 WebView2 离线安装包
    Linux x86_64Tianshu_4.0.0_amd64.AppImage免安装
    Linux ARM64(树莓派 64 位等)Tianshu_4.0.0_aarch64.AppImage免安装

    CLI 用户也可 npm install -g tianshu-harness(需 Node.js ≥ 24),或用一键安装脚本。

    macOS 安装步骤

    1. 下载 .dmg 并双击打开,把 Tianshu 拖入「应用程序」文件夹

    2. 首次打开:本包为 ad-hoc 签名、未经 Apple 公证,浏览器下载后首次双击会报「已损坏,无法打开」或「无法验证开发者」。拖入应用程序后,在终端执行一次(移除下载隔离属性):

      xattr -cr /Applications/Tianshu.app
      
    3. 之后正常双击启动。若仍被拦:右键 App → 「打开」→ 再点「打开」,或系统设置 → 隐私与安全性 → 底部点「仍要打开」

    4. 应用内自动更新不受 Gatekeeper 影响——只需首次手动放行

    Windows 安装步骤

    1. 下载 Tianshu_4.0.0_x64-setup.exe,双击运行,按向导完成安装
    2. 界面依赖 WebView2 Runtime——3.5.3 起安装器已内嵌离线安装包,通常无需额外操作
    3. 窗口完全打不开时:开始菜单「修复 WebView2」,或从本 Release 底部 windows-repair 目录双击 repair-webview2.cmd,或手动安装 WebView2 离线安装包 后重启

    Linux 安装步骤

    1. 按架构下载 AppImage,加执行权限后直接运行:

      chmod +x Tianshu_*_amd64.AppImage   # ARM 设备换成 _aarch64
      ./Tianshu_*_amd64.AppImage
      
    2. 依赖:glibc ≥ 2.35(Ubuntu 22.04+ / Debian 12+ 等主流发行版)与系统图形栈 libwebkit2gtk-4.1.so.0 + libgtk-3.so.0——多数桌面发行版已自带;精简/服务器版需按发行版安装 webkit2gtk 4.1,缺库时 ldd Tianshu_*.AppImage 自查

    3. 推荐 X11 会话(Wayland 尚未验证)

    常见问题

    • mac 提示「已损坏」:见上方 macOS 步骤 2 的 xattr 命令——这是 Gatekeeper 对未公证下载包的标准行为,不是包真坏了
    • Windows 装完提示 rivet 无法识别:新开一个终端(旧终端的 PATH 是装 Node 之前快照的)
    • Linux AppImage 双击无反应:先确认执行权限(chmod +x),再 ldd 查缺库
    • 自动更新:桌面端应用内自动更新(mac Gatekeeper 仅影响首次手动安装);已安装用户无需每版重下

    v4.0.0 — 桌面端全新外观、长对话治理与双层记忆

    日期:2026-11-03 上一版本:v3.37.0

    本版说明

    4.0 是一次大版本发布。内核行为沿用 v3.37.0 的提交、验证、审查分离契约,在此之上换了一套桌面端的产品面:新的首屏和首次引导,可选的三种主题体验(极简、太一、大肥鱼),配套的开场视频、动态背景和桌宠,以及只用来聊天的共鸣星域。

    长对话是这一版的另一条主线。XiaoSi Compress2.0 改写了长对话的整理方式,只在请求真的放不进上下文时才整理一次,并尽量保住已有的前缀缓存。Pro 用户另有 Xiaosi-VERA:整理时对照原文核对检查点,回答结束前核对答复里的引用和验证声称。跨会话的记忆交给新的插件接口 TPI 和内置的双层记忆插件 Xiaosi Axiom,记忆库可以导出成一个本地网页查看。

    此外,官方模型与天枢账号的接入在桌面端完整落地,星港论坛可以沿用天枢账号免密登录;macOS 与 Linux 做了真机适配;日常使用中的卡顿做了两轮实测优化。

    内容清单

    • 桌面端新外观与体验:

      • 新的首次引导:七步走完连接模型、选择工作方式和主题体验,目标是把新用户带到发出第一条任务;全域换用新 Logo。
      • 主题体验三选一:极简、太一、大肥鱼。太一与大肥鱼带开场视频、动态背景和桌宠,极简保持安静的界面。
      • 桌宠可在太一和天琴两个角色间切换,切换后马上生效。
      • 新增共鸣星域(Pro):在独立的对话空间里和天琴聊天,只保留对话和联网搜索,不读写文件、不运行命令。
      • 新增五套字符动态壁纸,颜色跟随当前主题;切主题、切壁纸改为从点击处圆形展开的过渡。
      • 输入框里输入 /theme 会打开主题与壁纸选择条,点一下即换。
      • 账户菜单重做:主题子菜单与 /theme 用同一份清单,用户行旁常驻设置入口;设置页统一成更简洁的结构,并新增「关于」页。
    • 会话与输入:

      • 首页的对话方式(交接 / 长对话)改成左上角的一枚小胶囊,显示当前所选,点开再换。
      • 星域简介从首页卡片收进星域选择浮层,要选星域时才看到,不再占首页位置。
      • 点了欢迎页「试试」里的示例句后,输入框不再往上跳。
      • 会话页正文两侧新增拖动条,可自由调整正文列宽;消息导航改为右缘刻度条,悬停展开列表。
      • 思考过程与工具调用的显示改版;等待批准、断线、分叉、排队、停止等状态在会话头和时间线里的说法统一。
      • 输入框有草稿时按 ↑ 只移动光标,空输入框才翻历史;@ 选中文件后接着打字,字之间不再被插入空格。
      • 左栏收起时,左缘出现一枚可点的边签,顶栏补上「新建任务」和「需处理」。
    • 长对话:Compress2.0 与 Xiaosi-VERA:

      • XiaoSi Compress2.0:长对话只在实际请求超过上下文预算时才整理一次历史,平时不改写,减少缓存重建。
      • 整理前完整原文先归档,检查点逐条记录要求、决定、待批准事项和下一步;单条格式不对时只丢那一条,不再让整次整理失败。
      • 侧问、风险解释和子任务沿用主请求的前缀,DeepSeek 前缀缓存的命中更稳定。
      • Xiaosi-VERA(Pro,随 Pro 默认开启):整理检查点时逐条对照原文,编造的路径和标识符会被标注。
      • Xiaosi-VERA 在回答结束前核对答复里的带行号引用、测试计数、验证声称和用户原话,发现问题时长对话会打回重做一轮。
      • 缓存命中率不再计入整理后的那一次缓存重建,显示处同时给出计入后的数值;账单和费用口径不变。
    • 插件与记忆:

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    模型的能力上限不等于它的运行行为。同一套权重放进真实工程会话,会被质疑就让步、只照字面执行、让局部信息压过全局目标,或者反复调用工具却没有推进,最后留下一句「应该修好了」。

    天枢是一个 TypeScript 编写的编程 agent 运行时,终端 TUI、桌面端和 VS Code 插件共用同一个内核。它在模型和真实世界之间加了一层认知执行环境 CVM(Cognitive Virtual Machine),把目标、状态、证据、权限和终止条件从对话历史里拿出来,交给运行时持续管理:

    • 任务契约:每个任务有独立的 TaskContract,记录目标、范围、约束和成功标准。长会话里的目标由运行时持有,不依赖模型「记得」。
    • 提交、验证、审查分离的交付:deliver_task 只做归属限定的安全提交——所有权、跨会话冲突、版本一致性不合格就拦下;验证缺口如实披露但不阻断、也不冒充质量背书。定向验证用 run_tests(显式范围),独立审查用 review_changes 或 /review。
    • 确定性监督外环:75 个运行时 hook 模块分布在一个回合的五个阶段,配合 Sensorium 状态感知与收敛、空转检测,在模型输出与真实动作之间做观测和纠偏。

    [!NOTE] 开发代号是 Rivet。CLI 主命令是 tianshu,rivet 是同一入口的兼容别名;数据目录仍为 ~/.rivet。

    目录

    安装

    终端 CLI(Node.js 24.x ≥ 24.22.1 或 26.x ≥ 26.12.1)

    npm install -g tianshu-harness
    tianshu
    

    看到 〉 提示符即就绪。首次启动会自动打开 /connect 向导,选服务商、粘贴 API Key。

    桌面端(无需 Node)

    从 Releases 下载:

    • macOS 11+:.dmg,Apple Silicon / Intel
    • Windows 10 1809+ / 11:-setup.exe
    • Linux x86_64 / aarch64:.AppImage

    [!WARNING] Node.js 版本硬门槛(v3.36.0 起):CLI 仅支持 Node 24.22.1+(24.x 线)或 26.12.1+(26.x 线)。 Node 22 / 23 / 25 / 27、24.x < 24.22.1、26.x < 26.12.1 会在启动时被安全闸门拒绝; /update 可能已经装上新包,但新 CLI 仍无法启动。先运行 node -v,不满足时用 nvm / fnm / Volta 或 nodejs.org 升级后再安装。

    node -v   # 需要 v24.22.1+ 或 v26.12.1+
    

    桌面端自带运行时,不需要手动安装 Node。升级后仍失败时见 安装指南 与 排障指南。

    # macOS / Linux
    bash <(curl -fsSL https://raw.githubusercontent.com/huiliyi37/Tianshu-harness/main/scripts/install-tui.sh)
    
    # Windows(PowerShell)
    powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/huiliyi37/Tianshu-harness/main/scripts/install-tui.ps1 | iex"
    

    从旧包 tianshu-tui 迁移时会因 rivet 命令链接冲突报 EEXIST,先执行 npm uninstall -g tianshu-tui。一键安装脚本会自动处理。

    • macOS:暂未 Apple 公证。首次打开提示「已损坏」时,拖进「应用程序」后执行一次 xattr -cr /Applications/Tianshu.app。应用内自动更新不受影响。
    • Windows:界面依赖 WebView2,安装器自带离线包。窗口打不开时用开始菜单里的「修复 WebView2」,或运行 Release 中 windows-repair 目录下的 repair-webview2.cmd。
    • Linux:需要 glibc 2.35+(Ubuntu 22.04+、Debian 12+),以及 libwebkit2gtk-4.1 与 libgtk-3。推荐 X11 会话,Wayland 尚未验证。chmod +x Tianshu_*.AppImage 后直接运行。

    Android Termux、源码构建、Shell 补全和自动更新见 安装指南。

    第一个任务

    先让它只读地认识你的项目,确认读得准,再给一个多步任务:

    〉 阅读这个项目,告诉我它的结构、入口在哪、以及一处最值得改进的地方
    〉 修复这个项目里第一个失败的测试,并说明根因
    

    它会自己搜索、读文件、改代码、跑测试。默认权限档是自动:低风险动作直接执行,高风险动作停下来问你。做完之后看三处:

    看哪里看什么
    交付报告交付门状态(GREEN / YELLOW / RED)、改动的文件、跑过的验证、逐条完成度审计
    /cockpit 驾驶舱8 面板运行时仪表:验证与交付、提醒台账、缓存命中与成本、风险与空转(F4)
    sensorium.jsonl每个回合的状态感知与 CVM 判定记录。tianshu logs 列出路径,可用 jq 复算
    tianshu -p "解释 src/agent/loop.ts"            # 单次提示
    tianshu --stream-json -p "重构这个模块"        # NDJSON 事件流,输出内置脱敏
    tianshu --goal "修复所有类型错误" --budget 50  # 目标驱动的自主续跑
    

    参数全表和子命令见 用户手册。

    CVM 是怎么工作的

    经过指令与偏好对齐的模型,在 agent 场景下会呈现相似的运行时退化,我们称之为 Cognitive Anchor Collapse:一个高显著性的局部信号让策略过度集中,全局目标和后续证据失去权重,行为向这个锚点坍缩。Prompt 是信息,不是状态,它本身也会变成新的锚点,所以这类问题靠写更好的提示词治不了。

    CVM 不改权重,也不把模型变成确定性程序,而是在概率认知外面加一层确定性监督。模型在内环里推理和行动,运行时在外环里度量、把关、验证,决定继续、纠偏还是停下:

    内环 · 模型认知    reason → decide → act → observe
    外环 · 运行时监督  observe → measure → evaluate → gate → verify → continue / correct / halt
    
    层机制作用
    1 · 信念宪法星域信念块,写入静态提示词零额外推理成本,在分析和建议阶段改变倾向
    2 · Courage HookpreTurn 阶段,阈值随星域变化检测到连续让步时,注入带义务语义的纠偏指令
    3 · Sensorium每回合由已有监控信号计算,不调用 LLM感知动量、压力、验证覆盖、复杂度、熟悉度、稳定性六个维度
    4 · RuntimeHookPipeline75 个 hook 模块,五个阶段,按会话条件装配收敛与 doom-loop 检测、证据追踪、交付门、编辑失败恢复等
    锚点来源典型表现
    词汇锚点训练数据里的词与行为相关性句子里有「修复」,就无视「不要改,只解释」去改代码
    语义锚点局部正确的事实「文件已存在」被当成整个任务的解释中心,拒绝执行
    策略锚点RLHF / 偏好训练先验一句「按你的计划执行」,分析阶段的高质量判断就被丢弃
    历史锚点长上下文里的早期结论第 20 轮的新证据被解释成第 3 轮旧假设的附属

    八条设计原则和开放的研究问题见 CVM:从 Transformer 共享退化到认知运行时,系统分层见 架构总览。

    实证

    缓存:上下文越长,命中越稳

    天枢以前缀缓存优先设计:会话内冻结前缀,只追加增量,压缩只发生在用户回合边界。上图是一个 4.2 小时的真实会话,15 次前缀重建总共只产生 383K cacheCreate,占全部 input 的 0.33%。

    5 个真实自举会话(2026-08,DeepSeek V4)数值
    请求数 / input tokens2,001 次 / 6.45 亿
    整体缓存命中率99.3–99.6%
    估算成本(刊例价)无缓存 ¥879.97 → 实际 ¥19.96,节省 97.7%

    缓存引擎对所有支持前缀缓存的模型生效,目前公开的实测只覆盖 DeepSeek。每个数字都附 jq 复算命令,见 指标观测 harness。

    行为:同一套权重,相反的反应

    最典型的是 T4。面对「文件已存在」的矛盾,A 组写了 196 行复盘文档后拒绝执行,B 组判断出用户的真实意图,交付了 +162 / −20 行可用代码。

    这是一个小样本试点:5 个任务、单一模型、LLM 审查。它也测出了衰减,信念在分析和建议阶段有效,到确认和执行阶段明显减弱,这正是第 3、4 层运行时监督要补的部分。完整数据见 实证报告。

    工程

    截至 2026-10(v3.37):src/ 约 1,700 个源码文件、35 万行,测试约 2,100 个文件、2.3 万条用例。TypeScript strict,开启 noUncheckedIndexedAccess,事故修复必须附回归测试。口径与里程碑见 工程质量指标。

    星域

    同一个模型,走进不同的星域,会亮起不同的工作倾向。星域不给模型加新能力,也不限制工具。它把模型本来就有的一面放大,对应 CVM 的第 1、2 层:每个星域有自己的信念块和勇气阈值。人还是那个人,模型还是那个模型。

    新会话默认是启明,用 /domain <名字> 切换,/domain auto 按消息内容自动匹配,/domain list 列出全部。每颗星的完整信念与创始记忆见 星域碑文(English)。

    更多能力

    多代理编排/scout 只读并行侦察,/team 按文件分波并行施工,/council 多星域会诊只出计划,/galaxy 按维度拆分并做全局审查。详情
    审查与验证分离提交不自动验证也不自动派审查:定向验证 run_tests(空参数只给范围预览),独立审查 review_changes(固定快照、只读 reviewer、发现持久化),交付回执不作质量背书
    前缀缓存引擎冻结前缀、增量附录、Read 去重、resume 缓存继承,/debug cache 诊断命中率与碎裂原因。详情
    Plan Mode 与 Goal先计划、审批、再执行;/goal 设定跨多轮目标,持续迭代到达成或预算耗尽。详情
    交接与倒带/handoff 生成结构化交接文档;双击 Esc 倒带到任一历史点。详情
    项目记忆知识写入 .rivet/knowledge/memory.jsonl;自动注入只带约束类记忆,旧问题显式 recall,不劫持新任务;自动记忆形成为 opt-in(默认关闭)。详情
    LSP 集成20+ 种语言服务器,跳转定义与查找引用作为 agent 工具,编辑后的诊断自动回注。本机装了才启用
    MCP 与 Skills接入外部工具服务器;可复用的工作流剧本,渐进披露,tianshu skills 统一管理。详情
    成本控制推理强度自动降档、压缩走轻量模型、峰谷计价提醒,/usage 查看本地 Token 账本。详情
    自研 TUI纯 ANSI 零依赖:GlanceBar 状态栏、流式中 /steer 打断、命令面板、内联图片、受限终端纯文本模式。详情
    桌面端集成终端、主题工作室、本地离线语音输入、手机遥控审批、多会话并发、Windows 下连接 WSL 运行时;自动更新断点续传、来源校验、损坏自恢复。桌面端指南

    支持的模型

    内置 25 项服务商预设,会话内 /model 随时切换,也支持任意 OpenAI 兼容端点(Ollama、vLLM、one-api 中转等)。

    多数服务商用 API Key 接入。Codex 走 ChatGPT 订阅 OAuth,Claude 经 cc-switch 代理,Gemini 走原生协议。具体模型 ID、上下文长度、识图与生图、子代理分模型路由见 Provider 配置手册 和 识图能力手册。

    权限与安全

    会话内用 /permission 管理,只有三档:

    档位命令行为
    监督/permission supervise每个高风险工具都弹确认
    自动(默认)/permission auto低风险直接执行,高风险确认
    全自动/yes · /yolo免审批,但自动开启沙箱写边界,可回滚

    跳过确认不会关闭底层防护:

    路径边界拒绝 .. 穿越,validatePath 阻止逃逸出工作区
    项目信任门未授信项目不加载 hooks、项目 MCP、项目记忆与技能,用 /trust 管理
    敏感文件.env、credentials.* 等禁止读取和提交,落盘密钥使用 AES-256-GCM 信封
    破坏性命令rm -rf、force push、DROP / TRUNCATE 需要显式确认
    SSRF 防护逐跳 DNS 解析,拦截私有 IP,作用于每一次重定向
    检查点与撤销每回合首次修改前创建 Git 检查点,每次写入前版本化备份

    完整规则见 权限与沙箱指南。安全漏洞请走 私密报告,不要开公开 issue,详见 SECURITY.md。

    文档

    使用

    理念与架构

    英文版完整指南与参考速查见 README.en.md,文档中心见 docs/README.md。

    参与开发

    npm install
    npm run typecheck    # tsc --noEmit
    npm test             # node:test,全部用例
    npm run build        # tsup 打包
    node dist/cli/entry.js
    
    想做什么从哪里开始
    添加工具在 src/tools/ 实现 ToolDefinition 和 executor,到 src/tools/default-registry.ts 注册,测试放 src/tools/__tests__/
    添加 skill / 命令 / hook.rivet/skills/*.md、.rivet/commands/*.md(支持 $ARGUMENTS)、HookRegistry 处理器
    项目指令项目根目录的 .rivet.md 会自动注入为项目上下文

    本仓是开发主仓的同步投影,桌面端与部分高级实现不在本仓。架构地图见 AGENTS.md,贡献流程见 CONTRIBUTING.md 和 EXTERNAL-PRS.md。

    社区

    • 讨论与提问:GitHub Discussions
    • Bug 与功能请求:GitHub Issues,附上 tianshu logs --json 的输出能更快定位
    • 星港论坛:tianshu.club — 自建社区「天枢星港」,版本讨论、经验分享与长期话题的存档地(Token 台账可选同步展示)
    • Discord:天枢 tianshu-harness 官方交流群 Discord
    • QQ 群:「TUI」,群号 1017892942
    • 微信群:扫码加入,二维码 7 天有效,过期请在 Discussions 留言补码

    赞助随缘,不会改变 issue 优先级或功能排期。

    贡献者

    项目创建者与核心开发是 @huiliyi37。天枢官网 Tianshu-Official-Website 由 @jiangsx496 原创开发。外部 PR 经收编流程合入后以 Co-authored-by 署名,完整名单见 CONTRIBUTORS.md。

    许可证

    代码采用 Apache License 2.0。Copyright 2025-2026 Tianshu Contributors.

    以下两篇理论与实证文档例外,采用 CC BY-NC-ND 4.0:可以署名转载原文链接,不得改编、摘编或商用。

    致谢

    桌面端「自定义壁纸与分区玻璃」的设计参考了 dsh-wallpaper-engine(MIT),功能为天枢独立实现,未引入上游代码,详见 THIRD-PARTY-NOTICES.md。感谢 @elysia395、@YV3507、@yuxilao、@oneincase 作为壁纸引擎渲染的技术顾问提供的指导。