乐于分享
好东西不私藏

知面 — AI眼镜社交记忆助手 | GPASS智能体技术方案

知面 — AI眼镜社交记忆助手 | GPASS智能体技术方案

GPASS AI 眼镜智能体开发者大赛参赛作品 赛道:AI眼镜助力生产办公提效 + 无显示AI眼镜赛道

一、产品概述

1.1 一句话介绍

知面是一款运行在AI眼镜上的社交记忆智能体,通过语音+视觉双模态协作,帮助商务人士记住见过的每一个人。

Slogan:戴上眼镜,再也不忘任何人

1.2 核心场景

场景
操作
效果
商务交流中/后
语音说"帮我记一下"
AI自动从对话中提取人物信息并存档
初次见面
语音说"拍照存档"
将人脸与档案关联
再次相遇
语音说"这是谁"
AI耳返:“这是张伟,XX科技副总,上次聊了合作”
见面前准备
语音说"帮我准备见张伟"
AI给出破冰话题和跟进建议
信息变更
语音说"更新张伟的信息"
AI将新信息合并到已有档案

1.3 目标用户

销售/BD、创业者/高管、政务/公关等需要频繁社交的商务人群。


二、技术架构

2.1 整体架构图

┌──────────────────────────────────────────────────────────────┐│                    AI 眼镜端(GPASS)                          ││                                                              ││  麦克风 ──→ 持续监听 ──→ 语音转文字 ──→ 当前对话信息           ││  摄像头 ──→ 拍照采集 ──→ 图片URL                              ││  扬声器 ←── 语音播报                                          │└──────────────────────┬───────────────────────────────────────┘                       │ 每次用户说话触发一轮工作流                       ▼┌──────────────────────────────────────────────────────────────┐│                 百宝箱智能体工作流                              ││                                                              ││  ┌────────────────┐   ┌────────────┐                        ││  │ 大模型-意图识别  │ → │ 分支节点    │                        ││  └────────────────┘   └─────┬──────┘                        ││                             │                                ││  ┌──────────────────────────┼────────────────────────┐      ││  │  ├→ RECORD:  [大模型提取] → [saveToKnowledge]      │      ││  │  ├→ REGISTER:[拍照] → [registerFace]              │      ││  │  ├→ RECOGNIZE:[拍照] → [searchFace] → [知识库] → 播报│   ││  │  ├→ RECALL:  [提取人名] → [知识库] → [大模型] → 播报 │    ││  │  ├→ UPDATE:  [提取人名] → [知识库] → [合并] → 写入   │    ││  │  └→ OTHER:   "我在呢。"                             │     ││  └───────────────────────────────────────────────────┘      ││                                                              ││  ┌────────────────────────────────────────────────────────┐  ││  │  自定义Python插件                                        │  ││  │  • searchFace:阿里云人脸搜索1:N(流式上传)             │  ││  │  • registerFace:阿里云人脸注册(流式上传)              │  ││  │  • saveToKnowledge:百宝箱知识库结构化写入               │  ││  └────────────────────────────────────────────────────────┘  ││                                                              ││  ┌────────────────────────┐  ┌────────────────────────────┐ ││  │  百宝箱知识库(动态表格)│  │  阿里云人脸数据库          │ ││  │  结构化CSV:8字段       │  │  人脸特征向量 + entityId   │ ││  └────────────────────────┘  └────────────────────────────┘ │└──────────────────────────────────────────────────────────────┘

2.2 交互模型

与传统"按键触发"的设计不同,知面采用持续监听+语音指令模式

  • 眼镜持续监听用户语音,每次说话自动转文字
  • 转文字结果作为"当前对话信息"触发一轮工作流
  • 工作流保留 30轮 历史对话,支持上下文关联
  • 无需镜腿手势操作,全语音交互

2.3 数据关联设计

人脸数据库与知识库通过 entityId 关联:

