使用对话线程
单独的任务请使用新的对话线程(thread)。若其代码改动需要独立的分支和工作目录,请选择新建工作树(worktree)。
开始对话线程
在 Web 端和桌面端,如果默认侧边栏或按项目分组的侧边栏里有不止一个已打开的项目(project),新建对话线程会打开项目选择器。已归档的项目不计在内。按住 Shift 点击可在当前项目中开始,也可以使用某个项目自己的新建对话线程操作。新的对话线程(thread)会带上你选择的模型和模式,除非目标项目自己设有默认模型。它的分支和工作区模式来自你配置的默认值。要在现有工作树(worktree)中继续,请使用分支工具栏里的在此工作树中新建对话线程。
在移动端,新建对话线程会从当前对话线程所属的项目开始;否则,从你在该设备上最近打开或选择过的项目开始。如果两者都没有,就会打开项目选择器。关闭设置 → 常规 → 使用上次的项目后,每次都会让你选择项目。如果你选择的项目位于多台机器上,只要其中有机器处于已连接状态,对话线程就会在一台已连接的机器上开始。
更改新对话线程的项目时,如果当前环境(environment)里存在该项目,T3 Code 会留在当前环境。否则,它会改选一个包含该项目的环境。
不使用项目开始
对话线程不一定要有项目。要不使用项目就开始,可以点击新对话线程标题下方的或不使用项目开始;也可以从该标题里的项目菜单中选择无项目,或从命令(command)面板中的新建对话线程于...里选择无项目,或按下 mod+alt+n。在移动端,从项目列表中选择无项目。它会在你当前的机器上开始;发送之前,可以从机器菜单里另选一台机器,把它移到那里。要把草稿移入某个项目,在标题中选择该项目即可。
每个没有项目的对话线程,都在 ~/.t3/scratch(T3 数据目录中的 scratch 文件夹)下自己的文件夹里工作。文件夹名称由日期、第一条消息开头的几个词和一段短 ID 组成,例如 2026-09-25-convert-these-pngs-to-webp-a1b2c3d4。删除对话线程时会保留它的文件夹,因此智能体写入的文件会一直留到你删除它们。分支、工作树和差异控件保持隐藏,因为这些文件夹不是 Git 仓库。如果数据目录本身位于某个 Git 检出之内,则无法使用此功能。
当工作发展成真正要留下来的内容时,从对话线程菜单中选择转为项目。对话线程的文件夹会就地变成项目,因此不会移动任何内容,智能体也继续在原处工作。该文件夹中的其他对话线程会一起转过去。在项目设置中重命名该项目,并使用初始化 Git,即可获得分支和差异控件。
在后台开始
在桌面浏览器或桌面应用中,macOS 上按 Cmd+Enter,Windows 和 Linux 上按 Ctrl+Enter,即可开始一个新的对话线程,并立刻打开另一份草稿。下一份草稿会保留你选择的工作区模式和基准分支。若使用新建工作树,每一次后台提交都会创建自己的工作树。
在 Web 端或桌面端,要把同一条提示词发给多个模型,可在新对话线程的模型选择器中按住 Shift 点击模型来添加或移除。普通点击会回到单个模型。选定基准分支后发送。每一个被选中的模型都会启动单独的对话线程和工作树,而你仍留在新对话线程的 Composer(编写器)中。这需要一个 Git 项目。
置顶并重排对话线程
从对话线程(thread)的菜单中将其置顶,即可让它保持在活动工作的上方。
在 Web 端和桌面端,取消置顶、了结、延后和归档对话线程时,都会显示一条带有撤销的通知,持续五秒。撤销会恢复该对话线程先前的状态,包括置顶位置,并重新打开你当时正在查看的已归档对话线程。从侧边栏丢弃一份尚未发送的草稿也是如此:撤销会带回它的文本和附件。即使当时正在 Composer(编写器)里,mod+z 也会触发最近一次撤销;参见快捷键。
在 Web 端和桌面端,你还可以把电脑上的文件拖到任意对话线程行上:该对话线程会打开,文件会附加到它的 Composer 中,供下一条消息使用。此处适用与直接附加文件时相同的每条消息文件限制;参见附加文件。
在 Web 端和桌面端,置顶或取消置顶对话线程时,侧边栏会停在当前滚动位置,而不会跟着对话线程跳到列表中的新位置。
置顶并不能阻止自动了结。了结对话线程时会去掉它的置顶。
在 Web 端和桌面端,可以在分区间拖动对话线程来改变它的状态。把对话线程向上拖入置顶分区,就会在你放下的位置将它置顶;把已置顶的对话线程向下拖入活动列表,则会取消置顶。把对话线程拖到已了结标题上会把它了结,把已了结的对话线程拖入活动列表则会取消了结。已延后的对话线程可以拖出已延后搁架,这样就会唤醒它;但不能把对话线程拖进该搁架,因为延后需要一个唤醒时间。把已置顶的对话线程拖出置顶分区时,不会要求确认取消置顶。置顶与活动的边界标签只在拖动期间出现,而且不会移动各行。其他行会让开,标出对话线程将要落下的位置。当你拖入另一个分区时,被拖动的对话线程会连同图标显示放下后将执行的操作:置顶、取消置顶、了结、取消了结或唤醒。拖动期间,它的状态和悬停操作会隐藏。已置顶的对话线程只有留在置顶分区内才保持置顶;一旦离开,就改由徽章表示。在同一分区内重排不会显示徽章。如果当前没有任何置顶项,拖到顶部边缘即可置顶对话线程。整个拖动过程中,分区标签都保持可读,对话线程正悬停其上的分区会使用强调色。分区标签也会标出空分区,以及折叠的已了结搁架。
在置顶分区或活动分区内拖动,可以改变顺序。其他行会让开,标出对话线程将要落下的位置。放入这两个分区中的任意一个时,都会保留你选择的位置。在移动端,打开对话线程菜单并选择排列对话线程。在已置顶和活动之内或之间拖动手柄,即可重排、置顶或取消置顶。拖放到已了结分隔线上,即可了结该对话线程。被拖动的卡片会在你松手之前显示将要执行的操作。展开已延后或已了结,可以把已停放的对话线程拖回置顶分区或活动分区。每次放下都会保存;关闭面板即可返回对话线程列表。对话线程菜单中也有上移和下移。服务器会保存这一顺序,因此刷新后仍然保留,并会出现在你其他已连接的设备上。
在 Web 端和桌面端,通过置顶、了结和延后等对话线程操作改变分区时,列表也会播放动画。这些过渡会遵循系统的「减少动态效果」偏好。拖动期间,各行会跟着插入空隙移动,放下之后不会再重放一次过渡。
新对话线程会出现在你已经排列好的活动对话线程上方。了结会清除对话线程的活动位置,因此使用取消了结会让它回到顶部。置顶和延后会保留它的活动位置,直到你再次移动它。对话线程中的活动不会改变顺序。已了结搁架仍按了结时间排列。
如果某个环境(environment)无法拖动,请更新运行在该环境中的 T3 Code 服务器。置顶与活动列表的重排需要服务器支持。来自较旧服务器的对话线程会保持默认顺序,直到服务器完成更新。
要根据对话生成新标题,打开对话线程菜单并选择重新生成标题。标题正在生成时,或者已连接的环境需要更新服务器时,此操作不可用。
要改变标题的写法,在设置 → 对话线程 → 文本生成的「高级」下添加对话线程标题说明,例如长度限制,或一个要放在开头的标识符。这些说明对新标题和重新生成的标题都生效。选中一个项目(project),即可单独为它设置说明。
经由 T3 Code 连接的智能体,可以使用同一套由服务器持有的元数据工作流来重命名对话线程、重新生成其标题,或关联和取消关联拉取请求(pull request)。这些更改会显示在 Web 端、桌面端和移动端,无需让发起操作的浏览器保持打开。
折叠进行中的对话线程(测试版)
正在工作的对话线程,以及正在等待、稍后会从该项工作继续的对话线程,会移入活动列表下方一个折叠的进行中分区。其中包括子智能体、正在监视的拉取请求,以及智能体表明自己正在等待的后台命令(command)或监视器。智能体只是留下一个仍在运行的开发服务器或其他进程时,对话线程不会因此留在该分区。对话线程在完成、失败,或需要批准或回答时,会回到活动列表顶部。进行中分区会把你最近派发过工作的对话线程排在最前。已置顶的对话线程仍留在置顶分区。
此功能默认开启。在 Web 端和桌面端,通过设置 → 常规 → 进行中分区关闭;在 iOS 和 Android 上,通过设置 → 常规 → 进行中分区关闭。每台设备各自保存自己的选择。
开启期间,活动列表按每个对话线程上一次回到你这里的时间排序,因此不能在其中拖动或移动对话线程。关闭后,已保存的顺序会恢复。
按项目分组对话线程(测试版)
在 Web 端和桌面端打开设置 → 实验室 → 朴素侧边栏(按项目分组),即可把活动对话线程放进每个项目各自的文件夹。已置顶的项目排在最前。没有活动对话线程的项目不会有文件夹,除非它已被置顶,或你在项目筛选中选中了它。已归档项目的文件夹排在最后,并且只在它有活动对话线程时显示。点击文件夹即可展开或收起。收起的文件夹会显示其中的对话线程数量;若其中有一个需要你,还会显示一个圆点。使用文件夹上的笔形按钮,或右键点击该文件夹,即可在该项目中开始对话线程。已置顶的对话线程留在这些文件夹之上,已延后和已了结留在它们之下。在此模式下,可以把对话线程拖到 Composer 上以提及它,但不能在侧边栏内拖动,而且进行中分区处于关闭状态。每台设备各自保存自己的选择。
了结已完成的工作
从对话线程(thread)的菜单中选择了结对话线程,可以把已完成的工作移出活动列表,同时不删除对话。取消了结对话线程会把它恢复为活动工作,并阻止自动了结,直到出现新活动后才重新适用通常规则。手动了结一个空闲对话线程时,会撤下尚未回答的异步问题,既不发送回答,也不重新启动智能体。了结还会关闭该对话线程中停在空闲提示符处的终端,并保留它们的输出。正在运行命令(command)的终端(例如开发服务器)会保持打开,除非其操作在「设置 > 项目(project) > 操作」中启用了对话线程了结时停止此操作。你也可以在某个 t3.json 操作上设置 "stopOnSettle": true,再把它导入到那里。请通过该操作启动命令,这样 T3 才能停止其终端和子进程。经由智能体自己的 shell 工具启动的命令,由提供方(provider)管理。
要从已了结的工作中收回磁盘空间,可为项目的某个操作打开对话线程了结时在其工作树(worktree)中运行,或在某个 t3.json 脚本上设置 "runOnSettle": true,例如 cargo clean。每当位于自己工作树中的对话线程了结时,无论是手动还是自动,它都会运行,即使那里的终端仍在运行开发服务器之类的命令。位于项目主检出中的对话线程会跳过它。命令成功时,它的终端会关闭;失败时则保持打开。
在 Web 端和桌面端,按住某个对话线程的了结按钮并向上或向下拖动,即可了结该分区中、从它到你松手那一条之间的每一个对话线程。取消了结和唤醒按钮在各自的分区中用法相同。拖动时按 Escape 可取消。
默认情况下,环境(environment)会在七天后了结不活跃的对话线程,也会了结其拉取请求(pull request)已合并的对话线程。已关闭的拉取请求同样可以了结空闲的对话线程。空对话线程的不活跃时间从它创建时起算。进行中的工作、待处理的问题或批准,以及智能体正在等待的后台工作,都会阻止自动了结。未关闭的拉取请求不会阻止因不活跃而了结,除非你在设置 → 对话线程中打开保留带有 PR 的对话线程;但是,你在某条已关闭或已合并的旧拉取请求关闭之后又继续的工作,不会被这条旧拉取请求了结。只有你自己的消息才算继续。自行开始、并已完成后台工作或拉取请求监视的回合(turn),则不算继续。
若要让某个对话线程无论闲置多久都不进入已了结搁架,打开它的菜单,选择自动了结行为,再选择从不。当前选项会显示为已勾选。选择遵循设置,即可回到设置 → 对话线程中的规则。当这些规则处于关闭状态时,设为遵循设置的对话线程同样不会自动了结。设为从不时,手动了结、延后和归档仍然可用。
在设置 → 对话线程中更改这些规则。即使应用已经关闭,它们仍会继续运行。在 Web 端和桌面端,在顶部选择一个环境,就只更改该环境的规则;选择全部环境,则一并更新各个已连接的环境。混合值会标出所选环境之间不一致的地方。移动端会把这些规则应用到支持共享设置的已连接环境。离线环境和较旧的服务器会保留先前的值。更改规则不会重新打开已经了结的对话线程。
关联拉取请求
即便应用已经关闭,服务器仍会为每个未了结对话线程(thread)所保存的分支找到对应的拉取请求(pull request)。已了结的对话线程会保留已保存的链接。如果没有出现自动的分支链接,请更新服务器。
在 Web 端和桌面端,右键点击对话线程中的拉取请求链接,选择关联到对话线程,即可改选另一个 PR。在同一链接上使用从对话线程取消关联,可回到该分支的 PR(如果存在)。已关联的拉取请求会参与自动了结。
查找并引用工作
在 Web 端和桌面端,用 Cmd/Ctrl+K 打开命令面板,即可按标题、分支、拉取请求(pull request)或项目(project),在已连接的环境(environment)中搜索对话线程(thread)。你经常打开或最近打开的对话线程排名更靠前;在三周内,你上一次为某条查询选中的对话线程,会在你再次输入该查询时排名更靠前。消息中包含你全部词语的对话线程会显示在下方的在消息中,并打开到匹配的那条消息。消息搜索至少需要一个含三个或更多字母的词;中文、日文和韩文则至少需要两个字。在移动端,对话线程列表的搜索也会列出消息匹配,并打开到匹配的消息;在接有键盘的 iPad 上,Cmd+K 会打开同一个命令面板。
使用设置 → 快捷键查找或自定义用于搜索文件和复制对话线程引用的快捷键。复制得到的引用在有拉取请求链接时使用该链接,否则使用指向对话线程的链接。无论粘贴到哪里,这个链接都能打开该对话线程;粘贴到 Composer(编写器)中时,则会变成对话线程芯片(参见分享对话线程)。即便对话线程已有 PR,仍要复制对话线程本身时,请从其上下文菜单中选择复制 → 对话线程;在移动端,则从长按菜单中选择复制对话线程。对话线程 ID 会复制裸 ID,供脚本和 t3 CLI 使用。自定义配置请参见快捷键。
查看智能体的工作
受限表示提供方(provider)因用量或速率限制而停止。对话会保留提供方的说明。请在限制重置后重试,或切换到另一个提供方实例。在空白的 Composer(编写器)中按下继续,即可手动续上受限或被中断的回合(turn)。当提供方没有报告重置时间时应当这样做,因为没有任何机制会自行续上该回合。限制阻断对话线程(thread)期间,排队的消息会保持保存。它们会在接续完成后运行。如果队列是因重启而暂停的,届时再恢复该队列。
当提供方报告了重置时间时,选择在重置时继续即可安排一次接续。你可以在对话线程中取消它。在设置 → 对话线程中启用用量限制后继续,即可默认安排因限制而停止后的接续。重置到来时,环境(environment)必须正在运行;环境重启之后,会接上已逾期的接续。停止对话线程、发送新消息、将其归档或了结,都会阻止尚未开始的接续启动。
选择延后到重置,即可把对话线程隐藏到额度恢复为止。延后和自动继续彼此独立:只延后时,会唤醒对话线程但不发送消息;两者都启用时,则会唤醒并继续它。立即唤醒会取消延后。在对话线程行为设置中启用延后到限制重置,即可默认延后因限制而停止的情况。没有重置时间的提供方会提供手动重试,以及常规的延后选项。
在 Web 端和桌面端,使用智能体跟进委派给子智能体的工作。在移动端,从对话卡片或智能体打开子智能体。在带有检查器的 iOS 布局中,它的对话线程会在父对话线程旁边打开。将其最大化可铺满屏幕;关闭全屏视图即可回到父对话线程和检查器。在对话线程上执行停止,也会停止它委派出去的子智能体。
由智能体启动的子智能体对话线程不能接收消息,请改为给父对话线程发消息。当这样的子智能体需要批准或回答时,会由父对话线程向你询问。
在对话中展开工具调用,即可看到完整的命令(command)和输出。摘要会缩短 shell 包装,并且在最近一次调用结束后仍可以描述它;调用自身的结果显示其状态。
在 Web 端和桌面端,对话线程详情卡片会列出该对话线程的终端或其 Claude 智能体启动的本地服务器及其端口。并非每一台都提供网页。智能体启动的服务器,在该智能体的回合结束后仍会留在列表中。选择一台服务器,即可在浏览器面板中打开它。停止会结束该服务器的作业,同时保持智能体、终端和 T3 Code 继续运行。停止需要对该环境的终端访问权限,并且在 Windows 上不可用。
要选择对话线程详情卡片显示的内容,右键点击该卡片,或打开设置 → 外观 → 对话线程详情。隐藏的行仍保留键盘快捷键,例如「在编辑器中打开」和项目(project)脚本。重置为默认会恢复标准行。
侧边对话
侧边对话让你就某个对话线程(thread)提出问题,而不把内容加进该对话线程。它以对话线程已经知道的内容为起点,并且你提问期间,对话线程会继续工作。
在 Web 端和桌面端,以 /side 或 /btw 开头写一条消息,再跟上你的问题。你也可以从右侧面板的 + 菜单中选择侧边对话。侧边对话会在那里作为一个标签页打开,并带有自己的 Composer(编写器)。侧边对话不会出现在侧边栏中。可以在对话线程详情的侧边对话下再次找到它。
侧边对话在与对话线程相同的文件夹中工作,并一开始就使用对话线程 Composer 中显示的权限、模型和推理级别,包括它的第一条回复。可以在某个侧边对话自己的 Composer 中单独更改这些设置。之后对父对话线程的更改,不会改变已有的侧边对话。
要用上你了解到的内容,请选择带回。你接下来发到该对话线程中的消息会带上这次侧边对话。对话线程空闲时才可以带回。
关闭一个你从未在其中发送过消息的侧边对话,会把它删除。要删除用过的侧边对话,请选择侧边对话顶部的删除。删除对话线程也会删除它的侧边对话。
在移动端,对话线程会在 Composer 上方列出它的侧边对话。点按其中一个即可打开,并回答它提出的问题。
延后到以后
要更改延后菜单中的选项,请打开设置 → 对话线程 → 延后选项。每个选项是一段时长,例如 3 小时,或某一天的某个时刻,例如明天晚上 9:00。某个工作日指的是今天之后的下一个该工作日。菜单把最早到来的选项排在前面,并在某个「今天」选项的时间过后将其隐藏。在选中全部环境的情况下保存后,这些选项会应用于每一个已连接的环境(environment),移动应用也会使用它们。
从对话线程(thread)的菜单中选择延后 → 自定义…,即可按本地时区选择日期和时间,或按分钟、小时、天选择一段时长。时长从你确认时起算;一天表示 24 小时。在 Web 端和桌面端,你也可以把多个选中的对话线程一起延后。选择唤醒对话线程可以提前把它带回。
已延后的对话线程会继续工作,并一直隐藏到唤醒时间,即便智能体为了后台工作而自行醒来也是如此。如果需要批准、出现新问题、运行失败,或你发送了消息或回答,它会提前回来。你可以延后一条已有的问题,等对话线程唤醒后再回答;在此之前,该问题保持未回答。