任务

任务将 GitHub、Linear 和 Sentry 上的工作统一到一个视图中。无需分别在 GitHub 上跟踪 Pull Request、在 Linear 上跟踪相关 issue、在 Sentry 上跟踪错误告警,Themis 会自动将它们关联起来,在收件箱中显示为一个完整的任务。

你也可以直接在聊天中创建个人任务 —— Agent 会为你跟踪这些持久承诺,与 webhook 衍生的任务在同一个收件箱中并列显示。详见聊天管理的个人任务

统一机制

当 Themis 收到 webhook 事件(PR 打开、issue 更新、Sentry 告警)时,它会计算一个任务键——一个唯一标识符,如 github:owner/repo:pr:42linear:ENG-123。如果来自不同渠道的事件存在关联,它们会被合并到一个任务中。

跨渠道检测

Themis 自动发现渠道之间的关联:

检测方式示例
分支名称分支 pip-123-fix-login → 关联到 Linear issue PIP-123
PR 描述PR 正文提到 PIP-456 → 关联到该 Linear issue
代码生成Themis 为 ENG-789 生成代码 → 将 PR 关联回该 issue
URL 扫描活动文本包含 github.com/owner/repo/pull/42 → 关联到该 PR

当发现关联时,活动会合并到一个任务中。如果后来发现两个独立的任务存在关联,它们会自动合并——活动、参与者和收件箱条目全部整合。

任务收件箱

任务出现在收件箱的 Tasks 标签下,分为三个视图:

标签页显示内容状态
聚焦现在需要你关注的工作待处理、审查中
稍后进行中但不紧急的工作进行中
已完成已完成或关闭的工作已完成、已关闭

每个任务显示的内容

  • 状态标记 — 颜色编码:灰色(待处理)、金色(进行中/审查中)、绿色(已完成)
  • 标题 — 取自最相关的活动(优先使用 Linear issue 标题,其次是 PR 标题)
  • 来源标记 — 可点击的链接,指向 GitHub、Linear 和/或 Sentry
  • 贡献者 — 所有参与者的头像及其角色
  • AI 摘要 — 1-2 句话总结当前状况,自动生成并在新活动到达时刷新
  • 活动时间线 — 所有渠道事件的时间顺序列表

任务详情

点击任务查看完整详情面板:

  • 状态下拉菜单 — 手动更改状态或让其自动跟踪
  • 操作按钮 — 直接跳转到 PR、Linear issue 或相关聊天
  • AI 摘要 — 过期时自动刷新;点击刷新按钮手动重新生成
  • 关联对话 — 讨论过该任务的聊天对话
  • 活动时间线 — 来自所有渠道的每个事件,带有来源标识

任务状态

状态从最新活动自动推导

事件推导出的状态
PR 打开/准备就绪审查中
PR 审查已提交审查中
代码推送进行中
Linear issue 移至”进行中”进行中
PR 已合并已完成
Linear issue 移至”已完成”已完成
PR 关闭但未合并已关闭
Sentry issue 已解决已完成

手动覆盖

点击任务上的状态下拉菜单可以手动设置。一旦手动覆盖,该任务的自动状态跟踪会暂停。点击状态旁边的重置图标可恢复自动跟踪。

你在任务中的角色

你根据参与情况出现在任务中:

