openeuler/skills系统技能详解:RAG技术在智能代理中的应用实践
openeuler/skills系统技能详解:RAG技术在智能代理中的应用实践
【免费下载链接】skillsWith the rapid advancement of AI, standard protocols for AI agents—such as MCP and Skill—are continuously emerging. This repository is established to accommodate current and future AI agent protocols and their associated tools, providing users with generation, testing, and optimization scripts to facilitate agent development and improve agent usability.项目地址: https://gitcode.com/openeuler/skills
前往项目官网免费下载:https://ar.openeuler.org/ar/
openEuler/skills是一个专注于AI代理协议与工具的开源项目,通过提供生成、测试和优化脚本,帮助开发者构建更易用的智能代理。其中,RAG(检索增强生成)技术作为核心系统技能,为智能代理提供了强大的知识管理与检索能力,让AI能够高效利用外部文档进行精准回答。
什么是RAG技术?为什么智能代理需要它? 🤔
RAG(Retrieval-Augmented Generation)即检索增强生成技术,是将信息检索与生成式AI相结合的智能方法。它解决了传统大语言模型存在的"知识滞后"和"幻觉生成"问题,通过以下方式提升智能代理能力:
- 知识实时更新:无需重新训练模型,通过导入新文档即可扩展AI知识库
- 回答精准溯源:所有回答都基于可验证的文档内容,降低虚构信息风险
- 专业领域适配:轻松构建垂直领域知识库,满足特定场景需求
在openEuler/skills项目中,RAG技术被封装为系统级技能,通过MCP(多智能体协作协议)工具提供标准化的知识管理能力。
RAG技能核心组件与工作流程 🔍
三大核心工具
openEuler/skills的RAG系统提供三个关键工具,形成完整知识管理闭环:
| 工具 | 主要功能 |
|---|---|
| Knowledge_base_manager | 创建与管理知识基地,支持列表查询和新建操作 |
| document_manager | 导入各类文档(TXT/DOCX/PDF),自动处理为检索可用的文本块 |
| search | 执行混合检索(FTS5关键词+sqlite-vec向量),返回精准匹配结果 |
标准检索流程
使用RAG技能的标准检索流程分为四步:
- 识别知识库:调用
Knowledge_base_manager(action="list")获取可用知识库 - 选择目标库:根据用户查询主题自动推断或列出所有知识库供选择
- 执行检索:调用
search工具传入查询和知识库名称 - 优化结果:若结果不理想,可调整
keyword_weight或设置banned_chunk_ids重新检索
文档导入流程
扩展知识库的文档导入流程:
- 确认知识库:先调用
Knowledge_base_manager(action="list")检查目标库是否存在 - 创建知识库:若不存在,使用
Knowledge_base_manager(action="add", kb_name, chunk_size)创建 - 导入文档:通过
document_manager(action="add", file_paths, kb_name)导入文件
RAG检索参数优化策略 🎯
要获得最佳检索效果,需要合理配置检索参数。openEuler/skills的RAG系统提供了灵活的参数调整机制:
top_k:默认返回5条结果,需要更多上下文时可适当增大
keyword_weight(0-1之间):
- 关键词明确或需要精确匹配时:提高权重(0.5-0.7)
- 语义理解或概念查询时:降低权重(0.1-0.3)
- 默认值为0.3,平衡关键词与向量检索
banned_chunk_ids:首次检索结果不佳时,可将无关文本块ID加入此参数排除干扰
检索优化技巧
遇到检索问题时的实用优化方法:
- 无结果或结果无关:重写查询(更具体或更通用)、添加同义词或拆分问题
- 部分结果质量差:将低质量文本块ID加入
banned_chunk_ids,调整keyword_weight后重试 - 需要GitHub信息:设置
online=true,并调整online_top_k参数
本地化部署与使用指南 🚀
当MCP服务不可用时,openEuler/skills提供了本地化脚本运行方案。通过system-skills/rag/scripts/rag.py可直接操作RAG功能:
环境准备
首先安装依赖:
pip install -r system-skills/rag/scripts/requirements.txt复制配置文件模板并修改:
cp system-skills/rag/scripts/rag/config.toml.example system-skills/rag/scripts/rag/config.toml常用命令示例
列出知识库:
python system-skills/rag/scripts/rag.py list [--keyword "关键词"]创建知识库:
python system-skills/rag/scripts/rag.py create --kb_name "项目文档库" --chunk_size 512导入文档:
python system-skills/rag/scripts/rag.py import --file_paths /path/to/document.pdf --kb_name "项目文档库"执行检索:
python system-skills/rag/scripts/rag.py search --query "如何配置嵌入模型" --kb_names "项目文档库"高级配置:嵌入模型与向量存储 ⚙️
openEuler/skills的RAG系统支持多种嵌入模型和灵活的向量存储配置,可通过system-skills/rag/scripts/rag/common/config.py文件进行深度定制:
- 嵌入模型类型:支持OpenAI、本地模型等多种类型
- 向量维度:默认1024维,可根据模型特性调整
- 超时设置:默认30秒,可根据网络状况调整
关键配置参数:
"embedding": { "type": "openai", # 嵌入模型类型 "model_name": "text-embedding-v4", # 模型名称 "vector_dimension": 1024, # 向量维度 "timeout": 30 # 超时时间 }实际应用案例:智能代理如何利用RAG回答问题 📝
假设用户询问:"如何在openEuler/skills中创建知识库?",启用RAG技能的智能代理会执行以下步骤:
- 调用
Knowledge_base_manager(action="list")检查可用知识库 - 选择包含项目文档的知识库(如"openeuler_skills_docs")
- 执行检索:
search(query="创建知识库", kb_names=["openeuler_skills_docs"], top_k=3) - 获取相关文档片段后,生成自然语言回答并附上来源
工具调用示例:
# 创建知识库 Knowledge_base_manager(action="add", kb_name="ProjectDocs", chunk_size=512) # 导入文档 document_manager(action="add", file_paths=["/path/to/docs.pdf"], kb_name="ProjectDocs") # 执行搜索 search(query="如何配置嵌入模型", kb_names=["ProjectDocs"], top_k=5, keyword_weight=0.3)总结:RAG技术赋能智能代理的价值 💡
openEuler/skills项目中的RAG系统技能通过标准化的知识管理工具链,为AI代理提供了强大的文档检索与知识应用能力。无论是通过MCP协议集成到智能工作流,还是直接运行本地脚本,开发者都能轻松构建具备专业知识的智能代理。
通过灵活的参数配置和优化策略,RAG技术有效提升了AI回答的准确性和可靠性,为开源项目开发、技术支持、文档理解等场景提供了高效解决方案。
要开始使用RAG技能,只需克隆项目仓库:
git clone https://gitcode.com/openeuler/skills详细参数和返回结构请参考system-skills/rag/reference.md。
【免费下载链接】skillsWith the rapid advancement of AI, standard protocols for AI agents—such as MCP and Skill—are continuously emerging. This repository is established to accommodate current and future AI agent protocols and their associated tools, providing users with generation, testing, and optimization scripts to facilitate agent development and improve agent usability.项目地址: https://gitcode.com/openeuler/skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
