SuperAPI AI 工具集

lark-task

办公与效率

查看项目

更新于 10-15 14:43

技能介绍

用途

lark-task 用于管理飞书任务、任务清单和任务智能体。当用户需要创建待办事项、查看任务列表、跟踪任务进度、管理项目清单、给他人分配任务、为任务上传附件文件、注册或注销任务智能体、更新任务智能体主页数据、写入智能体任务记录时,可使用本技能。

主要能力

技能提供两类调用方式:Shortcut 与原生 API Resource。

Shortcut 包括:+create(创建任务)、+update(更新任务属性)、+set-ancestor(设置或清除任务父级)、+comment(添加任务评论)、+complete(标记任务完成)、+reopen(重新打开已完成任务)、+assign(分配或移除任务成员)、+followers(管理任务关注人)、+reminder(管理任务提醒)、+get-my-tasks(列出分配给我的任务)、+get-related-tasks(列出与我相关的任务)、+search(搜索任务)、+upload-attachment(上传本地文件作为任务附件)、+tasklist-create(创建任务清单并可选添加任务)、+tasklist-search(搜索任务清单)、+tasklist-task-add(向任务清单添加任务)、+tasklist-members(管理任务清单成员)。

原生 API Resource 覆盖:tasks(创建、删除、获取详情、列取、更新)、tasklists(添加成员、创建、删除、获取详情、获取列表、更新、移除成员、获取清单任务列表)、subtasks(创建、获取子任务列表)、members(添加、移除任务成员)、sections(创建、删除、获取详情、获取列表、更新、获取分组任务列表)、custom_fields(创建、获取详情、更新、获取列表、加入资源、移出资源)、custom_field_options(创建、更新选项)、agent(更新任务代理主页内容数据、注册 AI 智能体)、agent_task_step_info(写入任务记录)。

使用方式

开始前必须先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证与权限处理。执行任何 Task 命令前,必须先确认能力真实存在,禁止根据用户意图自行拼接或猜测 +<verb>。

命令选择遵循渐进式发现:先将用户意图与 Shortcut 表精确匹配;参数不确定时读取对应 reference 或运行该 shortcut 的 --help。没有精确匹配或无法确认版本支持时,先运行 lark-cli task --help,以当前 CLI 输出的命令列表为准。help 中存在匹配 shortcut 时,使用 help 列出的完整 shortcut token(例如 +create)运行 lark-cli task <shortcut> --help,再按真实 flag 执行。help 中没有匹配 shortcut 时,不得尝试相似的 +<verb>;从 help 中选择原生 resource,运行 lark-cli task <resource> --help 确认 method,再运行 lark-cli schema task.<resource>.<method> 获取参数结构,最后调用 lark-cli task <resource> <method> ...。遇到 unknown_subcommand 时必须停止猜测或尝试变体,回到重新发现能力。

使用原生 API 时,必须先运行 schema 查看 --data / --params 参数结构,不要猜测字段格式。

适用场景与判断逻辑

任务搜索:先区分用户是否特地指定使用搜索 skill,以及是否真的提供了查询关键字。如果用户特地指定使用搜索 skill,或明确给出了任务查询关键字,则目标是任务时优先使用 +search。如果用户没有特地指定使用搜索 skill,且意图里没有查询关键字,只有范围条件(例如“今年以来”“已完成”“由我创建”“我关注的”),并且使用 +search 与 +get-related-tasks / +get-my-tasks 都能达到目的时,应优先使用列表型能力。其中,“与我相关 / 我关注的 / 由我创建”等优先考虑 +get-related-tasks;“我负责的 / 分配给我”的列表优先考虑 +get-my-tasks。不要把时间范围词本身误当成 query 去走搜索。

任务搜索相关性:+search 当前不会自动判断搜索结果与搜索发起人的相关性。如果用户明确要求搜索“与我相关”的任务,必须先识别具体关系,获取当前用户的 open_id,并显式传入对应的 --assignee(负责人)、--creator(创建人)或 --follower(关注人)过滤条件。

任务清单搜索:同样先区分是否指定搜索 skill 与是否提供清单关键字。有指定或有关键字时优先使用 +tasklist-search;没有关键字只有范围条件时,优先使用原生 tasklists.list 接口列取清单(先 schema task.tasklists.list,再 lark-cli task tasklists list --as user ...),再按 creator、created_at 等字段做本地筛选和分页控制。