角色获得方式
拥有者你在聊天中创建了任务(create_task
作者你打开了 PR 或创建了 issue
受理人PR 或 issue 分配给了你
审查者你被指定为审查者
被提及你在评论中被 @ 提及

每个角色都会创建一个收件箱条目,使任务出现在你的个人任务列表中。你只会看到你有角色的任务——而不是空间中的所有任务。

AI 摘要

每个任务会获得一个自动生成的摘要,概述工作内容、当前状态和最近发生的事情。摘要:

  • 新活动到达时自动刷新(带防抖机制以避免过度重新生成)
  • 使用具体细节 — PR 编号、issue ID 和贡献者姓名
  • 保持简洁 — 最多 1-2 句话
  • 可以通过点击摘要卡片上的刷新按钮手动刷新

聊天管理的个人任务

除了来自 webhook 的任务之外,你还可以让 Agent 直接在聊天中创建并管理个人任务。个人任务是持久的承诺 —— 待办、跟进、提醒 —— 它们与 webhook 任务在同一个收件箱中显示,但归你所有,并通过对话进行管理。

创建任务

直接告诉 Agent 你要跟踪什么:

“提醒我周五前起草认证重构 spec”

Agent 会调用 create_task(title: "起草认证重构 spec", due_date: "2026-04-30"),任务会立即出现在你的任务标签下。发起这次对话会被链接为任务的来源,方便你随时跳转回去。

Agent 被指示不要为一过性的问题、一次性操作,或已经存在 Linear issue / GitHub PR / Sentry 告警的工作创建任务(那些通过 webhook 流入)。create_task 用于你之后还想回头处理的事情。

通过 ID 引用任务

每个任务都有一个数字 id,在收件箱标题旁以小巧的 #1278 chip 形式显示。把 id 粘回聊天就能引用:

“#1278 现在什么状态?” “把 #1278 标记为完成” “把 #1278 的截止日期改到下周二”

Agent 在底层使用以下工具:

工具作用
create_task(title:, summary?, status?, due_date?)创建一个由你拥有的个人任务
list_my_tasks(status?, overdue?, origin?, limit?)列出你拥有的任务
get_task(id:)只读详情查询;任务上的任意参与者均可查看(拥有者、作者、受理人、审查者、被提及者)
update_task(id:, title?, summary?, status?, due_date?)更新你拥有的任务;传入 status: "auto" 可清除手动覆盖
complete_task(id:)将你拥有的任务标记为完成
delete_task(id:)销毁你拥有的任务(Agent 会先确认)

权限

  • 读取 —— 任务上有任意参与者角色(拥有者、作者、受理人、审查者、被提及者)的人,都可以让 Agent 通过 id 查询。与你在收件箱中能看到的一致。
  • 写入 —— 仅拥有者可以更新 / 完成 / 删除。Agent 会拒绝你不拥有的任务,并建议替代方案(例如改为在 Linear issue 上评论)。
  • 跨空间 —— 任务按 space 隔离。空间 A 中的 Agent 无法读取或修改空间 B 的任务。

状态、截止日期与覆盖

在聊天中设置状态(例如 “把 #1278 标为进行中”)会将任务切换为手动覆盖 —— webhook 活动不会再静默改回它。要恢复自动跟踪,让 Agent “清除 #1278 的状态”(它会传 status: "auto")。

截止日期会同时显示在侧栏和详情页。逾期任务会在日期旁显示红色的逾期标签。

审计轨迹

你对个人任务的每一次更改 —— 标题、摘要、状态、状态覆盖、截止日期 —— 都会与任意 webhook 活动一起被记录在任务的时间线中,包含执行更改的用户和易读的描述(如 “标记为完成”、”截止日期设为 5 月 1 日”)。在任务详情页查看时间线,了解发生了什么以及何时发生。

启用 / 禁用

个人任务由空间上的任务功能开关控制(默认开启)。关闭后聊天工具消失,引导提示也不再注入。在设置 → 功能中按空间配置。

使用技巧

Webhook 任务是自动的;个人任务是显式的。 GitHub、Linear、Sentry 任务无需操作就会出现在你的收件箱中。个人任务只在你让 Agent 跟踪某事时才存在。

一致的分支命名能让跨渠道关联效果最佳。 使用 pip-123-descriptionfeat/eng-456-feature 这样的分支名,Themis 就能自动将分支匹配到 Linear issue。

利用聚焦/稍后/已完成作为轻量级的任务看板。聚焦显示当前需要关注的事项,稍后显示后台进行的工作,已完成是你的完成归档。