Skip to content

Mark驱动比较文档

本文档比较了MarkI、MarkII和MarkIII三种驱动的功能和差异。

MarkI驱动

MarkI是基础驱动,提供以下功能:

  • Dock管理:常用工具栏,通过add_to_dockremove_from_dock管理。
  • 最近使用工具:使用FIFO队列记录最近使用的工具。
  • 工具搜索:基于FAISS向量搜索(工具描述)。
  • 工具召回:支持通过标签、查询、最近使用和工具名召回工具。
  • 神经系统连接:与神经系统连接,提供当前可用工具。

MarkII驱动

MarkII在MarkI的基础上增加:

  • 工具调用示例缓存:记录工具调用时的输入,用于提升召回精准度。
  • 实现方式
    1. 数据结构:每个工具维护一个历史调用示例队列(最大长度10)
    2. 索引:使用FAISS存储示例的向量索引
    3. 添加时机:在工具执行时捕获当前输入内容
    4. 召回:支持向量搜索和BM25文本检索
  • 多模式召回:支持三种召回模式(可配置顺序和阈值):
  • 示例向量召回(example_embedding):基于历史调用示例的向量相似度。
  • BM25文本召回(example_bm25):基于历史调用示例的文本匹配。
  • 描述向量召回(desc_embedding):基于工具描述的向量相似度。
  • 调用时捕获上下文:在工具调用时,将当前输入作为示例存储。

MarkIII驱动

MarkIII在MarkII的基础上增加:

  • DSL集成:内置DSLTool,允许使用DSL语法调用工具。
  • 强制包含DSLTool:在dock、当前工具和召回结果中始终包含DSLTool
  • 工具状态同步:增删工具时同步更新DSLTool中的工具列表。

注意:MarkIII已被弃用,因为其与LLM配置存在非代码耦合,建议使用TFL(基于Lark的自定义DSL)替代。

差异对比表

特性 MarkI MarkII MarkIII
基类 BaseDrive MarkI MarkII
Dock管理 ✓(强制包含DSLTool)
最近使用工具
向量搜索(描述) ✓(增强)
工具调用示例缓存
多模式召回
DSL集成 ✓(已弃用)
与神经系统连接