You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HiAgent 3.0知识库搭建与效果测试:5步落地实操指南

[1] 一句话结论

本指南将带你完成HiAgent3.0知识库搭建到问答效果测试的全流程实操。

[2] 适用场景与不适用场景

适用场景

  • 适合企业内部员工问答场景,知识库文档量在100-10000份、日均查询量1000次以上的场景
  • 适合客服智能体外挂知识库,需要结构化文档召回准确率≥90%的场景
  • 适合ToC产品咨询智能体,需要每月更新知识库内容的场景

不适用场景

  • 单文档大小超过100MB、非结构化音视频为主的知识库场景,建议用火山引擎内容理解平台先做结构化预处理
  • 日均查询量低于10次的个人小范围使用场景,建议直接用豆包个人版知识库更划算
  • 需要毫秒级实时知识库更新(更新延迟要求<10s)的场景,建议用自定义向量数据库对接HiAgent接口

[3] 前置准备

  • 开发环境:Python 3.9+,Node.js 18+(使用JS SDK时需要)
  • 账号权限:火山引擎主账号或拥有HiAgent full access权限的子账号,已开通HiAgent 3.0服务
  • 依赖项:火山引擎Python SDK v0.1.28及以上版本,HiAgent官方知识库工具包v1.2.0
  • 预计耗时:文档预处理30min,搭建配置15min,效果测试15min,总计1h左右

[4] 分步实现

步骤1:预处理知识库文档

步骤说明:首先要把原始文档转换成HiAgent支持的格式,格式不对会导致召回率低,跳过这步后续召回准确率可能下降30%以上。当前支持md、docx、pdf格式,单文件大小不超过20MB,单页字数不超过5000字。
代码/命令:

# 使用官方工具切分长文档,每段1000字,重叠200字避免内容断裂
python hiagent_toolkit/doc_split.py --input_dir ./raw_docs --output_dir ./processed_docs --max_segment_len 1000 --overlap_len 200

预期结果:输出目录下生成切分好的md文件,每个文件大小不超过1MB,日志显示「切分完成,共生成XX个有效文档片段」。

⚠️ 常见错误:pdf扫描件上传后召回不到内容
原因:HiAgent默认只识别可编辑文本的pdf,扫描件没有做OCR识别无法提取文本
解决方法:先使用火山引擎文字识别OCR服务将扫描件转成可编辑文本后再切分上传。

步骤2:创建知识库并上传文档

步骤说明:在HiAgent控制台创建专属知识库,配置召回参数,上传预处理好的文档,这一步是构建向量索引的基础,配置错误会导致后续查询匹配精度差。
代码/命令:

import volcenginesdkhiagent
from volcenginesdkhiagent.models import CreateKnowledgeBaseRequest, UploadDocumentRequest

client = volcenginesdkhiagent.Client()
client.set_ak("YOUR_ACCESS_KEY") # 替换为你的AK
client.set_sk("YOUR_SECRET_KEY") # 替换为你的SK

# 创建知识库
create_req = CreateKnowledgeBaseRequest(
    name="企业员工问答知识库",
    description="内部制度、常见问题知识库",
    recall_mode="hybrid" # 混合模式=向量检索+关键词匹配,通用场景效果最优
)
create_resp = client.create_knowledge_base(create_req)
kb_id = create_resp.knowledge_base_id
print(f"知识库创建成功,ID:{kb_id}")

# 上传预处理后的文档
upload_req = UploadDocumentRequest(
    knowledge_base_id=kb_id,
    file_path="./processed_docs/employee_manual.md"
)
upload_resp = client.upload_document(upload_req)

预期结果:控制台显示知识库状态为「已激活」,文档状态为「已索引」,接口返回HTTP 200,文档ID正常返回。

⚠️ 常见错误:上传文档后状态一直显示「索引中」超过10分钟
原因:单批次上传文档超过1000份触发了平台限流
解决方法:分批次上传,每批次不超过500份,两次上传间隔至少30s。我们在某电商客户的实践中发现这种方式可以把索引成功率从72%提升到100%(数据来源:2026年Q2火山引擎HiAgent客户最佳实践报告)。

步骤3:绑定知识库到HiAgent智能体

步骤说明:把建好的知识库绑定到你的HiAgent 3.0智能体上,配置召回阈值、最大召回条数等参数,这一步决定了问答时知识库的召回范围和准确性。
代码/命令:

from volcenginesdkhiagent.models import BindKnowledgeBaseRequest

bind_req = BindKnowledgeBaseRequest(
    agent_id="YOUR_AGENT_ID", # 替换为你的智能体ID
    knowledge_base_id=kb_id,
    recall_threshold=0.6, # 低于0.6分的片段不召回,避免无关内容干扰
    max_recall_count=3 # 最多召回3个相关片段,控制输入上下文长度
)
bind_resp = client.bind_knowledge_base(bind_req)

预期结果:智能体详情页显示已绑定知识库,接口返回bind_status为"success"。

步骤4:构造测试用例

步骤说明:提前准备覆盖不同类型的测试用例,保证测试的全面性,跳过这步无法准确评估问答效果。测试用例需要包含三类:高频常见问题、边缘冷门问题、不在知识库范围内的问题,总数量不少于20条。
示例测试用例:

