任务管理助手是理解 AI Agent 的好案例。它看起来简单,只是创建和管理待办,但实际上覆盖了 Agent 的大多数关键能力:意图识别、工具调用、状态管理、授权确认、错误处理和结果验证。
如果能把任务管理助手设计清楚,就可以把同样思路迁移到日历助手、文档助手、代码助手、运维助手和内容管理助手。
需求边界
一个任务管理助手可以支持以下能力:
- 创建待办;
- 查询我的任务;
- 标记任务完成;
- 修改截止时间;
- 添加备注;
- 从会议纪要中提取任务;
- 把任务分配给指定人员。
这些功能背后需要访问任务系统 API,也需要知道当前用户是谁、是否有权限、操作是否高风险。
工具设计
可以把任务能力拆成多个原子工具:
- 「create_task(summary, due, assignee)」;
- 「list_tasks(status, dateRange)」;
- 「complete_task(taskId)」;
- 「update_task(taskId, fields)」;
- 「add_task_comment(taskId, comment)」;
- 「extract_tasks_from_text(text)」。
不要设计一个过大的 「manage_task」 工具。原子工具更容易描述、校验、授权和审计。
意图识别
用户表达通常不是结构化的。例如:
“帮我记一下,明天看一下 Agent 授权逻辑。”
Agent 需要识别出:这是创建任务,任务标题是“看一下 Agent 授权逻辑”,截止时间可能是明天。
如果信息不完整,例如不知道负责人,Agent 可以使用当前用户作为默认负责人,或向用户追问。
授权与确认
任务查询通常是低风险操作,可以自动执行。创建任务是写操作,但如果用户明确说“帮我创建一个待办”,可以认为意图明确。
删除任务、批量修改任务、给他人分配任务,则应该要求确认。
授权失败也很常见。比如任务系统缺少写权限,Agent 应该发起授权流程,并在用户完成授权后继续执行,而不是简单报错。
状态管理
任务助手必须保存上下文。用户可能说:
“把刚才那个任务标记完成。”
如果系统没有记录刚创建的 taskId,就无法知道“刚才那个”是什么。
需要保存的状态包括:
- 当前用户;
- 最近创建的任务;
- 最近查询结果;
- 用户确认状态;
- 工具调用结果;
- 错误信息。
从会议纪要生成任务
更复杂的场景是从会议纪要中提取任务。流程可以是:
- 读取会议纪要;
- 提取行动项;
- 识别负责人和截止时间;
- 展示给用户确认;
- 批量创建任务;
- 返回任务链接。
这里必须加入确认。因为模型提取的负责人和截止时间可能不准确,不能直接批量写入。
错误处理
任务系统可能返回多种错误:权限不足、用户不存在、截止时间格式错误、任务 ID 无效、网络超时。Agent 应该把错误转成用户能理解的下一步。
例如权限不足时,不应该只说“API error”,而应该说明需要授权 「task:task:write」,并提供授权流程。
结果验证
创建任务后,最好返回结构化结果:
- 任务标题;
- 任务 ID;
- 任务链接;
- 截止时间;
- 负责人;
- 当前状态。
对于关键操作,可以再次查询任务详情,确认状态确实更新。
小结
任务管理助手是一个小而完整的 Agent 案例。它展示了 Agent 如何理解目标、调用工具、处理权限、维护状态并验证结果。掌握这个案例后,就能把同样方法扩展到更多真实业务场景。