AnyShare 智能体核心机制详解
AnyShare 智能体核心机制详解
引言
在人工智能迈向通用人工智能(AGI)的演进进程中,智能体作为连接大语言模型与企业实际业务的关键桥梁,正重新定义人机交互的方式。AnyShare 知识助手通过整合大语言模型(LLM)、自然语言处理(NLP)、机器学习与深度学习等前沿算法,模拟人类的认知、对话与决策能力,为企业用户提供信息查询、任务执行与决策辅助等智能化服务。
本文基于《AnyShare Family 7 知识助手技术原理解读及最佳实践》第四章,系统解析 AnyShare 智能体的核心机制,涵盖智能体创建、文档召回、图谱召回与增强、Agent 核心概念、临时区、效果调试、运营反馈及底层技术栈等多个维度。
一、智能体架构概述
1.1 核心工作流程
AnyShare 智能体的核心工作流程由七个关键步骤构成:
- 接收查询请求 —— 接收用户的 Query 与技能指令
- 意图识别 —— 理解用户的真实需求
- 技能/数据召回 —— 调用相关技能或从知识库召回信息
- 主控总结 —— 整合各处理节点的结果
- 返回结果 —— 生成最终回答
- 结果高亮与引用处理 —— 标注信息来源
- 流式展现 —— 实时展示回答内容
从 AnyShare 7.0.6.4 版本起,每个智能体均采用技能编排模板,由主控 Agent(Main Agent)负责协调所有其他技能 Agent,整合最终结果并返回。技能 Agent 包括问答模板、空白模板等多种类型,被主控 Agent 按需调用以完成特定任务。
1.2 核心概念解析
| 概念 | 说明 |
|---|---|
| 知识助手 | AnyShare 为实现企业级智能知识管理而开发的 AI 助手,采用自然语言问答式交互 |
| 智能体(Data Agent) | 面向特定业务场景创建的智能体,通过预设人设及回复逻辑、配置编排,实现智能化能力支撑 |
| LLM(大型语言模型) | 基于海量文本数据训练的人工智能模型,能够理解、生成和处理人类语言 |
| Agent | 能够感知环境、自主决策并执行动作的智能实体,包括主控 Agent 和技能 Agent |
| Tool | 被设计用于执行特定任务的功能模块,本身不具备自主决策能力 |
二、智能体创建机制
2.1 智能创建与标准创建
AnyShare 支持用户自主创建智能体(Data Agent),创建过程支持全流程智能化,创建完成后可通过可视化调试页面进行效果测试,再保存或发布。系统提供两种创建模式:
| 模式 | 说明 |
|---|---|
| 智能创建 | 使用自然语言一句话描述所需智能体,系统自动生成名称、简介、人设及回复逻辑、开场白、预设问题等全部参数 |
| 标准创建 | 从零开始或基于已有模板创建智能体,用户逐一配置各项参数 |
智能创建模式由大模型根据用户描述自动生成完整的智能体配置,输出结构如下:
1 | |
其中 system_prompt(人设及回复逻辑)要求使用 Markdown 语法,包含:人设背景(身份/职业/性格)、回复逻辑(思考方式/决策规则)、语气风格(语言特征/情感倾向)、技能描述(核心能力范围)、回答示例(2 个典型对话案例)以及限制说明(不回答的内容类型)。
2.2 核心创建参数
| 参数 | 说明 |
|---|---|
| 名称 | 最大 50 个字符,不允许包含空格,特殊字符仅限 - 或 _ |
| 简介 | 一句话描述智能体用途,最大 255 个字符 |
| 人设及回复逻辑 | 智能体扮演的角色、职责、回复风格,以及技能使用规则 |
| 模型及参数 | 支持 DeepSeek-R1、DeepSeek-V3、Qwen、GPT-4o、爱数自研 Tome 等主流大语言模型 |
| 技能 | 支持选择 Agent 或工具(Tool)作为智能体技能 |
| 数据源 | 知识助手用于回答的知识来源,可选择文档中心或知识中心的知识数据 |
| 临时区 | 用户在使用智能体过程中可添加的临时数据 |
| 对话开场白 | 固定开场白或个性化开场白 |
| 预设问题 | 展示在智能体问答交互窗口上方的引导问题 |
2.3 模型参数配置
| 参数 | 说明 | 默认值 | 范围 |
|---|---|---|---|
| 随机性(temperature) | 控制生成文本的随机性和创造性 | 0.0 | 0.0–2.0 |
| 采样样本(top_p) | 动态选择概率累积超过 p 的最小词集 | 1.0 | 0.0–1.0 |
| 单词回复限制(max_tokens) | 输出 Tokens 长度上限 | 3000 | 10–32000 |
| 前 K 采样(top_k) | 从概率最高的前 k 个词中随机选择 | 1 | 1–1000 |
| 话题新鲜度(presence_penalty) | 控制引入新话题的倾向 | 0 | -2–2 |
| 频率惩罚度(frequency_penalty) | 降低高频词汇的重复出现 | 0 | -1–2 |
2.4 权限管控
- 创建权限:仅管理员可以创建 API 调用类助手
- 发布权限:仅白名单用户可发布组织范围内的助手
智能体的创建与应用基于 AnyShare 与 AnyDATA 的协同工作:创建阶段,用户在 AnyShare 完成智能体创建后,系统同步调用 AnyDATA 的 Agent 创建接口,在 AnyDATA 中创建或匹配对应的主控 Agent 和技能 Agent;应用阶段,智能体将用户问题及配置、历史会话、临时区内容等信息透传至 AnyDATA 主控 Agent,进行理解并调用大模型或相应技能进行推理问答。
三、文档召回机制
文档召回是智能体从海量知识数据中精准定位相关信息的核心能力,基于 OpenSearch 搜索实现,支持关键字召回、向量召回、混合检索与重排序四层递进架构。
3.1 关键字召回(Lexical Search)
关键字召回是基于词项匹配实现的高效检索,是搜索引擎最传统、最基础的能力,适用基于精确关键词或固定表述进行查询的场景。
工作原理:
- 文本处理 —— 对用户查询(Query)和文档(Document)进行分词(Tokenization),将其拆分成独立的词项(Term)。例如”OpenSearch 的向量功能”可被分词为
["opensearch", "向量", "功能"] - 构建倒排索引 —— OpenSearch 为所有文档建立倒排索引(Inverted Index),记录每个词项出现的文档、位置及频率信息
- 匹配与评分 —— 根据查询词项定位文档,使用 BM25 等排名函数计算相关性分数,综合考虑词频(TF)、逆文档频率(IDF)和字段长度等因素
优势与局限:
- 优势:擅长处理精确关键词、数字、代码或专有名词等字面匹配场景(如产品型号”iPhone 15 Pro”、”错误码 404”),计算效率高
- 局限:高度依赖分词质量,无法理解语义,难以处理同义词(”电脑”与”计算机”)、多样化表述(”如何重启设备”与”设备重启步骤”)、错别字等问题
3.2 向量召回(Vector Search / Semantic Search)
向量召回基于语义理解进行检索,采用预训练的深度学习模型将查询语句和文档内容转换为高维向量表示。
工作原理:
- 向量化处理 —— 采用 BERT、Sentence-BERT 等模型将文本转换为高维向量,语义相近的文本在空间中的向量距离更接近
- 向量索引构建 —— 将文档向量存储至 OpenSearch 并构建 HNSW(Hierarchical Navigable Small World)或 IVF-PQ(倒排文件索引-乘积量化)等高效向量索引结构,通过近似最近邻算法(ANN)保证检索精度的同时显著提升高维空间搜索效率
- 相似度匹配 —— 计算余弦相似度(CosSim)、内积(Inner Product)或欧氏距离(L2 Distance)等相似度度量
优势与局限:
- 优势:深刻理解语义,能有效应对同义词、多样化表述、错别字等场景(查询”苹果手机”也能找到提到”iPhone”的文档)
- 局限:计算资源消耗更大,通常需要 GPU 加速;在处理精确术语、代号或数字时效果可能不如关键字召回
3.3 混合检索(Hybrid Search)
单一召回策略均存在局限,系统采用混合检索架构融合两种召回路径的结果。核心挑战在于两种机制的分数体系存在本质差异:BM25 分数理论无上限,而向量相似度得分通常限定在 [0,1] 区间。
实现机制:
- 多路并行召回 —— 同步执行关键字查询和向量查询,获得两份独立的候选文档列表
- 分数归一化处理 —— 采用 min-max 归一化、L2 归一化或 RRF(Reciprocal Rank Fusion)算法将两类分数统一映射至可比较区间
- 加权融合排序 —— 为关键字分数与向量分数分配不同权重(如 0.4 和 0.6),通过加权求和计算每篇文档的最终相关性得分
- 重排序(Rerank) —— 将混合检索产出的 Top-K 结果送入精细化重排序模型(如基于 BERT 的 Cross-Encoder)进行二次精排
3.4 召回优化策略
针对三种主要文档类型设计差异化召回优化策略:
| 文档类型 | 召回特点 |
|---|---|
| Doc | 支持关键字召回与向量召回,支持 text 或 embedding 参数传入;通过 ranges 参数限定文档库范围;根据用户访问权限过滤召回结果 |
| WIKIDoc | 与 Doc 召回逻辑一致,但范围参数为 data_set_id |
| FAQ | 存储问题、相似问法及答案;混合召回模式下返回完整 FAQ 条目,包含问题、相似问法和答案 |
切片上下文补全:对每个被召回的切片,系统自动检索其在原始文档中相邻的前后内容。默认配置为获取下文 2 个切片、上文 0 个切片,增强问答的逻辑连续性与语义完整性。
3.5 重排序(Rerank)策略
召回与重排序共同构成从”海选”到”精选”的完整流程。重排序模型通过深度语义分析,逐一对候选切片与用户查询进行相关性计算,输出精确的匹配分数(如 mge_score)。基于 mge_score 的分布特征可设定阈值对结果进行筛选,有效过滤低相关性内容,提升输入大模型的上下文质量,最终增强问答准确性。
3.6 可配置参数
| 配置类别 | 参数项 |
|---|---|
| 查询优化 | 智能改写和查询扩充功能开关 |
| 多路召回 | 关键字召回开关、向量召回开关、相似度阈值 |
| 上下文管理 | 召回上下文块数据量设置 |
四、图谱召回机制
4.1 图谱召回原理
在关键字和向量文档召回基础上,系统进一步提供基于知识图谱的语义召回能力。图谱召回通过挖掘三元组(实体、关系与属性)之间的深层语义关联,为复杂查询和推理类问题提供精准的结构化信息支撑。
核心流程:
- 多路召回 —— 同时通过实体名称、实体属性和实体关系从知识图谱中召回与查询最相关的实体集合
- 子图扩展与获取 —— 基于候选实体,采用双向一度扩展策略查询其关联子图,生成三元组列表。每个三元组包含:
- 实体 A 及其属性
- 实体 B 及其属性
- 关系 C(实体 A 与实体 B 之间的关系)及其关系属性
- 文本化输出 —— 将三元组内容拼接为纯文本格式,作为大语言模型的输入上下文
4.2 召回配置参数与调优策略
| 配置项 | 说明 |
|---|---|
| 大模型选择 | 配置用于实体识别和查询理解的大模型 |
| 文本匹配实体数量 | 基于文本匹配召回的实体数量上限 |
| 向量匹配实体数量 | 基于向量相似度召回的实体数量上限 |
| 重排序保留数量 | 精排后保留的参考信息数量 |
| 图谱 BGE 相似度阈值 | 基于 BGE 模型的重排序相似度过滤阈值 |
| 长文本上限 | 输出上下文的最大长度限制 |
通过这些参数的组合调优,系统能够更精准地筛选出与用户查询高度相关的图谱信息,大模型在此过程中承担实体识别和语义理解的关键角色。
五、图谱增强机制
5.1 基于数据源的增强问答(标准方案)
默认知识库问答方案基于数据源进行增强:
- 从已解析的文档向量库中召回与 query 最相关的切片
- 将切片内容作为参考资料送入 LLM 进行问答
- 基于 query 和 answer 生成相似问题
- 流式返回答案、相关追问、参考文档和引用资料
5.2 基于图谱与文档库的增强问答方案
| 方案 | 核心要点 | 差异点 |
|---|---|---|
| 方案一 | 图谱三元组 + 文档切片 | 相较标准方案,增加了 query 相关文档的元数据 |
| 方案二 | 图谱切片 + 文档切片 | 增加了以 query 相关的图谱三元组文档范围的切片内容 |
| 方案三 | 图谱三元组 + 图谱切片 | 仅通过图谱完成切片召回,完全由图谱驱动召回策略 |
方案一(多路召回内容融合):在标准方案基础上,执行图谱召回(三元组集合)与文档库召回(文件切片),将图谱返回的三元组数据与文档库召回和重排的切片内容直接拼接,作为大模型的增强上下文输入。
方案二(实体导向的切片增强):在方案一基础上进一步利用图谱的实体引导能力——提取三元组中的文档实体列表,以此为切片范围从文档库中召回相关切片(集合 A),将集合 A 与标准召回切片(集合 B)通过交并集策略拼凑,经重排序后作为大模型的参考内容。
方案三(图谱引导的两阶段召回):完全由图谱驱动的召回策略——通过图谱召回获取相关子图信息,提取文档实体列表作为切片范围,从文档库中召回相关切片,对集合进行重排序后直接作为 LLM 模块的参考内容。
六、Agent 核心概念
6.1 Agent 创建机制
Agent 是承载业务智能化的最基本节点,是大语言模型能力表达的最小业务逻辑单元。当前有两种 Agent 创建入口:
| 方式 | 说明 |
|---|---|
| 通过 AnyShare 智能体创建 | 直接引用基于文档问答模板或大模型知识问答模板创建的技能 Agent |
| 在 AnyDATA 中直接创建 | 可选择所有类型的 Agent 创建模板,通过 Dolphin 语法调用 |
6.2 Agent 调用方式
Agent 支持三种主要业务使用场景:
- 智能体流程协作 —— 多个 Agent 协同完成复杂业务流程
- 工作流嵌入节点 —— 嵌入工作流的智能处理单元
- 独立功能模块 —— 作为独立能力点直接被系统功能引用(如 GraphQA 找文件智能体)
显式调用方式:
- Dolphin 语言调用:
@web_search(query=$query,content=$content) -> skill_result - 自然语言调用:
/explore/(system_prompt="调用技能(联网搜索)...")/judge/(system_prompt="调用技能(联网搜索)...")/prompt/请调用技能(联网搜索)回答用户问题
6.3 LLM 块调用方式
Agent 内的 LLM 块提供两种调用模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 基础模式(Basic LLM) | 直接输出大模型生成的文本内容 | 标准问答场景 |
| 专家模式(Expert LLM) | 输出为结构化 JSON 对象 | 需要精确解析模型响应的场景 |
注意:专家模式下若需输出纯文本格式,则需额外解析 JSON 对象,此过程可能影响流式输出的实时性。
6.4 函数块调用
Agent 支持通过自定义 Python 函数块实现特定数据处理逻辑。函数块开发规范:
- 仅可使用系统内置依赖包
- 必须采用异步函数定义,避免阻塞整个 Agent-app 服务的运行
- 需充分考虑异常情况处理,防止因函数错误导致 Python 运行环境失效
6.5 Agent 数据召回
Agent 召回块支持文档召回与图谱召回能力,可通过自定义 Python 函数块调用以下接口:
| 接口 | 说明 |
|---|---|
slice_search |
执行文档切片召回 |
slice_fetch |
获取切片上下文信息 |
reranker |
调用 Reranker 模型 |
权限验证可通过 Agent 入口参数 ax_ctx 获取用户 token 进行设置,确保召回过程符合权限管控要求。
七、临时区机制
7.1 功能概述
临时区功能支持用户在与智能体对话过程中上传本地文件或 AnyShare 内部文件进行解析,使 AI 能够基于所上传文档内容进行问答、总结、翻译等操作,有效扩展了知识助手的应用场景。
注意:若用户未开通个人文档库,临时区功能将无法正常使用。
7.2 支持的文件类型
| 文件类型 | 支持格式 |
|---|---|
| 文档 | docx, dotx, dot, doc, odt, wps, docm, dotm |
| 工作表 | xlsx, xlsm, xlsb, xls, et, csv 等 |
| 演示文稿 | pptx, ppt, pot, pps, dps 等 |
| 文本 | txt, html |
| 音频 | aac, flac, m4a, mp3, wav 等 |
| 视频 | 3gp, avi, mov, mkv, mp4 等 |
目前暂不支持图片格式文件。临时区所支持的文件类型范围与系统内容处理模块的格式支持范围并非完全一致——文件是否允许上传以表格中列出的类型为准,而文件能否被成功解析则取决于内容处理服务对具体格式的支持能力。
7.3 工作模式与原理
文档内容处理策略:为适配 AI 模型对输入长度的限制(默认 Token 数为 32k,以模型上下文会话 Token 大小的 3/4 为最大输入限制),系统提供以下动态处理方式:
- 若文档总长度在模型限制范围内,直接使用全部内容
- 若内容超长,提供两种处理机制:
- 简单截取模式:截取文档前部内容至最大限制长度,并提示用户已截断的比例
- 文档内容筛选模式:基于用户查询与文档结构化全文进行相似度计算,筛选最相关片段作为会话输入
7.4 文档内容筛选模式
文档内容筛选用于处理文档过大超出 AI 模型处理能力的情况。
处理流程:
- 文档预处理 —— 根据文档长度自适应调整分块大小(小型 <1000 字符:100 字符/块;中型 1000–5000 字符:200 字符/块;大型 >5000 字符:300 字符/块)
- 分词处理 —— 对用户问题及文档内容进行中文分词
- 相似度计算 —— 基于 Jaccard 相似度算法计算文本块与问题的相关性
- 逐级匹配 —— 从高相似度阈值起,逐步放宽条件筛选相关内容
- 内容整合 —— 将筛选出的最多 10 个相关段落组合为最终输入内容
缺省处理:若筛选模式未能获取足够内容,系统将尝试段落级匹配;如仍不满足条件,则截取文档前 5 句作为默认内容。
八、智能体效果调试
从 AnyShare 7.0.6.5 版本开始,支持在智能体编辑过程中直接进行调试运行。该功能允许用户完整查看智能体主控的输入与输出,并追踪中间每个处理步骤的详细数据。
- 功能验证 —— 测试智能体的各项功能是否正常工作
- 效果评估 —— 评估回答质量和准确性
- 性能分析 —— 监控响应时间和资源消耗
注意:AnyShare 7.0.6.4 版本中此功能仅限于在 AnyDATA 中调试 Agent。
九、智能体问答反馈与运营
9.1 问答会话记录
系统通过历史记录机制保障对话连续性及数据可追溯性:
- 支持获取历史对话上下文,维持多轮对话的语义连贯
- 在对话结束时持久化存储完整对话记录
- 处理中断会话的自动合并情况
- 维护会话 ID 与 QA ID 的唯一性
- 记录对话长度、时间戳等关键元数据
9.2 会话收藏机制
用户可将重要会话添加至收藏夹,系统通过在收藏表中新增记录实现标记,并将相同会话(相同 conversationID)下的历史记录设置为不删除状态,确保持久保留。
9.3 问答反馈收集
系统通过点踩/点赞机制收集用户反馈:
- 反馈表通过
detail_id(格式:bot_id/qa_id)关联具体问答内容 - 点踩时支持补充文字反馈与问题截图
9.4 数据统计与分析
| 用户角色 | 可查看范围 |
|---|---|
| 普通用户 | 仅可查看自己发布智能体的统计数据 |
| 超级管理员 | 支持查看全局智能体运营分析数据 |
总结
AnyShare 智能体的核心机制涵盖了从创建、配置到运行的完整生命周期。文档召回与图谱召回构成双路检索架构,结合混合检索与重排序策略实现精准知识获取;主控 Agent 与技能 Agent 的协作机制提供了灵活的技能编排能力;临时区功能进一步扩展了智能体的应用场景;完善的调试与反馈机制则保证了智能体的持续优化与运营分析。这些机制共同构成了 AnyShare 知识助手的智能化服务体系,为企业级知识管理提供了强大的 AI 能力支撑。