一句话里藏着五个动作

先看这个举例的请求:用户说,“把昨天跑步里动作最差的三个片段找出来,再用数字人演示正确动作。”

如果是普通的问答系统,它可能回复几句泛泛的跑步建议。但用户真正的要求包括:

  1. 读取训练:找到昨天那次跑步的视频或传感器记录。
  2. 分析动作:对整段记录做姿态与步态分析。
  3. 找片段:按“动作最差”的标准排序,取出三个片段。
  4. 生成解释:说明每个片段问题在哪里。
  5. 调用数字人:让数字人演示与用户动作不同的部分。

这五步里,每一步都要用工具,而且后一步依赖前一步的结果。让系统把它们连起来自己办完,就是我们所说的体育Agent。

Agent 的骨架:规划、工具与记录

一个可靠的Agent,大致由三部分构成:

  • 规划:把用户的话拆成一串步骤,并且可以根据中间结果调整。
  • 工具:每一步对应一个明确的工具,比如“读取训练记录”“姿态分析”“片段筛选”“数字人演示”。工具有清楚的输入输出,返回结构化结果。
  • 记录:每一步做了什么、用了什么数据、得到什么结果,都要留痕,用户可以回看。

在这里,语言模型主要承担规划与表达,真正看视频、算角度的仍然是专门的姿态与分析模块。这一点与多模型协作的分工原则一致:Agent只是调度者,不应该替代专业模块。

“最差”是怎么判断的

用户说“动作最差”,看似简单,实际上需要澄清标准。Agent不应该自己悄悄定义。可行的做法是:

  • 使用一个明确的评分规则,比如结合动作偏离程度、连续出现的次数与安全相关性,并在结果里说明依据。
  • 对关键点置信度低的片段降低排序权重,避免因为画面被遮挡而把“看不清”当成“做得差”。
  • 结果同时给出原片段和标注,便于用户核对。

关于动作分析如何区分“标准动作”和“对这个人可行的动作”,可以参考数字教练为什么需要3D动作模型

再看一遍:这个请求怎样被拆成工具调用

把上面的五个动作对应到工具上,可以得到一条示意的调用链。名称仅为举例:

  1. `读取训练记录`:输入日期与运动类型“跑步”,输出该次训练的视频与传感器摘要。如果昨天有两次跑步,Agent应当先问“是早上那次还是晚上那次”,而不是随便选一个。
  2. `姿态与步态分析`:对整段记录逐段给出关键点、步频节奏、左右对称等结构化结果,并附带置信度。
  3. `片段筛选`:按事先说明的规则给各片段打分,取出排名靠前的三个,剔除置信度过低的画面。
  4. `生成解释`:语言模型读取结构化结果,写出每个片段的一句话说明,数字必须来自上一步的输出。
  5. `数字人演示`:只演示用户动作与参考动作有差异的部分,并注明这是示意性的对比演示。

每个工具都返回结构化结果,规划模块根据结果决定是继续、追问用户还是终止。如果第2步发现整段视频里人物大部分时间被遮挡,规划模块就不应该继续往下走,而应该回到用户那里说明情况。

与普通聊天助手的区别,落在哪些地方

有人会问,这和给聊天助手接几个插件有什么不同。区别主要体现在四个地方:

  • 有状态:Agent知道自己已经做了哪几步、还差哪几步,而不是每次回答都从头开始。
  • 有边界:它清楚哪些数据可以读、哪些操作要确认,权限是设计的一部分,而不是事后补的。
  • 有核对:每个结论都能追溯到工具输出,用户可以点开原片段验证。
  • 有退路:失败时知道退回哪里、告诉用户什么,而不是自行编一个完整的答案。

这些特点听上去朴素,但它们恰恰决定了Agent值不值得信任。

权限与确认:哪些事要先问

Agent与问答系统最大的不同,是它会去读数据、调用功能。所以权限设计要放在能力设计之前。

我们倾向于把动作分成三类:

类别 例子 处理方式
只读读取已授权的训练记录、分析已有片段 在授权范围内自动进行,并留痕
可撤销 生成一个演示草稿、创建训练提醒可自动完成,但用户能一键撤销
不可撤销或影响较大 删除记录、分享训练视频、修改训练计划 必须先展示内容并等待用户确认

另外几条规则也很重要:

  1. 按需授权:摄像头、蓝牙、身体数据的权限,在真正用到时再请求,不要在一开始一次性要完。
  2. 最小化:Agent只能读取完成当前任务所需要的数据。
  3. 可见可改:用户能看到Agent保存了什么,也能删除。

产品层面如何避免一开始就要一堆权限,可以参考第一次使用时为什么先问看比赛还是做训练

失败与回退:不悄悄跳过

多步任务里,每一步都有可能失败。比如昨天那次跑步的视频质量太差、传感器数据缺了一半、数字人演示资源没有加载成功。合理的处理方式是:

  • 如实说明:告诉用户哪一步没有完成,以及原因,而不是悄悄跳过后给出一份看起来完整的结果。
  • 给出替代方案:视频质量差,就改用传感器数据做粗略分析,并明确标注精度有限。
  • 不编造:找不到足够的片段时,只列出能确认的,不凑数。
  • 可中断可续做:用户可以中途停下,或者从失败的那一步继续。

在这个例子里,如果只找出了两个置信度足够的片段,Agent应当说“只找到两个可以确认的片段”,而不是勉强凑出第三个。

主动执行的边界

“主动执行”听起来很吸引人,但体育场景里有几条明确的边界:

  • 不替用户决定训练强度。Agent可以提醒、准备、建议,但是否加量、是否继续,由用户决定。
  • 不在身体不适时推进计划。出现疼痛、头晕等情况时,正确的做法是停止训练,必要时咨询专业医生,这不是Agent应该去优化的问题。
  • 不做诊断。心率、HRV和恢复读数只是运动表现参考,不构成医疗判断。
  • 不越权采集。没有授权就不启动摄像头,不读取与任务无关的数据。
以上是江南体育AI对数字体育Agent的设计思路。文中的请求、片段数量与流程都是举例,并不代表某项功能已经上线或达到某种效果。

评估一个体育Agent,可以看什么

Agent的好坏不能只看回答顺不顺,而要看过程。一份朴素的检查清单如下:

  1. 任务被拆成了哪些步骤,用户能否在界面上看到?
  2. 每个结论是否能点回具体的训练片段或数据来源?
  3. 请求含糊时(比如“昨天”有两次训练),它是追问还是自作主张?
  4. 遇到失败时,它是如实说明并给出替代,还是悄悄补全?
  5. 涉及分享、删除、改计划这类操作时,是否等待了明确确认?

这几条都与模型的聪明程度关系不大,更多取决于产品与系统设计。

小结

从回答问题走向执行任务,意味着系统要会规划、会调用工具,也要会申请权限、承认失败并留下记录。数字体育Agent的价值不在于替用户做决定,而在于把繁琐的读取、分析与整理工作办完,再把判断权留给用户。这是一个值得认真研究的方向,也是需要谨慎推进的方向。