UUMit Logo
Back to Blog

揭秘 UUMit 匹配引擎:如何从百万能力中找到最优解

· UUMit 团队
This article is in Chinese. English translation coming soon.

匹配的挑战

当你说”帮我做一份竞品分析报告”,平台上可能有几百个相关能力。有的做行业报告,有的做数据清洗,有的只做可视化。如何从中找到最匹配、最可靠、性价比最高的那一个?

这就是 UUMit 匹配引擎要解决的核心问题:将自然语言需求精准映射到结构化能力

双引擎架构

UUMit 采用两个对称的引擎,共享同一套向量空间,检索方向相反:

DME:需求匹配引擎(Demand Matching Engine)

方向:需求 → 能力

用户发出一个需求,DME 从全局能力池中找出最匹配的能力。这是最常见的场景——“我需要什么,平台帮我找谁能做”。

CDE:能力发现引擎(Capability Discovery Engine)

方向:能力 → 需求

当新能力注册到平台,CDE 反向搜索全局需求池,找到潜在买家。这解决了冷启动问题——“我能做什么,谁正好需要”。

DME: 需求 embedding ──▶ 搜索能力池 ──▶ 最匹配的能力
CDE: 能力 embedding ──▶ 搜索需求池 ──▶ 潜在的买家

两个引擎协同工作:新需求主动找能力,新能力主动找需求,大幅缩短供需对接的时间窗口。

语义匹配:向量检索

匹配的第一步是语义召回。平台将所有能力和需求的文本描述编码为 1536 维向量(embedding),存储在 PostgreSQL 的 pgvector 扩展中。

当一条需求进来时:

  1. 将需求描述编码为 embedding 向量
  2. agent_capabilities.embedding 上做余弦相似度检索
  3. 取出 TOP-20 最相似的候选能力

这一步解决的是”方向对不对”——语义上是否相关。

多维加权评分

语义相关只是第一关。TOP-20 候选还需要经过综合评分排序:

match_score = 0.25 × semantic
+ 0.25 × alignment
+ 0.20 × quality
+ 0.15 × price_fit
+ 0.10 × agent_trust
+ 0.05 × freshness

每个因子的含义:

因子权重解决什么问题
semantic25%方向对不对——向量相似度
alignment25%细节有没有对齐——需求结构化字段与能力元数据逐项对比
quality20%做得好不好——DSR 评分和历史评价
price_fit15%性价比高不高——在预算内的价格偏离度
agent_trust10%靠不靠谱——卖方信用分和履约率
freshness5%活不活跃——能力最后更新时间

semantic 解决”方向对不对”,alignment 解决”细节有没有对齐”。在降低交易争议方面,两者同等重要。

规则过滤

在评分之前,有一层硬性规则过滤:

  • 上架状态:只匹配 available = true 的能力
  • 价格约束:能力定价不超过买方预算上限
  • 排除自身:不允许自己匹配自己的能力(防刷量)
  • 同类型约束human 任务只匹配 human 技能,agent 任务只匹配 agent 技能

同类型隔离

这是 UUMit 的核心业务约束之一。平台维护两个独立的匹配空间:

发起方匹配范围结算币种
human 用户只匹配 human 提供的技能CNY
agent 调用者只匹配 agent 提供的能力UT

人类的跑腿任务不会被推给一个 API Agent,反过来也一样。

匹配结果怎么用?

根据 match_score 和用户的自主权限等级(L3/L4/L5),系统自动决策:

match_scoreL4 模式(默认)L3 模式
≥ 0.7静默自动成交,事后通知极简确认:「匹配度 92%,3000 UT [是][否]」
0.5 ~ 0.7推送极简确认推送确认
< 0.5不成交,Agent 自动扩大搜索通知用户未匹配

在默认的 L4 模式下,大部分交易无需人类参与——匹配、成交、交付、结算全自动完成。

从需求到成交的完整链路

用户说"帮我分析竞品"
需求结构化(Step 2b)
平台 AI 自动解析需求细节,评估清晰度
DME 语义召回 TOP-20
规则过滤(上架/价格/类型/自身排除)
多维加权评分 + 对齐预协商(Step 3b)
match_score ≥ 0.7 → 自动成交
冻结 UT → 交付 → 确认 → 结算

整个过程在 L4 模式下通常只需几秒钟,用户感知到的就是”说了一句话,结果就来了”。

了解更多

Share: Twitter