【S3W3 交叉评测】Activity-Nexus-Agent 实机验证:证据闭环、延迟可观察性与评审文档一致性 #3

Closed
opened 2026-08-06 22:03:31 +08:00 by Rosesws · 1 comment

1. 本次实测范围

我在 2026-08-06 使用公开的「学生会视角」访客 Demo 完成了以下路径:

  1. 进入管理 Agent。
  2. 执行「汇总我负责活动的待处理事项,按紧急程度排序」。
  3. 展开查询覆盖范围。
  4. 要求为“社区敬老院志愿服务”起草集合提醒并准备发布。
  5. 在 Agent 发现集合时间缺失后,补充为 15:30。
  6. 查看操作确认卡并点击「拒绝」。
  7. 打开历史会话检查记录是否保留。

2. 实测成立的亮点

  • 核心闭环真实可运行:访客 Demo 无需私密账号即可进入,工作台、Agent 和历史会话均可用,不只是文档说明。
  • 查询覆盖可判断:待办汇总显示本轮查询 8 项及数据时间;展开后可见活动检索、活动详情、报名与手册、工单检索和工单详情均成功。
  • 缺失信息不猜测:系统中没有集合时间时,Agent 没有自行编造,而是明确要求补充时间。
  • 人在回路证据完整:补充 15:30 后,确认卡显示活动 ID 20、当前状态、发布权限、公告字数、影响 4 人、通知范围和 10 分钟有效期。
  • 拒绝路径有效:点击拒绝后状态变为“已拒绝 / 已由操作员拒绝”,没有执行公告发布。
  • 上下文可延续:历史会话中保留了本次任务及最后回复。

这些实测结果说明此前评测推动的“对象标识、覆盖范围、有效期、拒绝状态”等改动已经落到可见产品,而不是只写进说明文档。

3. 当前仍需解决的问题

3.1 长任务缺少过程可观察性

本次三个模型阶段(待办汇总、缺失信息检查、生成操作卡)各自大约等待 20–30 秒。等待期间界面只有“正在查询并整理结果”,没有:

  • 已耗时
  • 当前阶段或已完成工具数
  • 取消入口
  • 超时阈值
  • 失败后的可恢复动作

任务最终成功,但在真实管理场景中,用户无法判断系统是在正常查询、模型排队,还是已经卡住。

3.2 公开评审文档与现有 Demo 已发生漂移

README 和 Demo 指南仍强调“评审账号从赛事私密备注获取”,但当前登录页已经提供可直接使用的「学生会视角」访客 Demo。这是明显优势,应成为默认的一分钟体验路径;私密账号可以保留为需要更高权限验证时的补充方案。

3.3 可运行产品与公开证据之间仍有断层

公开仓库诚实声明不提供源码,这可以理解;但目前真实截图/录屏、指标快照和跨账号负向测试记录仍未补齐。由于外部评审无法检查实现,建议提供一个不泄露源码和数据的“可核验运行证据包”,否则关键安全主张仍主要依赖项目方自述。

4. 可直接验收的改进建议

  1. 补齐长任务状态 UI

    • 显示已耗时和当前阶段,例如“检索活动 2/3”“生成摘要”。
    • 提供取消按钮和明确超时状态。
    • 失败时保留已获得的部分结果,并说明哪些步骤未完成。
  2. 公布延迟基线

    • 对至少 30 次标准任务记录 P50、P95、超时率。
    • 区分模型等待、工具查询和前端渲染耗时。
    • 将脱敏快照放入 docs/METRICS.md,而不是只给指标定义。
  3. 更新一分钟体验路径

    • README 首先写“一键选择学生会视角 → Agent → 待办汇总”。
    • 明确访客 Demo 的数据会话边界和自动清理行为。
    • 私密评审账号仅用于访客权限无法覆盖的验证项。
  4. 发布脱敏运行证据包

    • 一段连续录屏或截图序列。
    • 一条脱敏运行记录:输入、工具列表、状态、耗时、覆盖范围、提案状态 pending → rejected
    • 标注应用版本或提交 SHA、Demo 数据版本和测试时间,便于复测同一条路径。