用户身份识别:在用户身份场景下,如果用户提到了“我”(例如“分配给我”“由我创建”),请默认获取当前登录用户的 open_id 作为对应的参数值。

待办 disambiguation:用户提到「待办 / todo / 任务」时,先判断归属。上下文含妙记 / 会议纪要 / minute_token / 妙记 URL(/minutes/),或「在某某妙记里新建/修改待办」「妙记 AI 待办」「会议录制里的待办」,应走 lark-meeting 的 minutes +todo,禁止本 skill。任务清单、分配给我、项目待办、截止日期/提醒、子任务、任务清单成员,或 applink 含 client/todo/task?guid=,或明确说「飞书任务」「任务中心」「我的任务清单」,走本 skill。禁止在用户要在妙记里加待办时调用 task 命令去「找清单再放任务」。

创建与更新注意

只有在设置了 due(截止时间)的情况下,才能设置 repeat_rule(重复规则)和 reminder(提醒时间)。若同时设置了 start(开始时间)和 due(截止时间),开始时间必须小于或等于截止时间。使用 tenant_access_token(应用身份)时,无法跨租户添加任务成员。

查询与输出注意

输出任务详情时,如需渲染负责人、创建人等人员字段,除了展示 id(例如 open_id)外,还必须通过其他方式(例如调用通讯录技能)尝试获取并展示真实名字。输出清单详情时,如需渲染 owner、member、角色成员等人员字段,也必须尽量解析并展示真实名字。渲染创建时间、截止时间等字段时,需要使用本地时区(格式为 2006-01-02 15:04:05)。输出任务或清单执行结果时,建议同时提取并输出命令返回结果中的 url 字段(任务链接),以便用户直接点击跳转。

Task GUID 定义

Task OpenAPI 中用于更新/操作任务的 guid 是任务的全局唯一标识(GUID),不是客户端展示的任务编号(例如 t104121 / suite_entity_num)。对于 Feishu 的任务 applink(例如 .../client/todo/task?guid=...),必须使用 URL query 里的 guid 参数作为 task guid。

从任务清单定位并修改任务的最短路径:已知任务清单 GUID 时直接使用,不要先搜索;已知任务清单 applink 时,取 URL query 中的 guid 作为 tasklist_guid。只有清单名称或关键词、没有 GUID/applink 时,才调用一次 +tasklist-search 解析目标清单。按原生 API 规则先执行 lark-cli schema task.tasklists.tasks,再执行 lark-cli task tasklists tasks --params '{"tasklist_guid":"<tasklist_guid>"}' --as user。从清单任务结果中取任务的 guid,直接传给 +update 或 +complete;禁止传客户端展示编号。这两个 shortcut 也可直接接收包含 guid= 的任务 applink。+update 返回 updated_fields 和每个任务的服务端 confirmed 字段;+complete 返回 status、completed_at、already_completed。这些字段已确认目标状态时,不要例行追加 tasks get;仅在服务端未返回所需字段或用户明确要求完整复核时再查询详情。

权限

各方法所需 scope 如下:tasks.create / tasks.delete / tasks.patch 需 task:task:write;tasks.get / tasks.list 需 task:task:read;tasklists.add_members / create / delete / patch / remove_members 需 task:tasklist:write;tasklists.get / list / tasks 需 task:tasklist:read;subtasks.create 需 task:task:write;subtasks.list 需 task:task:read;members.add / remove 需 task:task:write;sections.create / delete / patch 需 task:section:write;sections.get / list / tasks 需 task:section:read;custom_fields.create / patch / add / remove 需 task:custom_field:write;custom_fields.get / list 需 task:custom_field:read;custom_field_options.create / patch 需 task:custom_field:write;agent.update_agent_profile / register_agent / agent_task_step_info.append_task_steps 需 task:task:write。

限制

本技能依赖 lark-cli 命令行工具与飞书开放平台权限体系,需先完成认证与权限配置。使用 tenant_access_token 时无法跨租户添加任务成员。+search 不会自动判断搜索结果与搜索发起人的相关性。命令与参数必须以当前 CLI 的 help 与 schema 输出为准,不得猜测。