Theo 为什么把代理工作迁到 Linux 机器

原标题Why Theo Moved His Agent Work to Linux Machines

长时间运行的编程代理、笔记本 CPU 负载和小文件操作速度,促使 Theo 建立联网的设备组。他演示了如何用 SSH、硬件 KVM 和 T3 Code 远程工作。

ThTheo讲者
频道
Theo - t3․gg
发布
2026年7月3日
视频
38:05
阅读
8 分钟
幻灯片
4
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Theo 讲述了如何把大部分开发与编程代理任务从 MacBook 迁到联网的 Linux 机器,同时保留 Mac 执行部分图形界面任务。他演示 SSH、tmux、Tailscale、网络 KVM 和 T3 Code 如何配合,并讨论促成这次迁移的性能观察及运维取舍。

  1. 1长任务需要稳定的运行位置代理任务越来越多地贯穿实现与审查,依赖笔记本运行并不方便。
  2. 2持久的 SSH 会话tmux 在断线后保留远程终端工作,Tailscale 则连接各台机器。
  3. 3测量实际工作负载在 Theo 的测试中,Linux 机器上的 Git 清理和包安装更快;这些数字仅适用于该次比较。
  4. 4用 KVM 恢复机器硬件 KVM 即使在目标操作系统不可用时,也可以提供远程屏幕和输入访问。
  5. 5远程代理的图形界面T3 Code 让 Theo 在远程机器上使用截图和工作树,合上笔记本后任务仍能继续。
  6. 6编排成为工作的一部分管理多台机器需要决定任务位置和访问方式,但 Theo 认为增加的控制权值得。

要点建议

  1. 远程 Linux 机器可以运行长时间的代理任务,无需一直打开笔记本。
  2. SSH 配合 tmux 能保留终端会话,远程图形界面可以恢复图片输入。
  3. 小文件基准测试结果取决于所用机器和工作负载。
  4. 网络 KVM 可以在启动和恢复时提供带外访问。
  5. 自行托管需要管理多台设备,并留意订阅的现行条款。
全文

按章节阅读整理后的全文

只看原始文稿
01

为什么把工作移出 Mac?

长时间运行的代理任务和不稳定的网络让依赖笔记本的开发令人沮丧。Theo 希望远程工作,同时保留个人订阅的使用方式。

桌上的电脑用于制作内容和剪辑视频,而过去我主要用 MacBook 开发。现在情况变了:许多实际工作转移到了一组联网的机器上。

我多年来一直喜欢 Apple,为什么现在迁移?最主要的原因是 Codex 任务给我的 Mac 带来了很大负荷,远程 Mac mini 也不例外。代理越来越多地承担从修改代码到等待 PR 审查、处理反馈的长任务;每次要出门开会时,笔记本仍被工作占着,让我很烦。

我也常在车里遇到不稳定的移动网络。Devin 和 Cursor 等云工具对日常工作很有吸引力,但我想合上笔记本的同时继续使用个人 Codex 和 Claude Code 订阅。我引用了 SemiAnalysis 的估算,认为这些订阅所含推理用量可能远超订阅价格;这不是对任何个人实际用量的保证。

02

SSH、tmux 与设备配置

Tailscale、SSH 和 tmux 用于连接机器并保留会话。控制机上的 skill 向代理描述整组设备。

我的机器通过 Tailscale 组网,可以用 SSH 或 T3 Code 访问。在基于 Ghostty 的终端包装工具 cmux 中,我把常用机器固定在侧边栏,包括 Mac mini、Framework 机器和 HP ZBook。

通过 SSH 访问设备
幻灯片 1 / 4通过 SSH 访问设备终端侧边栏列出了 Theo 连接的机器。

SSH 连接后会立即启动 tmux,因此断开再连上时,程序仍保持原样。我最常用的两台 Linux 机器各有 32 个线程。需要配置机器本身,或直接使用代理工具的特定功能时,我会使用终端会话。

终端也有不便:通过 SSH 给代理粘贴截图很麻烦,在内外网地址间切换也需要配置。我把 MacBook 当作控制机:它保存了连接其他设备的 SSH 密钥,还有一份 skill,描述各台机器、网络和我的默认配置。

例如,我让代理把 Linux 机器的 shell 提示符改成与 Mac 一致的简洁配色。它可以查阅设备清单,连接各台机器并修改配置。笔记本负责协调工作,而不是承担每个任务的执行。

03

CPU 负载与小文件测试