5. 综合评价

优势:产品不是概念页,事实查询、缺口追问、覆盖范围、操作确认和拒绝路径都能实际走通;人在回路设计已经具备可信产品雏形。

代价与短板:模型阶段等待时间较长且不可观察;公开仓库不含源码时,真实运行证据和指标快照就变得更重要,而这两项目前仍未交付完整。

优先级建议:先补“进度/取消/超时 + P95 快照”,再补版本化运行证据包。这两项不会要求公开生产源码,却能显著提高评审可复现性和对安全主张的信任度。

## 1. 本次实测范围 我在 2026-08-06 使用公开的「学生会视角」访客 Demo 完成了以下路径: 1. 进入管理 Agent。 2. 执行「汇总我负责活动的待处理事项,按紧急程度排序」。 3. 展开查询覆盖范围。 4. 要求为“社区敬老院志愿服务”起草集合提醒并准备发布。 5. 在 Agent 发现集合时间缺失后,补充为 15:30。 6. 查看操作确认卡并点击「拒绝」。 7. 打开历史会话检查记录是否保留。 ## 2. 实测成立的亮点 - **核心闭环真实可运行**:访客 Demo 无需私密账号即可进入,工作台、Agent 和历史会话均可用,不只是文档说明。 - **查询覆盖可判断**:待办汇总显示本轮查询 8 项及数据时间;展开后可见活动检索、活动详情、报名与手册、工单检索和工单详情均成功。 - **缺失信息不猜测**:系统中没有集合时间时,Agent 没有自行编造,而是明确要求补充时间。 - **人在回路证据完整**:补充 15:30 后,确认卡显示活动 ID 20、当前状态、发布权限、公告字数、影响 4 人、通知范围和 10 分钟有效期。 - **拒绝路径有效**:点击拒绝后状态变为“已拒绝 / 已由操作员拒绝”,没有执行公告发布。 - **上下文可延续**:历史会话中保留了本次任务及最后回复。 这些实测结果说明此前评测推动的“对象标识、覆盖范围、有效期、拒绝状态”等改动已经落到可见产品,而不是只写进说明文档。 ## 3. 当前仍需解决的问题 ### 3.1 长任务缺少过程可观察性 本次三个模型阶段(待办汇总、缺失信息检查、生成操作卡)各自大约等待 20–30 秒。等待期间界面只有“正在查询并整理结果”,没有: - 已耗时 - 当前阶段或已完成工具数 - 取消入口 - 超时阈值 - 失败后的可恢复动作 任务最终成功,但在真实管理场景中,用户无法判断系统是在正常查询、模型排队,还是已经卡住。 ### 3.2 公开评审文档与现有 Demo 已发生漂移 README 和 Demo 指南仍强调“评审账号从赛事私密备注获取”,但当前登录页已经提供可直接使用的「学生会视角」访客 Demo。这是明显优势,应成为默认的一分钟体验路径;私密账号可以保留为需要更高权限验证时的补充方案。 ### 3.3 可运行产品与公开证据之间仍有断层 公开仓库诚实声明不提供源码,这可以理解;但目前真实截图/录屏、指标快照和跨账号负向测试记录仍未补齐。由于外部评审无法检查实现,建议提供一个不泄露源码和数据的“可核验运行证据包”,否则关键安全主张仍主要依赖项目方自述。 ## 4. 可直接验收的改进建议 1. **补齐长任务状态 UI** - 显示已耗时和当前阶段,例如“检索活动 2/3”“生成摘要”。 - 提供取消按钮和明确超时状态。 - 失败时保留已获得的部分结果,并说明哪些步骤未完成。 2. **公布延迟基线** - 对至少 30 次标准任务记录 P50、P95、超时率。 - 区分模型等待、工具查询和前端渲染耗时。 - 将脱敏快照放入 `docs/METRICS.md`,而不是只给指标定义。 3. **更新一分钟体验路径** - README 首先写“一键选择学生会视角 → Agent → 待办汇总”。 - 明确访客 Demo 的数据会话边界和自动清理行为。 - 私密评审账号仅用于访客权限无法覆盖的验证项。 4. **发布脱敏运行证据包** - 一段连续录屏或截图序列。 - 一条脱敏运行记录:输入、工具列表、状态、耗时、覆盖范围、提案状态 `pending → rejected`。 - 标注应用版本或提交 SHA、Demo 数据版本和测试时间,便于复测同一条路径。 ## 5. 综合评价 **优势**:产品不是概念页,事实查询、缺口追问、覆盖范围、操作确认和拒绝路径都能实际走通;人在回路设计已经具备可信产品雏形。 **代价与短板**:模型阶段等待时间较长且不可观察;公开仓库不含源码时,真实运行证据和指标快照就变得更重要,而这两项目前仍未交付完整。 优先级建议:先补“进度/取消/超时 + P95 快照”,再补版本化运行证据包。这两项不会要求公开生产源码,却能显著提高评审可复现性和对安全主张的信任度。
Collaborator

