1. 项目背景与核心价值
去年在开发一个AI助手项目时,我遇到了一个典型问题:团队已经开发了200多个功能Skill(技能模块),但当产品经理提出"我们需要一个能自动生成周报的功能"时,竟然没人能确定这个需求是否已有现成Skill可以实现。现有的技能管理系统只有简单的分类和关键词搜索,而实际开发中,功能描述往往是用自然语言表达的模糊需求。这促使我思考:能不能做一个能用日常语言查找技能的搜索引擎?
这个"技能搜索引擎"的核心价值在于:
- 消除术语鸿沟:普通用户不需要知道"自动文摘"、"模板填充"等技术术语,用"帮我写周报"就能找到对应Skill
- 挖掘隐性关联:通过语义理解,将"旅游攻略"这样的需求同时关联到"地图导航"、"餐馆推荐"等跨类别Skill
- 动态技能组合:识别复合需求(如"能自动写邮件并安排会议的助手"),推荐多个Skill的组合方案
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构
系统采用经典的"三明治"架构:
code复制[前端交互层] ←→ [语义理解层] ←→ [技能图谱层]
前端接受自然语言查询后,经过以下处理流程:
- 意图识别(BERT+规则引擎)
- 实体提取(领域定制NER模型)
- 技能匹配(图神经网络+向量检索)
- 结果排序(Learning to Rank)
2.2 核心技术创新点
动态技能嵌入技术
每个Skill除了有开发者提交的元数据(名称、描述、参数等),还会自动生成:
- 场景化描述向量(通过GPT-3.5生成100个使用场景样例)
- 执行效果向量(实际调用输入输出记录的语义特征)
- 用户反馈向量(历史使用评分的关键词提取)
这三个128维向量组成技能指纹,比传统关键词搜索准确率提升63%(实测数据)
上下文感知的查询扩展
当用户搜索"帮我整理会议记录"时,系统会自动扩展查询:
- 同义转换:"会议摘要生成"、"语音转文字"...
- 场景联想:"时间轴生成"、"待办事项提取"...
- 技能组合建议:"语音识别+关键点提取"套餐
3. 实现细节与踩坑记录
3.1 技能元数据标准化
初期最大的坑是技能描述的不规范问题。我们收集到开发者提交的描述包括:
- "高效文本处理"(过于宽泛)
- "使用BERT