阿里云人脸库                         百宝箱知识库(结构化动态表格)┌──────────────────────┐           ┌──────────────────────────────┐│ entityId: zhangwei_  │           │ entityId: zhangwei_20260708  ││   20260708           │ ────────→ │ name: 张伟                    ││ extra_data: 张伟     │           │ company: XX科技               ││ 人脸向量: [...]      │           │ position: 副总裁              │└──────────────────────┘           │ summary: 聊了AI合作           │                                   │ personal: 爱喝龙井茶          │                                   │ followUp: 下周确认合同         │                                   │ meetDate: 2026-07-08 10:00:00 │                                   └──────────────────────────────┘

entityId 生成规则:姓名全拼小写 + 下划线 + 首次见面日期(YYYYMMDD),如 zhangwei_20260708


三、百宝箱工作流机制

3.1 平台概述

「百宝箱」是蚂蚁集团提供的智能体低代码开发平台,支持通过拖拽节点方式搭建 AI 工作流,无需关心眼镜硬件底层即可开发 GPASS 智能眼镜应用。

3.2 工作流运行机制

百宝箱工作流本质是一个有向无环图(DAG),由各种功能节点串联而成。每轮用户输入触发一次完整执行:

用户语音输入 → 开始节点 → 节点1 → 节点2 → ... → 直接回复 → 结束                  ↑            注入上下文:            • 当前对话信息(本次语音转文字)            • 历史对话信息(前N轮对话记录)            • 触发时间等系统变量

关键特性

  • 单轮执行
    :每次用户说话触发一轮工作流完整执行,执行完即结束
  • 历史上下文
    :开始节点可配置保留N轮历史对话(本项目设为30轮),后续节点可引用
  • 节点引用
    :每个节点可引用前置节点的输出作为输入,通过 {{节点名.输出变量}} 语法
  • 分支路由
    :分支节点支持条件判断,将流程导向不同链路
  • 顺序执行
    :节点严格按连线顺序执行,前一个完成后才执行下一个

3.3 可用节点类型

节点类型
功能
本项目使用场景
开始
工作流入口,注入用户输入和上下文
接收语音转文字、历史对话
大模型
调用LLM处理文本
意图识别、信息提取、内容整理
分支
条件判断路由
意图路由、空结果判断
循环
按序循环一定次数处理批量任务
可用于批量处理多条记录
参数提取
从大模型JSON输出中提取字段
提取name/entityId等结构化字段
知识库
语义/全文检索
检索人物档案
插件(Python)
执行自定义代码
人脸搜索/注册、知识库写入
插件(眼镜设备)
调用眼镜硬件能力
拍照采集
直接回复
向用户输出文本(语音播报)
各环节的确认和结果播报
结束
工作流终止
每条链路末尾

3.4 眼镜端插件

百宝箱为 GPASS 智能眼镜提供了原生设备插件:

插件
功能
输出
眼镜设备拍照采集
控制摄像头拍照
图片数据地址(URL)
眼镜设备语音采集
主动录音采集
语音识别后的文本
眼镜设备镜腿交互响应
等待用户手势
交互类型

本项目仅使用拍照采集插件,语音输入通过持续监听自动完成。

3.5 自定义Python插件机制