感谢这份实测记录

路径写得很具体,可以逐条对上代码。

你观察到的四项:

  • 确认卡上的目标对象(kind / id / 当前状态)
  • 10 分钟有效期
  • 可展开的查询覆盖范围
  • 拒绝后的终态

正是这个提交引入的,不是文档描述。

补充两点这次一并落地、但你的路径没有走到的行为:

  • 确认是精确一次的。重复确认一个已接受的动作,会重放已记录的结果,而不是再次执行。
  • 推翻已定结论或与在途确认发生竞态时,会返回 409
  • 并发确认由会话行的乐观版本号串行化,绕过 UI 也不会双写。
  • 覆盖范围里,“失败”和“拒绝”是分开计数的。拒绝代表权限边界在起作用,不应该和读取失败混在一个数字里。
  • 你那轮 8 项全部成功,因此没有看到这个区分。

3.1 长任务缺少过程可观察性 —— 属实,未做

现在等待期间只有一行静态文案:

frontend/src/routes/Agent.svelte:738

前端没有 AbortController,也就没有取消入口。以下信息目前都没有展示:

  • 已耗时
  • 当前阶段
  • 工具进度
  • 超时阈值

这不是被漏掉的小事。

ToolTrace 已经在服务端逐次记录每个工具调用,信息是存在的,只是要等整轮结束后才会随消息一起返回,中途没有通道推给前端。

所以修法不是简单增加一个 spinner 文案,而是需要把该轮的工具调用逐条流出来,例如:

  • SSE
  • 轮询运行状态

前端只有获得这条实时通道后,才谈得上展示:

“检索活动 2/3”

取消和部分结果保留也需要跟着这条通道一起实现:

  • 失败时保留已经成功的读取结果
  • 同时说明哪些步骤没有完成
  • 复用现有的覆盖范围组件

这条排在第一位。

3.2 README 与现有 Demo 漂移 —— 属实

README 目前完全没有访客 Demo 的入口说明,全文只有一处与 demos/ 目录名的巧合匹配。

既然登录页已经能直接进入“学生会视角”,一分钟体验路径就应该以它为准。私密评审账号则退为访客权限覆盖不到的验证项,例如:

  • 管理员侧的 metrics 端点

同时会写清访客沙箱的边界:

  • 每个访客拥有独立的种子数据
  • 登出、会话被替换或 TTL 到期后,沙箱即删除
  • Agent 花费按以下四层进行限额:
  • 账号
  • 浏览器指纹
  • IP
  • 全局
  • 限额账本不会因沙箱删除而清零

3.3 运行证据与指标快照 —— 部分已有后端,快照未交付

指标本身在上个提交中已经是真实端点,而不是仅有定义:

GET /api/v1/admin/agent/metrics

该端点返回:

  • success_rate
  • failure_rate
  • denial_rate
  • acceptance_rate
  • stale_rate
  • p50_ms
  • p95_ms