Theo 解释他观察到的 macOS 进程开销,并展示两项工作负载比较。结果受所用机器和测试条件限制。

我的一张 Mac mini 截图显示所有核心达到 100% 负载,部分温度超过 100°C。一部分负荷来自移动开发,但我认为主要来自 Codex。现场演示时,一个浏览器电脑操作任务就明显增加了 CPU 占用;多个任务同时运行时,即使高端笔记本也会承受压力。

我在 macOS 上遇到的一个问题是 syspolicyd,即 Apple 的进程安全机制。我的理解是,代理及其 MCP 集成,尤其是子代理,会启动大量进程,监控这些进程会增加开销。这是我对观察到的现象的判断,并非对各项原因的受控测量。应用已经有所改善,我也期待后续修复,但我现在就想减轻负担。

另一个原因是 NullVoxPopuli 分享的小文件基准测试:代理并行工作时,清理仓库、克隆工作树和安装缓存的 pnpm 包等操作变得频繁。在我的演示中,Git 清理在 Framework Linux 机器上约需 2.5 秒,而 M5 Max MacBook 的实际耗时约为 35 秒。

包安装测试在那台 Linux 机器上约需 7.3 秒,在 Mac 上约需 35 秒。这个差距让我更愿意创建工作树。这些结果来自特定机器和工作负载,不能据此得出 Linux 和 macOS 普遍适用的速度倍数。

04

取舍与网络 KVM

他将大部分工作迁往 Linux,仍保留 Mac 执行一些电脑操作任务。硬件 KVM 则能在启动和恢复期间提供访问。

我曾舍不得放弃 Mac 的 128 GB 统一内存,因为它适合运行本地模型。但我的需求变了:现在主要使用云端模型,也可以租用开放权重模型。我仍然重视 macOS 上的 Codex 电脑操作功能;按我的经验,Linux 上的实现没那么稳定,因此我把特定 GUI 任务交给 Mac mini,其他大部分工作交给 Linux。

网络 KVM 提供了另一种远程访问方式。我展示的是 GL.iNet 的 Comet Pro:它连接电脑的 HDMI 和 USB 接口,充当显示器、键盘和鼠标。它不依赖目标操作系统运行,因此我可以远程查看启动过程、重启电脑,或挂载 ISO 安装系统。

我没有接受 GL.iNet 的赞助,也没有与其建立合作。演示中,我让 Codex 通过浏览器里的 KVM 界面修改 Ubuntu 桌面壁纸。它打开终端并完成修改;这个例子是为了展示代理能操作远程屏幕,并不是说这是改壁纸最实用的方法。

通过 KVM 控制 Ubuntu
幻灯片 2 / 4通过 KVM 控制 Ubuntu浏览器显示远程 Ubuntu 桌面,代理正在修改其设置。

另一次,一台 Linux 机器在我跨硬盘复制分区后无法启动,KVM 就更有用了。我让笔记本上的 Codex 通过 KVM 恢复它:代理通过 GRUB 强制启动,然后修复配置。大约 20 分钟后我回来时,机器已经恢复工作。

一款电池供电的 finger bot 可以接受远程指令,实际按下电源键,也可以长按强制重启。我把 KVM 视为应急接口,以及让代理完整控制机器的方式,而不是适合全天用来浏览网页的工具。

05

通过 T3 Code 远程工作

Theo 演示图形界面、截图和远程克隆项目。合上笔记本后,长时间运行的代理任务仍能继续。

日常工作时,我在远程机器上启动 T3 Code 服务,通过 Tailscale 或本地网络连接。它的图形界面提供终端、工作树和截图输入,因此即使 SSH 有粘贴限制,我仍能把图片发给远程任务。换到其他网络后,我也可以通过 Tailscale 继续连接。

录制时,T3 Connect 正在开发,计划提供另一种连接方式;我还没试过,也不知道会如何定价。桌面应用可以配对远程环境,并显示项目所在的机器和目录。我可以添加远程文件夹,或者在远程机器上克隆仓库。

选择远程项目
幻灯片 3 / 4选择远程项目T3 Code 列出项目目录及其所在机器。

第一次克隆失败,因为新机器尚未配置 GitHub 身份验证。我让控制机上的代理去修复,然后在已经配置好访问权限的 ZBook 上演示克隆。即使我合上笔记本,项目和任务也可以继续在远程机器上运行。