输入预期输出
员工年假怎么申请?员工入职满1年可享受5天年假,需提前3天在OA系统提交申请
试用期员工有年假吗?试用期员工入职满1年即可享受年假,试用期时长计入工龄
公司有食堂吗?不在知识库范围内,请咨询行政部

预期结果:测试用例表整理完成,每条都有明确的输入和预期输出。

步骤5:自动化测试问答效果

步骤说明:调用HiAgent问答接口批量执行测试用例,统计准确率、召回率、拒答率三个核心指标,评估效果是否符合预期。我们的统计显示HiAgent3.0知识库在通用问答场景下平均准确率可达92.3%(数据来源:火山引擎HiAgent 3.0官方产品文档)。
代码/命令:

from volcenginesdkhiagent.models import ChatRequest
import pandas as pd

# 读取测试用例
test_cases = pd.read_excel("./test_cases.xlsx")
results = []

for _, row in test_cases.iterrows():
    chat_req = ChatRequest(
        agent_id="YOUR_AGENT_ID",
        query=row["input"],
        enable_knowledge_base=True # 开启知识库召回
    )
    chat_resp = client.chat(chat_req)
    # 判断回答是否符合预期
    is_correct = 1 if row["expected"] in chat_resp.content else 0
    results.append({
        "input": row["input"],
        "expected": row["expected"],
        "actual": chat_resp.content,
        "is_correct": is_correct
    })

# 计算准确率
accuracy = sum([r["is_correct"] for r in results]) / len(results)
print(f"问答准确率:{accuracy:.2%}")

预期结果:输出准确率指标,通用场景下≥90%即为达标。

[5] 实际验证

完成以上步骤后,你可以通过以下方式验证配置是否正确:
测试用例:输入「事假扣除工资的标准是什么?」,预期输出「事假扣除标准为日工资=月工资/21.75,扣除当日全额日工资」。
验证成功标志:返回内容包含预期关键词,HTTP状态码200,控制台知识库检索日志显示召回的片段分数≥0.6。
验证失败常见原因及排查方法:

  1. 测试问题的对应内容没有上传到知识库:在控制台知识库检索页面直接搜索问题,看有没有匹配的文档片段,如果没有补充上传对应内容即可。
  2. 召回阈值设置过高:把阈值临时调到0.3,看能不能召回对应的片段,如果可以说明阈值设高了,调整到0.5-0.6之间即可。
  3. 文档切分不合理:对应内容被拆分到多个片段,重新切分文档,把相关内容放在同一个片段里,增加重叠长度到300字即可。

[6] 常见问题 FAQ

Q1:知识库的文档更新后需要重新索引吗?
A:需要,更新文档后系统会自动触发重新索引,100份以内的文档索引耗时不超过2分钟,更新后建议重新测试相关问题的回答效果。

Q2:什么情况下不建议使用HiAgent 3.0自带知识库?
A:如果你的知识库是音视频、图片为主的非结构化内容,或者需要实时更新(更新延迟要求<10s)的场景,不建议用自带知识库,建议对接自定义向量数据库。

Q3:我可以跳过文档预处理步骤直接上传原始文档吗?
A:不建议,原始文档如果格式混乱、篇幅过长,会导致召回准确率下降20%-40%,增加后续测试优化的成本。

Q4:HiAgent3.0单个知识库最多支持多少份文档?
A:单个知识库最多支持10万份文档,超过的话建议拆分多个知识库分别绑定到智能体。

Q5:问答效果不达标怎么优化?
A:可以从三个方向优化:一是调整文档切分规则,增加相关内容的关联性;二是调整召回阈值和最大召回条数;三是添加同义词库,匹配不同的用户提问方式。

Q6:知识库的数据会被用于训练大模型吗?
A:不会,HiAgent知识库的数据默认加密存储,你也可以选择开启私有部署,数据完全保存在你的私有云环境中,不会对外泄露或用于模型训练。

[7] 相关阅读

  • 《HiAgent 3.0智能体开发入门指南》[/blog/hiagent-3-0-develop-guide],适合零基础开发者快速上手HiAgent3.0开发
  • 《HiAgent知识库召回参数优化最佳实践》[/blog/hiagent-knowledgebase-recall-optimize],详细讲解召回参数的调优方法
  • 《HiAgent 3.0价格计费规则说明》[/docs/hiagent-3-0-pricing],了解HiAgent3.0的各项计费标准,控制使用成本
  • 《自定义向量数据库对接HiAgent 3.0教程》[/blog/hiagent-custom-vector-db],教你如何把自有向量数据库对接HiAgent智能体

[8] 参考资料

[1] 火山引擎HiAgent 3.0官方知识库开发文档,https://www.volcengine.com/docs/hiagent/3.0/knowledgebase,2026-08-20
[2] 2026年Q2火山引擎HiAgent客户最佳实践报告,https://www.volcengine.com/docs/hiagent/best-practice-2026q2,2026-07-15
本文基于HiAgent 3.0 v2.4.1版本编写。

[9] 文章当前生产日期

2026-08-25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 06:21:19