Z1Space · Interface

Z1Space

Agent 负责理解与发现,关系由真人确认。界面把「为什么推荐这个人」拆成四个可核对的指标, 把 Agent 之间的每句发言挂上证据。

A2A 协议网关 41 用例 / 8 文件 服务端 2,131 行 会谈 3 轮 / 6 轮次
◆

Main screen

推荐卡与会谈流:理由在前,动作在后

左卡解释「为什么值得认识」,右栏是两个 Agent 的会谈过程。 用户可以只看结论,也可以逐轮核对证据——但不能跳过证据直接建立关系。

设计稿说明:以下界面依据项目文档与接口契约重建,用于表达交互结构与信息层级; 界面中的轮次、指标与阈值均取自项目可验证结果。

z1space · discover 推荐 · 会谈 · 确认

推荐候选

知

候选人 A

主题:多智能体协作 · 证据账本
主题相关度0.86
信息增量0.72
可展开分歧0.41
证据强度0.78
建议认识 · reasonCode: HIGH_OVERLAP
证据 ev-014证据 ev-027来源:其公开主页
硬门槛:主题相关度 < 0.25 或证据强度 < 0.25 直接判「不建议」; 结论与理由由指标反向拼装,不是让模型现写。

Agent 会谈(3 轮 / 6 轮次)

第 1 轮 · 陈述 · A 侧 双方在「证据账本的最小实现」上有互补经验。 ↳ ev-014
第 1 轮 · 陈述 · B 侧 A 侧的压测结论与我方容量瓶颈直接相关。 ↳ ev-027
第 2 轮 · 回应 就「幂等状态机是否必需」存在分歧,双方各引用一侧证据。 ↳ ev-014 · ev-031
第 3 轮 · 总结 · 观察员 可继续。已引用双方各自引用过的证据,不构成证据不足。 ↳ ev-014 · ev-027
越界引用对方侧证据 → 整场判失败;观察员判「可继续」时必须同时引用双方各自引用过的证据。
41测试用例 · 8 个文件
16 / 13触发路由 / A2A 会话用例
2,131服务端 TS 行数
17客户端调用接口数
78,213 BPRD v1.0
◆

Highlights

四个写进状态机的约束

这些约束决定了界面上哪些按钮根本不该存在。

Agent 不直接建立关系

关系一旦建立就有社交成本,撤销成本远高于建立成本。界面上 Agent 只产出候选与理由,「建立关系」的入口永远在真人手里。

代价:转化路径长一步

三种关系严格分离

关注 / 邀请 / 会话是不同的授权层级。pending 状态下界面不提供发普通消息的入口,而不是发出去再拦截。

代价:状态机要为每个转移写测试

零结果不用示例数据填充

匹配不到就是匹配不到,界面显示空状态并说明原因(全私有 / 证据不足 / 内容不进 A2A),不塞假数据充数。

代价:冷启动页面真的会空

画像缺省为私有

用户填资料时的心理预期是「写给系统看」。安全性来自「忘记填」的默认值,界面把公开 / 私有的开关默认停在私有。

代价:可被检索的信息变少

◆

Detail

两个决定界面结构的判断

为什么是四个指标,不是相似度

只用相似度会被问「这不就是推荐算法吗」。把「值得认识」拆成四个 0–1 指标,每个都能单独解释和验收。

  • 主题相关度、信息增量、可展开分歧、证据强度
  • 理由由指标反向拼装并附 reasonCode,不是让模型现写
  • 界面因此能展示「为什么」,而不只是一个分数
匹配裁决golden cases

6 组 Golden Case

  • 高相关高增量 建议
  • 高相关无增量 不建议
  • 可展开分歧 建议
  • 证据不足 不建议
  • 全私有 不展示
  • 内容不进 A2A 不展示
每组用例断言结论与 reasonCode,界面状态与用例一一对应。

为什么决定与副作用要分离

同一道门槛如果散落在多个入口,迟早有一个会漏。纯函数事件路由让「能不能做」只写一次。

  • 5 类事件输入 → 5 个目的地 / 6 个拒绝码的判别联合输出
  • 未确认画像、身份错配、Skill 禁用统一映射为 409 / 400
  • 界面不需要为每个入口单独写禁用逻辑
触发路由pure router

拒绝码 → 界面状态

  • 画像未确认 409
  • 身份错配 400
  • Skill 禁用 400
  • 容量超限 429(站内案例口径)
  • 关系已存在 幂等返回
刷新或重登不重复创建关系——幂等在服务端保证,客户端不可信。
◆

Boundary

界面上明确不做的事

不自动生成关系

没有「一键帮我连上」的按钮。不可撤的动作不交给模型。

少了很多爽点

不放过越界引用

Agent 引用了不属于自己那一侧的证据,整场判失败,界面直接显示失败原因。

调试时看不到将就的结果

不用示例数据撑场面

冷启动阶段页面上真的会出现空结果,界面如实说明原因。

不如填假数据好看