这些指标都来自 agent_runs 中每轮实际运行数据的聚合。

目前缺少的是你要求的下一步:发布脱敏快照。

docs/METRICS.md该文件目前不存在。

关于时延指标的说明

现在记录的是每轮的总时延,还没有拆分以下阶段:

  • 模型等待
  • 工具查询
  • 前端渲染

你提出的时延拆分需要额外埋点,并会与 3.1 的流式通道一起完成。两者需要使用同一份分阶段计时数据。

# 感谢这份实测记录 路径写得很具体,可以逐条对上代码。 你观察到的四项: - 确认卡上的目标对象(`kind` / `id` / 当前状态) - 10 分钟有效期 - 可展开的查询覆盖范围 - 拒绝后的终态 正是这个提交引入的,不是文档描述。 补充两点这次一并落地、但你的路径没有走到的行为: - 确认是**精确一次**的。重复确认一个已接受的动作,会重放已记录的结果,而不是再次执行。 - 推翻已定结论或与在途确认发生竞态时,会返回 `409`。 - 并发确认由会话行的乐观版本号串行化,绕过 UI 也不会双写。 - 覆盖范围里,“失败”和“拒绝”是分开计数的。拒绝代表权限边界在起作用,不应该和读取失败混在一个数字里。 - 你那轮 8 项全部成功,因此没有看到这个区分。 ## 3.1 长任务缺少过程可观察性 —— 属实,未做 现在等待期间只有一行静态文案: ```text frontend/src/routes/Agent.svelte:738 ``` 前端没有 `AbortController`,也就没有取消入口。以下信息目前都没有展示: - 已耗时 - 当前阶段 - 工具进度 - 超时阈值 这不是被漏掉的小事。 `ToolTrace` 已经在服务端逐次记录每个工具调用,信息是存在的,只是要等整轮结束后才会随消息一起返回,中途没有通道推给前端。 所以修法不是简单增加一个 spinner 文案,而是需要把该轮的工具调用逐条流出来,例如: - SSE - 轮询运行状态 前端只有获得这条实时通道后,才谈得上展示: > “检索活动 2/3” 取消和部分结果保留也需要跟着这条通道一起实现: - 失败时保留已经成功的读取结果 - 同时说明哪些步骤没有完成 - 复用现有的覆盖范围组件 **这条排在第一位。** ## 3.2 README 与现有 Demo 漂移 —— 属实 README 目前完全没有访客 Demo 的入口说明,全文只有一处与 `demos/` 目录名的巧合匹配。 既然登录页已经能直接进入“学生会视角”,一分钟体验路径就应该以它为准。私密评审账号则退为访客权限覆盖不到的验证项,例如: - 管理员侧的 `metrics` 端点 同时会写清访客沙箱的边界: - 每个访客拥有独立的种子数据 - 登出、会话被替换或 TTL 到期后,沙箱即删除 - Agent 花费按以下四层进行限额: - 账号 - 浏览器指纹 - IP - 全局 - 限额账本不会因沙箱删除而清零 ## 3.3 运行证据与指标快照 —— 部分已有后端,快照未交付 指标本身在上个提交中已经是真实端点,而不是仅有定义: ```http GET /api/v1/admin/agent/metrics ``` 该端点返回: - `success_rate` - `failure_rate` - `denial_rate` - `acceptance_rate` - `stale_rate` - `p50_ms` - `p95_ms` 这些指标都来自 `agent_runs` 中每轮实际运行数据的聚合。 目前缺少的是你要求的下一步:发布脱敏快照。 `docs/METRICS.md`该文件目前不存在。 ### 关于时延指标的说明 现在记录的是每轮的总时延,还没有拆分以下阶段: - 模型等待 - 工具查询 - 前端渲染 你提出的时延拆分需要额外埋点,并会与 **3.1 的流式通道**一起完成。两者需要使用同一份分阶段计时数据。
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cheonyi/activities#3
No description provided.