百宝箱支持上传自定义 Python 代码作为插件节点:

  • 入口函数
    :固定为 def main(params: dict, context: dict) -> dict
  • 参数传入
    :通过 params 字典获取配置的输入参数
  • 返回值
    :返回字典,作为节点输出供后续节点引用
  • 依赖管理
    :支持声明第三方 pip 包(如 alibabacloud_facebody20191230
  • 超时控制
    :可配置执行超时时间(本项目设为 15-20 秒)
  • 隐藏参数
    :支持设置大模型不可见的固定值参数(如 API Key),保障安全

3.6 第三方服务集成

阿里云视觉智能开放平台 — 人脸人体

本项目使用阿里云视觉智能开放平台的人脸人体类能力,实现人脸注册与搜索:

  • 服务地址
    facebody.cn-shanghai.aliyuncs.com(上海区域)
  • SDK
    alibabacloud_facebody20191230(Python)
  • 认证方式
    :AccessKey ID + AccessKey Secret

使用的 API 能力:

API
功能
对应插件
CreateFaceDb
创建人脸数据库
初始化时调用一次
AddFaceEntity
创建人脸样本(Entity)
registerFace
AddFace(Advance)
添加人脸数据(流式上传)
registerFace
SearchFace(Advance)
人脸搜索1:N(流式上传)
searchFace

Advance 方法:常规方法要求图片为上海地域 OSS 链接,Advance 方法支持通过 image_url_object 参数传入 BytesIO 流,兼容任意来源的图片 URL。本项目统一使用 Advance 方法,确保兼容 GPASS 眼镜拍照返回的非 OSS 图片地址。

人脸数据库设计

  • 数据库名称:socialmemory
  • Entity 对应一个人物,entityId 为唯一标识
  • extra_data 字段存储人物姓名,搜索返回时直接携带
  • 支持同一 Entity 添加多张人脸照片,提升识别准确率

百宝箱知识库 API

本项目使用百宝箱平台提供的知识库 REST API:

API
功能
地址
updateDocument
上传/更新结构化数据
https://open.tbox.alipay.com/openapi/v1/knowledge/updateDocument
retrieve
知识库语义召回
https://api.tbox.cn/api/datasets/retrieve
  • 认证方式:Header Authorization 携带 API-Key
  • 数据格式:multipart/form-data(上传 CSV 文件 + tableSchema JSON)
  • 更新模式:UPSERT(按主键 entityId 去重)

四、工作流设计

3.1 入口:意图识别 + 分支路由

[开始(30轮历史)] → [大模型-意图识别] → [分支_2]                                            ├── RECORD    → 链路A(记录新人)                                            ├── REGISTER  → 链路B(拍照建档)                                            ├── RECOGNIZE → 链路C(拍照识人)                                            ├── RECALL    → 链路D(语音回忆)                                            ├── UPDATE    → 链路E(更新档案)                                            └── 否则      → "我在呢。"

意图识别策略

  • 模型:DeepSeek-V4-flash
  • 输出单个关键词,分支节点按"包含"条件路由
  • 关键设计:RECALL 和 UPDATE 必须包含具体人名才触发,避免普通对话误触发
  • 排除规则:用户与他人的寒暄/陈述不视为指令

3.2 链路A:记录新人(RECORD)

[直接回复:"好的,马上处理。"] → [大模型-提取信息] → [参数提取] → [saveToKnowledge] → [回复:"已建立XX的档案"]

核心逻辑

  • 大模型从历史对话+当前对话中提取对方的信息(区分用户自己 vs 对方)
  • 严格输出 JSON:name、entityId、company、position、summary、personal、followUp、meetDate
  • entityId 由大模型按规则生成(拼音_日期)
  • 通过 saveToKnowledge 以 UPSERT 模式写入结构化知识库

信息提取规则

  1. 用户说"我是XX" → 这是用户自己,不提取
  2. 用户称呼"X总"、“X哥” → 这是对方,提取
  3. 区分"用户要做的事"和"对方要做的事"
  4. 不确定的字段填"未知"

3.3 链路B:拍照建档(REGISTER)

[拍照采集] → [回复:"正在匹配档案"] → [大模型-从历史提取人名] → [参数提取] → [分支]    ├── name存在 → [registerFace] → [回复:"已保存XX的照片"]    └── name为空 → [回复:"请先告知姓名再拍照建档"]

核心逻辑

  • 拍照后,大模型从历史对话中找到最近记录的人物名字
  • 按相同规则生成 entityId,确保与链路A存入的 entityId 一致
  • 调用阿里云人脸注册:先创建 Entity,再通过流式上传添加人脸数据
  • extra_data 存储姓名,后续搜索时直接返回

3.4 链路C:拍照识人(RECOGNIZE)

[拍照采集] → [回复:"正在匹配档案"] → [searchFace] → [分支]    ├── matched=="true" → [知识库:query=entityId] → [大模型-整理播报] → [回复]    └── matched!="true" → [回复:"没有匹配到已知的人物。"]

核心逻辑

  • 拍照后通过流式上传调用阿里云人脸搜索 1:N
  • 置信度阈值 ≥ 60 视为匹配成功
  • 匹配成功后,用 entityId 精确检索知识库(而非模糊语义搜索)
  • 大模型将结构化档案整理为 ≤3句话的口语化播报

3.5 链路D:语音回忆(RECALL)

[大模型-提取人名关键词] → [知识库:query=人名] → [分支]    ├── 有结果 → [大模型-整理回复] → [回复]    └── 空结果 → [回复:"没有找到相关记录,需要帮您记录吗?"]

核心逻辑

  • 先用大模型从用户输入中提取人名关键词(可含公司名),再用关键词检索知识库
  • 避免用整句话直接检索导致的误召回问题
  • 空结果兜底,避免大模型在无数据时编造信息
  • 根据问题类型给出不同回复:身份介绍 / 破冰建议

3.6 链路E:更新档案(UPDATE)

[回复:"正在更新档案。"] → [大模型-提取人名] → [知识库:query=人名] → [分支]    ├── 有结果 → [大模型-合并档案] → [参数提取] → [saveToKnowledge(UPSERT)] → [回复:"档案已更新"]    └── 空结果 → [回复:"没有找到该人物的档案,请先用「记一下」创建档案。"]

核心逻辑

  • 同样先提取人名再检索,确保找到正确的人
  • 大模型将新信息与旧档案合并: 
    • 未提及的字段保持不变
    • summary/personal/followUp 追加新内容(分号分隔)
    • entityId 和 name 不变
    • meetDate 更新为当前时间
  • 通过 UPSERT 模式覆盖写入

五、自定义插件实现

4.1 searchFace(人脸搜索 — 流式上传版)

功能:根据图片在人脸数据库中搜索匹配的人物

技术要点

  • 先通过 urllib 下载图片为二进制数据
  • 使用 SearchFaceAdvanceRequest 通过 BytesIO 流式上传
  • 兼容非OSS域名的图片URL(GPASS拍照返回的URL)
  • 返回:matched、entityId、confidence、extraData(姓名)

核心代码

import iofrom urllib.request import urlopen, Requestfrom alibabacloud_facebody20191230.client import Clientfrom alibabacloud_facebody20191230.models import SearchFaceAdvanceRequestfrom alibabacloud_tea_openapi.models import Configfrom alibabacloud_tea_util.models import RuntimeOptionsdef main(params: dict, context: dict) -> dict:    url = params.get('url''')    # 下载图片为二进制    req = Request(url, headers={'User-Agent''Mozilla/5.0'})    img_data = urlopen(req, timeout=10).read()    # 初始化客户端    config = Config(        access_key_id=params.get('accessKeyId'''),        access_key_secret=params.get('accessKeySecret'''),        endpoint='facebody.cn-shanghai.aliyuncs.com'    )    client = Client(config)    # 流式上传搜索    request = SearchFaceAdvanceRequest(        db_name='socialmemory',        image_url_object=io.BytesIO(img_data),        limit=1    )    response = client.search_face_advance(request, RuntimeOptions())    # 解析结果,置信度>=60视为匹配    # ...

4.2 registerFace(注册人脸 — 流式上传版)

功能:将新认识的人的照片注册到人脸数据库

技术要点

  • 两步操作:AddFaceEntity(创建人物条目)+ AddFaceAdvance(流式上传人脸)
  • Entity已存在时跳过创建(幂等处理)
  • extra_data 存储姓名,搜索时直接返回
  • 使用 AddFaceAdvanceRequest 的 image_url_object 参数实现流式上传

4.3 saveToKnowledge(结构化知识库写入)

功能:将人物档案以结构化CSV格式写入百宝箱知识库

技术要点

  • 使用百宝箱 updateDocument 接口,type=STRUCTURED
  • 数据格式:CSV(表头 + 数据行)
  • 更新模式:UPSERT(按 entityId 主键,存在则更新,不存在则新增)
  • 表结构定义(tableSchema)包含8个字段的完整元数据

知识库表结构

字段
类型
说明
主键
索引
entityId
STRING
人物唯一ID
name
STRING
姓名
company
STRING
公司
position
STRING
职位
summary
TEXT
交流摘要
personal
TEXT
个人偏好
followUp
TEXT
待跟进
meetDate
DATETIME
见面时间

六、知识库设计

5.1 存储方式

采用结构化动态表格而非非结构化文档,优势:

  • 字段明确,支持精确检索
  • UPSERT 模式天然支持档案更新
  • entityId 作为主键保证唯一性

5.2 检索策略

场景
检索方式
query 来源
识人(链路C)
entityId 精确匹配
searchFace 返回的 entityId
回忆(链路D)
人名语义检索
大模型从用户输入提取的人名关键词
更新(链路E)
人名语义检索
大模型从用户输入提取的人名关键词

5.3 检索配置

  • 匹配策略:智能检索
  • 最大结果数:1
  • 最小匹配度:0.500
  • 语义精排:关闭

七、技术亮点

6.1 持续监听 + 意图路由

不同于传统的"按键触发"模式,知面采用持续监听方案。眼镜始终听用户说话,AI自动判断何时需要介入。用户无需刻意切换模式,对话中随时说"记一下"即可触发记录。

6.2 流式上传兼容性

阿里云人脸API要求图片为OSS地址或公网URL。GPASS拍照返回的URL可能不符合阿里云要求。通过先下载图片再以 BytesIO 流式上传,完美兼容任何来源的图片URL。

6.3 结构化知识库 + UPSERT

使用结构化CSV格式存储人物档案,配合 UPSERT 模式:

  • 首次记录:插入新行
  • 更新信息:按 entityId 主键匹配,覆盖对应字段
  • 天然去重,不会产生重复档案

6.4 人名精确检索

RECALL 和 UPDATE 链路先用大模型提取人名关键词,再用人名检索知识库。避免用整句话(如"刘翔跳槽到阿里巴巴更新一下")直接语义检索导致的误召回(可能匹配到含"阿里巴巴"的其他人档案)。

6.5 意图防误触

意图识别 prompt 严格约束:

  • RECALL/UPDATE 必须同时满足"包含人名"+“包含指令词”
  • 普通对话(寒暄、与他人交流)一律归为 OTHER
  • 确保用户与客户聊天时不会误触发 AI 操作

6.6 语音+视觉双模态闭环

录音记人(语音)+ 拍照识人(视觉)两种模态协作:

  • 记录 → 建档:语音记录人物信息后,拍照关联人脸
  • 识人 → 回忆:拍照识别身份后,语音补充询问更多信息
  • 完整闭环覆盖"认识 → 记录 → 回忆 → 更新"全生命周期

八、使用说明

快速上手

  1. 佩戴眼镜,开始与人交流
  2. 交流中/后说 “帮我记一下” → AI 从对话中自动提取信息并存档
  3. 说 “拍照存档” → 眼镜拍照,将人脸与刚才记录的档案关联
  4. 再次遇到此人时说 “这是谁” → 眼镜拍照识别 → AI耳返身份信息
  5. 见面前说 “帮我准备见张伟” → AI给出破冰话题和跟进建议
  6. 信息变化时说 “更新张伟的信息,他跳槽到XX公司了” → 档案自动更新

典型使用流程

参加行业交流会 → 与人交谈 → "帮我记一下" → AI存档                                ↓                        "拍照存档" → 人脸关联                                ↓          下次偶遇 → "这是谁" → AI耳返提醒                                ↓          会前准备 → "帮我准备见张伟" → AI给建议

九、未来演进

阶段
功能
当前(比赛版)
5大链路完整闭环:记录/建档/识人/回忆/更新
中期(产品化)
关键词唤醒建档、知识图谱后端、日程关联自动提醒
长期(完整形态)
全程对话自动记录、团队共享人脉库、AI社交分析月报