别再手动更新任务看板了:让智能体自己移动卡片
不用拖卡片也能让任务看板保持真实:干活的 AI 智能体在开始和完成时自己移动每个任务,你只负责做决定。
Weft 是为独立创业者和小团队打造的 AI 任务管理工具。
作者: Andrei Finogeev ·
当干活的智能体在干活的同时就把卡片移好了,你就不用再手动更新任务看板了。在 Weft 里,start_task 把任务放进 Doing,report_progress 在智能体干活期间维持认领,complete_task 把它移到 Done;如果任务需要你审阅,就移到你的收件箱。你不再是那个负责让状态保持真实的人,而是那个做决定的人。
Weft 是我们做的。关于其他产品的事实来自它们的官方页面,核对于 2026年10月27日。
为什么每块任务看板最后都会过时?
更新状态是一份没人给钱的副业。正事是写代码、发账单、修页面。移动卡片是额外开销,而且偏偏出现在你想赶紧往下走的时候。
于是卡片总是事后、成批、凭记忆去挪。到了周四,Doing 里有三件没人在做的事,Todo 里有一件周一就已经上线的事。大家不再信任看板,转去翻聊天记录,看板就成了上周的一张快照。
AI 智能体让情况更糟。一个智能体一个下午就能做完五个任务,如果你还得自己一张张拖卡片,那你就是在给一个更快的员工打杂。
解决办法是事后清理,还是事前预防?
自动化看板有两种方式。事后清理是任由状态跑偏,再用 AI 来理顺。Hypertask 的文章 Stop Manually Updating Your Task Board 走的就是这条路:它介绍了一个 AI Triage 按钮,会读取你的收件箱,把每一项标为“可以安全归档”或“需要你处理”,在你批准后归档第一类。如果你的痛点是潮水般的评论和提醒,这是个合理的工具,而且 Hypertask 有为此内置的 AI。Weft 没有内置 AI,也没有通知分拣。
事前预防是另一条路:状态从一开始就不会出错,因为改状态不是一个单独的步骤。智能体不认领卡片就没法开工,不关闭卡片就没法收工。事后没有东西要分拣,因为卡片已经说明了发生了什么。
我们选择了预防。一块需要定期清理的看板,在两次清理之间都是错的。
智能体怎么在干活的同时移动卡片?
Weft 通过 Model Context Protocol 在 https://letsweft.com/api/mcp 连接你的 AI 客户端。客户端在浏览器里用 OAuth 登录,没有密钥要复制。四个工具调用承载了一个任务从开始到结束的状态:
- start_task 认领任务并把它移到 Doing。认领是一个 20 分钟的租约。如果第二个智能体尝试同一个任务,它会收到
already_claimed,并被告知不要重复劳动。 - report_progress 是心跳。每次调用都会续租,响应里会告诉智能体每 5 分钟续一次。如果智能体崩溃或对话被关掉,心跳就停了,租约在 20 分钟后过期,任务被释放,谁都可以接。沉默也是一种状态。
- request_input 带着选项向你提问,同时智能体保留认领。问题会进入你的收件箱,并可以以推送通知的形式发到你的手机上。
- complete_task 记录结果、证明结果的产物(URL、提交、文件哈希)、没做的部分、仍然未知的部分,以及下一步。默认情况下,任务直接移到 Done。如果任务被标记为需要审阅,或验证检查没通过,它会停在你的收件箱里。
智能体不需要记着去更新什么,因为更新就是它干活时发出的那个调用。租约和回执的完整机制,见认领循环指南。
坦白说有一个限制:Weft 从不主动调用智能体。只有当你和智能体在一个会话里时,它才会通过 get_my_work 或 start_task 拉取工作。卡片会动,是因为你在运行的智能体移动了它们,而不是因为 Weft 在监视你的仓库。Weft 没有 GitHub 或 Slack 同步,也没有 webhook,所以在智能体会话之外合并的 pull request 不会自己移动卡片。
手动看板和智能体移动的看板放在一起是什么样?
| 手动看板 | 智能体移动的看板(Weft) | |
|---|---|---|
| 谁移动卡片 | 你,或者谁记得谁动 | 干活的智能体,通过 start_task 和 complete_task。你仍然可以自己拖卡片 |
| 状态什么时候变 | 事后、成批、凭记忆 | 在工作开始和结束的那一刻。20 分钟没有心跳的认领会过期,任务被释放 |
| Doing 意味着什么 | 曾经有人开始过这件事 | 一个具名连接的有效认领,并且它在过去 20 分钟内汇报过 |
| Done 意味着什么 | 有人拖了卡片 | 一张回执:结果、产物、notDone、unknowns、下一步 |
| 你要审阅什么 | 整块看板,为了找出变了什么 | 只有停在你收件箱里的东西:对问题的回答,以及需要你决定的已完成工作 |
| 两个人做同一个任务 | 两边都做完了才发现 | 第二个智能体在开工前就收到 already_claimed |
| 你的工作 | 文员兼审阅者 | 只做审阅者:接受、返工、以后再说或放弃 |
哪些该自动化,哪些必须留给我决定?
凡是关于工作的事实,都交给自动化:开始了、还在做、做完了、卡住了。这些智能体比你更清楚,因为干活的就是它。凡是关于工作的判断,都留给自己:这够不够好,该不该上线,这件事还值不值得做。
| 交给智能体 | 留给自己 |
|---|---|
| 工作开始时把任务移到 Doing | 本周哪个任务最重要 |
| 干活期间维持认领 | 任何不可逆的事:钱、发布、生产环境、法律 |
| 带着结果和证据关闭任务 | 已完成的工作是接受、退回返工、推迟还是放弃 |
| 说明跳过了什么、对什么拿不准 | 没有合理默认值的真正岔路 |
| 根据你们商定的计划创建任务 | 计划本身 |
在 Weft 里,右边这一栏有两道门。当智能体在任务中途碰到一个决定时,它调用 request_input,你回答一个问题,最好是直接选一个选项。当智能体完成了需要你审阅的工作时,你会看到四个按钮:“接受”、“返工”、“以后再说”、“放弃”。选“返工”时要写一条备注。如果智能体传了下一步,你会在“接受”按钮上方看到它,所以接受批准的恰好就是这一步,不多不少。
AI 能根据一段对话把看板搭起来吗?
能,而且这是最容易的部分。在对话里描述你的项目,智能体就可以调用 initialize_board 创建四个默认列(Backlog、Todo、Doing、Done),再用 bulk_create_tasks 在一个事务里把整个计划加进去。这一批要么全部写入,要么全部不写,在你的月度额度里只算一次调用。没有指定列的任务会落到 Backlog。
Hypertask 的文章 Why We Let AI Agents Build Entire Boards 认为,交给智能体的合适单位是整个项目,而不是单个任务。我们同意智能体应该搭看板。我们不同意搭看板是难点。
搭看板很便宜:智能体几秒钟就能写出四十个任务。审阅才是真正的瓶颈。这些任务每一个总有一天都会产出需要你过目的成果,而你一天能看的就那么多。
所以 Weft 设的是注意力上限,而不是创建上限。当等你处理的东西太多时,start_task 会拒绝认领新工作,返回 attention_queue_full,并附上智能体仍然可以做的事(汇报进度、检查自己的工作、读看板)。上限是单人工作区 5 项、团队 10 项,或者预估审阅时间 45 分钟,以先到者为准。来自 request_input 的问题也计入其中,因为回答它们花的是同样的注意力。
智能体想规划多少都行,但当五件完成的事还在等你时,它没法开始第六件。
第一周该怎么安排?
先连接一个客户端。在 ChatGPT 里,Weft 是一个已发布的应用,所有方案都能用,包括免费版。在 Claude.ai 或 Claude Desktop 里,把它作为自定义连接器添加。在 Claude Code 里只需一条命令:claude mcp add --transport http weft https://letsweft.com/api/mcp(参见 Claude Code 设置页面)。然后把下面这段粘贴到对话里,改一下项目那一行:
你已经连上了我的 Weft 看板。这一周,请遵守下面的规则。
准备(今天):
1. 调用 get_board_state。如果没有列,调用 initialize_board。
2. 我的项目:[用 3-5 句话描述]。
以清单形式提出最多 12 个任务。先给我看清单。
我说可以之后,用一次 bulk_create_tasks 调用把它们加进去。
每次处理一个任务时:
3. 调用 get_my_work,看看哪些归你,以及我的队列还有没有余量。
4. 一开始真正动手就调用 start_task,而不是在我们
还只是讨论的时候。保存 runId 和 leaseToken。
5. 干活期间每隔几分钟调用一次 report_progress。
6. 如果遇到该由我做的决定(钱、发布、任何
不可逆的事,或者真正的岔路),用 2-4 个选项调用 request_input。
不要瞎猜,也不要为“能不能继续”征求许可。
7. 用 complete_task 收尾:一行结果、我能核查的
产物(链接、提交、文件)、notDone、unknowns 和一个 nextStep。
8. 永远不要手动把卡片移到 Done。complete_task 会做这件事。
9. 如果 start_task 返回 attention_queue_full,就别再开新活。
告诉我有哪些东西在等我,并帮我清掉它们。
每次会话结束时,告诉我你移动了哪些卡片,以及为什么。十二个任务是有意为之。免费方案下你有 50 个活跃任务和每月 200 次 AI 调用,而第一周的目的是学会这个循环,不是把看板填满。如果你要迁移已有的看板,Weft 在所有方案上都能导入 Linear、Jira 或 Notion 的 CSV 和 Trello 的 JSON。
这一周里,只做两件事:问题来了就回答,进到收件箱的东西就拍板。不要拖卡片。如果某张卡片放错了地方,这本身就值得知道:告诉智能体它漏了哪条规则,而不是悄悄把卡片挪回去。
到了周五,检查两件事:每张 Done 卡片上是不是都有你能打开来核查的东西?有没有哪件送到你面前的事,其实你可以提前定好?如果有,把这个默认规则写进下周的提示词里。
这方面 Weft 不做什么?
- 它没有内置 AI。思考发生在你自己的 AI 客户端里,所以 Weft 没有 AI 点数要买,也没有分拣按钮。
- 它不会根据外部事件移动卡片。没有 GitHub、GitLab 或 Slack 同步,没有 webhook,没有公开的 REST API。如果你的状态应该在没有智能体参与的情况下跟着提交和合并走,有这些集成的工具更合适。
- 它不会让每个任务都等你。大多数完成的工作会带着回执直接进 Done。只有需要审阅或检查没通过的任务,才会停在你的收件箱里。
如果你同时运行好几个智能体,是认领让它们互不干扰;多个智能体共用一块看板讲的就是这种情况,我的 AI 智能体到底做了什么讲的是怎么读回执。支持 MCP 的任务管理器的更全面对比,见 MCP 任务管理器对比表。
- 如果卡片由智能体来移动,我怎么知道它不是把所有东西都标成完成了?
- Weft 里的 Done 来自 complete_task,它会记录结果、产物、没做的部分和未知的部分。读产物,别读总结。对于你想在算数之前检查的工作,把任务标为需要审阅,它就会停在你的收件箱里,等你选择“接受”、“返工”、“以后再说”或“放弃”。
- 智能体做到一半崩溃了会怎样?
- 它不再发送 report_progress。20 分钟没有心跳,租约就会过期,任务被释放,任何人(包括另一个智能体)都可以接手。不需要你发现它崩溃了,看板就会停止声称有人在做这件事。
- 注意力上限会拖慢我的智能体吗?
- 它拖慢的是开工,不是收工。当有 5 项(团队是 10 项)或 45 分钟的审阅量在等你时,start_task 会拒绝新工作,但智能体仍然可以汇报进度、读看板。解除阻塞最快的办法,是对已经在你收件箱里的东西拍板。
- 能让某些智能体只读吗?
- 能。每个 OAuth 连接可以有 full、write 或 read 权限,在授权页面上选择,或之后在设置里修改。read 连接可以看看板,但不能移动卡片。你也可以随时断开一个客户端。
- 这需要付费方案吗?
- 不需要。整个循环在免费版上都能跑,包含 50 个活跃任务和每月 200 次 AI 调用;bulk_create_tasks 只算一次调用。Pro 每席位每月 $7 或每年 $60,没有这些上限。
- 这比 AI 分拣更好吗?
- 它解决的是另一个问题。分拣是在事后清理一堆评论和通知;如果这堆信息流就是你的问题,内置分拣的工具(比如 Hypertask)更合适。智能体移动的看板,是让你的智能体做的工作从一开始就不会状态跑偏。