我可以让代理调查代码库、修改代码、创建 PR、等待自动审查并处理反馈。另一个例子中,我让子代理审计一个老旧项目,生成 HTML 现代化计划。等待长任务时,笔记本不再必须承担它们的 CPU 和内存负荷。

06

硬件选择与任务编排

普通机器也能分担工作,但需要考虑服务商条款和硬件价格。Theo 解释自建多机环境的取舍。

尝试这种方式不一定需要一台强大的新电脑:我最初使用的是性能低得多的机器,许多 Linux 电脑都能分担并行任务。演示中,一台 32 线程机器同时运行审计和 T3 Code 时,CPU 占用相对较低。这只是我当时工作负载的快照,并不保证所有项目都会如此。

远程机器的资源使用
幻灯片 4 / 4远程机器的资源使用btop 快照显示代理运行期间 ZBook 的资源使用情况。

我使用的 GMK K8 Plus 当时裸机约 400 美元,配 32 GB 内存和 1 TB SSD 的版本促销价约 740 美元。我没有与制造商的分成合作。旧笔记本或台式机也可能够用,云主机则是另一种选择。

我提醒大家,订阅提供商可能限制个人套餐的运行地点;应查看现行条款,不要假定云主机一定获准。我更喜欢自己网络上的机器,因为可以控制配置和利用率。颜色区分的 tmux 会话以及代理协助配置,让管理这组设备更容易。

这套配置也带来了编排工作:决定哪台电脑执行任务,以及之后如何访问。我觉得这很有意思,也认为管理代理在何处、如何运行,正成为我们工作中越来越重要的一部分。它让我能运行更长的任务,也更充分地利用订阅。

07

云端限制与未来计划

Theo 根据个人经验比较这套配置和托管代理产品。最后他谈到移动端访问计划,以及自己对这一工作流的热情。

代理也让 Linux 配置更容易上手:我可以描述想要的配置,而不必手动完成每一步。我尝试过托管的 Codex 和 Claude Code 云端方案,但觉得环境配置、访问结果和混用模型等方面对我的工作流限制太多。我认为 Cursor 和 Devin 在托管工作流方面更成熟,不过订阅成本对我仍然重要。

我的团队也在开发 T3 Code 移动应用,用于远程控制;录制时它仍是未来功能,不能视为目前已推出。项目是开源的,但这支视频更重要的主题是 Linux 机器工作流。我不再需要为了让代理任务继续运行而把笔记本半开着,这种改变让我轻松了许多。

同频道的其他文章

5 张幻灯片38:47EN → 简体中文
Theo - t3․gg· 2026年10月28日Theo 的长时间 Agent 实验:验证、算力与成本Theo Browne · Ping Labs滑板游戏和两个编译器项目展示了反复检查与弹性算力如何支撑 agent 工作,也揭示了循环可能带来的高昂成本。编程智能体智能体工程AI cost & performance+2
5 张幻灯片36:07EN → 简体中文
Theo - t3․gg· 2026年10月27日Theo 谈 Token 成本、编程智能体与 AI 能力的价格Theo Browne · Ping Labs一则关于 Lauren 的 AI 支出估算广泛传播,引出了对缓存计价、基准测试和编程智能体工作方式的讨论。AI cost & performance编程智能体Inference+1
5 张幻灯片30:37EN → 简体中文
Theo - t3․gg· 2026年10月26日Theo 的三个技能:用编程智能体审查和交付代码Theo Browne · Ping Labssol-loop、full-send 和 full-stop 如何定义审查、验证以及不同程度的合并权限。Agent skills编程智能体Code review & verification+2
2 张幻灯片0:43EN → 简体中文
Theo - t3․gg· 2026年10月23日Theo 区分安全漏洞与实际攻击Theo Browne · Ping Labs一段简短讲解:软件漏洞披露和攻击事件为何属于不同类型的安全新闻。CybersecuritySoftware engineering
6 张幻灯片29:22EN → 简体中文
Theo - t3․gg· 2026年10月22日Theo 谈安全漏洞、被盗 API 密钥与 AITheo Browne · Ping Labs从漏洞披露到补丁部署之间的风险窗口,以及被盗推理密钥为何可能有价值的推测。CybersecurityAI securitySoftware engineering+1
4 张幻灯片31:13EN → 简体中文
Theo - t3․gg· 2026年10月20日Theo:更聪明的模型为何能帮助更多人Theo Browne · Ping Labs从游戏修改到编译器实验,Theo 重新思考谁能从更强大的 AI 中受益。编程智能体Developer productivityHuman-AI Collaboration+1