用 RAG 给 Agent 接入内部知识

8.5 小结 知识库智能客服与内部助手怎么复用 摘要 本小节介绍了如何将RAG知识库模式迁移到智能客服、内部助手等场景。主要内容包括: 复用场景:分析了企业知识库、智能客服和内部助手的数据来源、触发方式和输出特点 通用要点:强调数据统一格式、索引选择和灵活触发方式的重要性 实现原理:指出RAG复用的核心是保持"数据→索引→检索→生成"管线不变,只需调整数据来源等关键要素 技术细节:详细说明了将RAG作为Agent工具的对接方法 场景对比:提供了不同场景下的数据来源建议和更新策略 安全考虑:强调了权限控制和审计日志的重要性 最后指出RA 阅读详情

echo-agent 前身为 2025 年 11 月启动的个人助理项目 fubot,最初面向长期陪伴型个人智能体,围绕认知记忆、上下文延续、用户偏好沉淀、任务闭环与持续自我优化展开。随着真实场景迭代,项目逐步形成多入口接入、统一事件模型、消息总线、Agent Loop、多模型抽象、工具调用、MCP 接入、任务调度、权限审批、运行轨迹、长期记忆和受控自演进等能力。目前已支持微信、QQ、CLI、Gateway、Webhook、Cron 等入口,服务用户超过 20 万、累计下载超过 50 万,是面向长期运行、记忆增强和可持续成长智能体的开源 Agent Runtime。

项目地址:https://github.com/fuyuxiang/echo-agent

18-cover

你让 Agent 帮你排查一个内部接口认证失败。

它能读日志,也能写代码,但它不知道公司内部网关的认证规范、接口迁移公告、历史故障处理记录。于是它只能从报错文本里猜:可能是 token 过期,可能是签名算法不对,可能是环境变量没配。

这些猜测未必离谱,但对工程系统来说不够。真正可靠的 Agent 不能只依赖模型参数和当前会话,它必须能回到内部资料:查规范、查操作手册、查项目文档,并把回答依据讲清楚。

这就是 RAG 在 Agent 里的位置。

RAG 不是给模型“灌入知识”,而是在当前任务里建立一条可追溯的证据通道。

问题入口

如果只看传统文本型 Chatbot,它通常以“输入文本、返回文本”为主。没有内部资料时,模型只能依赖训练阶段学到的公共知识和当前上下文。对公开概念,这可能够用;对企业内部系统,问题马上出现。

内部接口怎么认证、上线流程走哪几个审批、某个服务的降级策略是什么、某个配置项在哪个版本废弃,这些信息通常不在模型参数里。即使模型“看起来知道”,也很难说明结论来自哪份文档。

对 Agent 来说,风险更高。普通问答答错,最多是用户再追问;Agent 如果基于错误资料执行工具,可能会改配置、发消息、创建任务,甚至把过期流程当成当前规范。

所以,Agent 接入内部知识,不是为了让回答显得更丰富,而是为了让行动有依据、依据能追溯、越权资料进不了上下文。

概念边界

RAG 的全称是 Retrieval-Augmented Generation,检索增强生成。它的基本流程很简单:回答前先检索相关资料,把资料放进模型上下文,再让模型基于资料回答。

但在 Agent 系统里,RAG 不能只理解成“接一个向量库”。它至少有三层含义:

层次解决的问题工程要求
可发现相关资料能不能被找出来文档解析、分块、索引、查询理解
可使用资料能不能支持当前回答或行动上下文裁剪、结构保留、冲突处理
可归因结论能不能回到来源引用编号、路径、权限、审计 trace

很多系统只优化第一层,比如提升 top-k 召回或换 embedding 模型。但 Agent 更需要后两层。因为检索结果不只是“参考文本”,它会影响推理、工具调用和安全决策。

18-证据通道

这也解释了 RAG 和记忆系统的区别。记忆来自 Agent 与用户、项目长期交互中沉淀出的经验,强调个性化、作用域、遗忘和更新。知识库来自预先存在的文档资料,强调可检索、可引用、可重建和权限过滤。

两者都会进入上下文,但职责不同。记忆回答“这个用户和这个项目过去形成了什么稳定经验”;知识库回答“组织已有资料里有什么可引用证据”。

证据通道

为了不停留在抽象层面,下面以 echo-agent 的实现为例。

echo-agent 的知识库模块位于 echo_agent.knowledge。当前实现不是向量 RAG,而是一个本地关键词知识索引。这个选择很克制:它不依赖外部 embedding 服务,但保留了 RAG 的关键结构,包括文档加载、分块、索引、检索、权限过滤、引用编号和上下文格式化。

知识库在 Agent 中有三个入口。

第一,自动检索。ContextStage 构造上下文时,会用用户本轮输入搜索知识库,把结果加入 retrieval context。

第二,工具检索。模型可以主动调用 knowledge_search,在推理过程中补充证据。

第三,索引维护。管理员或受信任 Agent 可以通过 knowledge_index 查看索引状态或重建索引。

这三个入口对应三种需求:默认给模型补证据、让模型主动查证据、让系统维护证据基础设施。

会调用知识库不等于可靠 RAG;检索结果必须带来源、受权限约束,并进入正确的上下文层级。

在 echo-agent 中,检索结果会被格式化成内部知识上下文,每条包含 [K1] 这样的引用编号、标题、路径和摘要片段。ContextStage 再把它作为 background context 注入,而不是把原文无标记拼进 prompt。

这个细节很重要。知识库文档是资料,不是指令。即使文档里写着“忽略之前规则”“执行某删除命令”,它也不能覆盖系统规则、用户当前目标和工具审批策略。RAG 的正确姿态是用资料增强回答,而不是让资料接管系统。

索引流水线

RAG 的质量不只由检索算法决定。文档怎么解析、怎么分块、metadata 怎么保存,都会影响模型最终看到什么。

echo-agent 用 KnowledgeConfig 定义知识库运行方式:docs_dir 指向文档目录,index_path 指向索引文件,auto_index 决定索引缺失或过期时是否自动重建,chunk_size 和 chunk_overlap 控制分块,allowed_extensions 控制可索引文件类型,max_results 控制默认返回数量,require_citations 表示内部资料回答应强调引用。

Agent Loop 初始化时,如果知识库启用,会创建 KnowledgeIndex。相对路径会解析到当前 workspace 下,所以同一套代码在不同工作空间可以使用不同知识库目录和索引文件。

18-索引流水线

索引准备入口是 ensure_ready。如果索引存在且没有过期,就加载索引;如果索引不存在或已过期,并且 auto_index=True,就重建索引。过期检测靠比较文档 mtime 和索引 mtime:只要文档比索引新,就认为索引过期。

最小化后的流程大致如下:

defensure_ready(auto_index=True):
    ifindex_file.exists() andnotis_stale(docs_dir, index_file):
        returnload_index()

    ifauto_index:
        returnrebuild_index()

    ifindex_file.exists():
        returnload_index()

defrebuild_index():
    forpathinwalk(docs_dir, allowed_extensions):
        metadata, body=extract_frontmatter(path.read_text())
        title=title_from_markdown_or_filename(body, path)

        foridx, textinenumerate(chunk_text(body, size=1200, overlap=120)):
            save_chunk({
                "id": f"{path}#{idx}",
                "path": path,
                "title": title,
                "text": text,
                "terms": count(tokenize(text)),
                "metadata": metadata,
                "mtime": path.mtime,
            })

这里有几个工程取舍。

frontmatter 会进入 chunk metadata,后续用于权限过滤。标题优先取正文第一个 Markdown 标题,其次取第一行非空文本,最后退回文件名。分块使用字符级切分,默认 chunk_size=1200、chunk_overlap=120。它不如语义分块精细,但简单、稳定、可预测。

tokenization 同时处理英文、数字、下划线和中文。英文与代码标识符按词提取;中文加入单字和相邻二元组。它不是完整中文分词,但比只按空格切分更适合本地中英文文档。

索引保存为可读 JSON,包含 chunk 的路径、标题、正文、词项、metadata 和 mtime。这个设计的价值是可调试、可重建。索引只是文档派生物,文档才是 source of truth;索引损坏或策略升级时,可以删除后重建。

检索时,系统先对 query 做同样的 tokenization,再按关键词统计打分。每个 query term 会根据 chunk 中词频、chunk 长度和 IDF 贡献分数;如果原始 query 是 chunk 文本子串,还会额外加分。最后按分数排序,并生成 K1、K2 这样的引用编号。

这不是最复杂的 RAG,但它具备一个生产系统最需要的骨架:确定性、可解释、可重建、可审计。

权限与引用

内部知识库最容易被低估的是权限。

很多 RAG 原型是在回答阶段才提醒模型“不要泄露敏感信息”。这已经太晚了。只要无权文档进入模型上下文,就已经违反最小权限原则。

echo-agent 在检索阶段做 ACL 过滤。Markdown frontmatter 可以写 allowed_users、allow_users 或 users。如果没有权限字段,默认所有用户可见;如果有权限字段,只有 * 或当前 user_id 命中时才可见。

18-权限引用

测试也围绕这个关键行为展开:公开文档能被 bob 搜到;带 allowed_users: [alice] 的私有文档不能被 bob 搜到;同一份私有文档可以被 alice 搜到;格式化结果必须包含 [K1] 引用。

这说明知识库测试不能只测“搜得到”。更重要的是:无权资料搜不到,引用格式稳定,结果 metadata 能用于审计。

工具层也延续这个边界。knowledge_search 是 read_only 工具,参数包括 query 和 max_results,执行时会从上下文取 user_id 做权限过滤,并在 metadata 中返回 citations。knowledge_index 用于 status 和 rebuild,因为重建会写索引文件,它属于写风险,不应和只读搜索混在一起。

生产级 RAG 的底线不是“能搜到相似段落”,而是能证明:谁在什么权限下,看到了哪些证据,并基于哪些证据生成了结论。

生产可用性

把 RAG 放进 Agent,不只是多接一个检索器,还要把它纳入任务链路。

首先是查询理解。用户问“这个接口现在怎么认证”,其中“这个接口”可能来自当前会话、当前文件或刚才的日志。简单场景可以直接关键词检索;复杂场景可以先让模型生成检索查询,再调用 KnowledgeSearchTool。无论哪种方式,查询改写、过滤条件和用户身份都应该进入 trace。

其次是上下文权威层级。检索结果应该作为背景证据进入模型,而不是作为新的系统指令。模型可以基于它回答,也可以说证据不足;但不能因为文档里出现命令示例,就绕过工具策略和 ApprovalGate。

再次是索引一致性。文档会新增、删除、改名,ACL 会变化,chunk 策略会升级。KnowledgeIndex 的 stale 检测、rebuild、chunk metadata 和 JSON 保存格式,处理的就是“索引是否仍然代表源文档”这个问题。知识库越大,这越接近数据库一致性问题,而不是简单文本处理。

还要处理证据生命周期。草稿、正式版、废弃版、归档资料不应拥有同样权重。过期资料可以作为历史背景,但不能直接作为当前操作依据;如果 Agent 要据此执行高风险动作,就应该先读取当前配置、运行检查命令,或要求人工确认。

最后是评估。RAG 错误不能笼统归因于“模型答错”。工程上要区分检索失败和生成失败。

失败类型表现优先排查
检索失败正确证据没有进上下文分块、索引、查询改写、ACL、top-k
生成失败正确证据已进入但答案仍错上下文组织、提示词、引用约束、拒答策略
权限失败无权资料被召回或引用ACL、用户身份、缓存、审计

评估指标也要相应拆开:retrieval recall、citation precision、answer groundedness、refusal correctness,以及权限过滤是否正确。对 Agent 来说,还要看加入 RAG 后是否减少错误工具调用,是否能在证据不足或证据冲突时停止推进。

这里也能看出向量检索、关键词检索和知识图谱的边界。向量检索擅长找语义相近片段,关键词适合精确术语和代码标识符,图谱适合服务依赖、组织结构、数据血缘这类实体关系。它们不是替代关系,而是不同证据通道。echo-agent 当前偏本地文档检索,是符合本书主线的实现起点。

小结

RAG 在 Agent 里的核心价值,不是让模型显得更懂内部知识,而是把回答和行动拉回外部证据。

一个可用的知识库系统,至少要能完成几件事:从文档目录构建可重建索引;保留标题、路径、mtime、ACL 等 metadata;检索时按用户身份过滤;返回带引用编号的片段;把结果作为 background context 注入;把搜索、引用和权限信息留在 trace 里。

echo-agent 的知识库实现并不追求一步到位做成复杂向量平台。它先把 RAG 的工程骨架立住:文档加载、分块、关键词索引、权限过滤、引用格式化、自动上下文注入和工具化检索。这个顺序是对的。

因为 Agent 的可靠性不是来自“搜到更多文本”,而是来自证据链是否清楚、权限边界是否生效、索引是否可重建、行动是否仍受安全系统约束。

本文为 echo-agent 设计笔记系列第 18 篇。项目源码已开源至 GitHub。如果你对工业级 Agent 的工程落地感兴趣,欢迎加入技术交流群(QQ群号:47572014)参与日常讨论。下一篇我们将探讨 《Agent 技能系统:把经验沉淀为程序性知识》,敬请期待。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

👇👇扫码免费领取全部内容👇👇
在这里插入图片描述

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

在这里插入图片描述

4. 2026行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇
在这里插入图片描述

Agent系列(七):知识库集成——Agent 调用 RAG 的正确姿势 深入拆解 Agentic RAG 与 Pipeline RAG 的本质区别:Agent 如何自主决定是否检索、查哪个知识库、以及检索质量不足时如何自我修正。通过三个可运行的 LangGraph Demo,逐一演示检索决策、多知识库路由、质量门控+查询重写 Fallback 三大核心能力,附完整代码和真实运行结果 阅读详情

相关推荐

企业级AI应用实战:基于Agent、RAG与MCP的微服务智能化改造方案

最近在推进公司一个核心业务系统的智能化改造,团队内部讨论最多的就是: “我们这套复杂的微服务架构,到底该怎么接AI?” 直接调用大模型API,回答质量不稳定,还容易“一本正经地胡说八道”;想让它操作内部系统,又担心安全和权限问题。经过几个月的摸索和落地,我们总结出一套结合 Agent(智能体)、RAG(检索增强生成)和 MCP(模型上下文协议) 的企业级改造方案。今天,我就把这套方案的完整思路、技术选型、实战代码和踩过的坑,毫无保留地分享给大家。 无论你是想为现有系统增加AI能力的技术负责人,还是正在探索A

weixin_30861797的博客 335

RAG知识获取管道全解析:从原理、分块到AI Agent集成实践

检索增强生成(RAG)作为连接大模型与外部知识库的关键技术,正成为AI Agent落地私有数据问答的基础设施。其核心原理是将PDF、Word、Markdown等非结构化文档经过解析、分块、向量化后存入向量数据库,在推理阶段根据用户问题动态检索最相关片段,拼装为上下文供模型生成答案。这一技术价值在于突破模型训练参数的知识边界,让AI Agent真正用上企业内部生产数据、产品手册等私有信息,同时有效抑制幻觉。在智能客服、知识管理、研发辅助等场景中,结合混合检索、重排序与查询改写,可显著提升召回精度与回答质量。围

weixin_29062671的博客 288

第 13 讲:RAG:让 Agent 接入知识库

文章摘要 本文介绍了RAG(检索增强生成)技术及其在知识库问答中的应用。RAG通过结合检索和生成能力,让大模型能够基于外部知识库回答用户问题,解决了模型无法访问私有或最新资料的问题。 核心要点: RAG流程分为离线阶段(知识库构建)和在线阶段(问答检索),包括文档加载、清洗、切分、向量化、存储和检索等步骤 相比微调模型,RAG更适合处理频繁更新的知识和私有文档,并能提供引用来源 文档处理是RAG的关键环节,需要合理切分以平衡语义完整性和检索效率 RAG与Memory的区别在于前者关注外部知识库,后者记录用户

weixin_43674738的博客 32

【LLM-agent】(task3)数据库对话Agent和RAG接入Agent

# note - 数据库对话Agent - RAG接入Agent @[toc] # 一、数据库对话Agent ```python import os from dotenv import load_dotenv # 加载环境变量 load_dotenv() # 初始化变量 base_url = None chat_model = None api_key = None # 使用with语句打开文件,确保文件使用完毕后自动关闭 env_path = ".env.txt" with open(env

发现问题,并解决问题,批判性思维 763

git连接华为软件开发云

我用的是github客户端的git shell 连接。用git bash也可以github客户端下载地址:https://desktop.github.com/1.在华为软件开发云上创建代码仓库2.在本地创建密钥SSH密钥帮助文档公钥是代码托管服务(CodeHub)识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与代码托管服务(CodeHub)建立联系, 然后您就可以很方便的将本地...

sigmeta的博客 2113

手把手教你用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD)

本文详细介绍了如何使用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD),从软件安装、界面设置到基础项目创建和高级功能应用,手把手指导工程师完成系统可靠性分析。通过实际案例演示,帮助用户掌握RBD建模技巧,提升系统可靠性评估效率。

weixin_26765287的博客 623

Clawdbot企业应用案例:Qwen3:32B赋能内部知识库+RAG+Agent工作流闭环

本文介绍了如何在星图GPU平台上自动化部署Clawdbot 整合 qwen3:32b 代理网关与管理平台镜像,构建企业内部知识库的RAG+Agent闭环工作流。该镜像支持自然语言提问、自动检索文档、智能合成答案并附带溯源,典型应用于技术支持场景中的API错误排查与规范查询,显著提升响应效率与答案可信度。

weixin_36427956的博客 376

Qt OpenGL 3D 点云数据显示

在Qt中使用OpenGL显示3D点云数据是一个常见的需求,特别是在计算机视觉、机器人学和三维重建等领域。下面我将介绍一个基本的实现方案。

深之JohnChen的专栏 1238

企业级AI改造实战:Agent、RAG与MCP组合拳破解复杂系统知识鸿沟

在数字化转型浪潮中,企业普遍面临如何将前沿AI能力安全、高效地集成到复杂存量系统的挑战。这涉及到如何弥合大模型的通用能力与企业高度定制化、碎片化知识体系之间的鸿沟。其核心原理在于,通过检索增强生成(RAG)技术,从海量、非结构化的企业数据源(如代码库、内部文档)中精准定位相关信息,为大模型提供可靠的知识上下文,从而有效抑制“幻觉”,提升回答的准确性与时效性。这一技术的价值在于,它能将沉默的组织资产转化为可交互、可查询的动态知识库,直接赋能于开发提效、运维排障、新人培训等核心场景。而要实现这一价值,需要一套系

weixin_30952479的博客 281

ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。 我们使用ITK-snap作为分割标注工具。 当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

u010409517的博客 2万+

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1784

企业级AI Agent开发实战:从RAG到工具调用构建内部智能助手

最近在技术社区看到不少关于 Google 新协议和 AI Agent 的讨论,很多开发者都在好奇这背后到底发生了什么,以及它对我们开发企业级 AI 应用意味着什么。简单来说,这不仅仅是“AI 又变聪明了”的新闻,而是指向一个更核心的趋势: 如何让 AI 真正理解并安全地操作一个组织的内部知识、流程和系统 。这对于希望将 AI 集成到业务流程、构建内部智能助手或自动化工作流的开发者来说,是一个必须关注的技术风向标。 本文将从一个开发者的视角,深入拆解“AI Agent 秒懂公司”背后的技术逻辑、实现路径以及我

weixin_30274627的博客 476

华为开发岗暑期实习笔试(2025年4月16日)

第一题怀疑测试样例不完整,贪心法不应该能够解决该题。第二题使用0-1BFS解决单源最短路径的问题,往往搭配双端队列实现。第三题是运用动态规划解决最大不重叠子区间个数的问题,难点在于满足3重判断规则,所需数据结构及相关操作较多。

csy031117的博客 3661

收藏备用|一周搞定内部研发平台Agent接入,小白也能看懂的实战教程

我们接入Agent的载体是奥德赛研发平台,它是ICBU买家技术的TQL(淘宝基于开源GraphQL定制的版本)研发平台,核心作用是让开发者通过编写TQL脚本来实现BFF接口,日常主要用于后端开发者的接口开发、调试工作。近一年来,AI Coding工具(如cursor、claude code)快速普及,极大解放了前端开发者的生产力,于是就想着把这种高效模式带给后端同事,摆脱纯手搓代码的繁琐,因此就有了这次BFF Agent(昵称小D同学)的接入开发。

kaka0722ww的博客 504

解题报告-美团点评2017秋招笔试编程题--常见动态规划问题

晚上就要美团笔试了,在牛客上刷套美团的题练练手,四道题目全都是典型题目,经典的连题面都懒得改那种,也都不难,很基础的动态规划问题。[编程题] 大富翁游戏时间限制:1秒空间限制:32768K大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。 输...

聂小白的专栏 1719

【WRF湿度调整策略】WRF/ERA5湿度数据对比

【WRF湿度调整策略】WRF/ERA5湿度数据对比

WW、forever的博客 120

腾讯开源企业级 RAG 知识平台WeKnora,火爆了!

最近,腾讯开源了一个企业级知识平台 **WeKnora**,GitHub 已经积累了 **2.7 万+ Star**。 它不是简单的“上传文档,然后问问题”,而是把 **RAG、Agent、Wiki** 三套能力整合到了一起。

xx_nm98的博客 216

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

增强版智能知识库:Agent编排驱动RAG的架构与落地实践

在大模型应用开发中,RAG(检索增强生成)与AI Agent是两大热门方向。传统RAG仅靠向量检索加LLM生成,面对模糊意图、多步推理和工具调用时常力不从心,而Agent编排层恰好能补上这层控制能力。通过将RAG作为主干、Agent作为调度中枢,结合混合检索(BM25+向量召回)与重排器提升相关度,借助MCP协议接入数据库、文件、通讯等外部工具,并设计短期窗口与长期向量相结合的记忆机制,知识库便能从被动问答工具升级为主动认知代理。这类增强版智能知识库适用于内部知识管理、自动化报表生成、跨文档归纳等场景。围绕

weixin_29031161的博客 278

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

办公聊天软件接入 Hermes Agent 实录(一):企业微信 WebSocket 长连接 + Dify 知识库问答

本文介绍了如何将企业微信与Hermes Agent和Dify知识库问答系统集成,实现企业内部的AI助手功能。通过WebSocket长连接方式接入企业微信智能机器人,无需公网IP和回调URL配置,简化了部署流程。文章详细阐述了整体架构设计、关键机制和实际踩坑经验,包括性能优化、多应用路由和会话隔离等核心问题。作者分享了从50秒延迟优化到12秒的实用配置技巧,以及如何通过Hermes Agent调用多个Dify应用的路由实现方案,为企业IT管理员和AI应用开发者提供了可直接复用的技术方案。

xluge的博客 562

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

XXL-AI实战:Agent编排、MCP、RAG与多供应商接入的工程化落地

AI应用进入工程化阶段,模型绑定、Agent协作混乱、工具标准不一成为核心痛点。为解决这些问题,类应用服务器式的AI运行时环境被提出,以统一执行引擎抽象模型层、编排层与扩展层,实现多供应商动态路由与基于DAG的任务调度。Agent编排决定多Agent协作的可靠边界,MCP标准化外部工具接入,RAG服务特定知识库检索,三者协同支撑生产级应用。典型场景包括企业内部智能问答、工单分类、经营分析报告生成,均可通过统一底座实现可观测、可治理的落地交付。本文结合XXL-AI平台实践,从架构分层、编排原理到排错经验,提供

weixin_29056701的博客 266

RAG、LangChain、Agent 到底啥关系之Agent开发

我们首先重点介绍下LangChain这个开发框架,它是一个基于大语言模型的开源框架,通过模块化设计和丰富的组件库,目的是为了简化AI应用的开发过程。虽然不如Dify那样内置好了RAG,但是LangChain有着极高的灵活度,比如允许开发者混合使用稠密检索(BM25)和图检索(GraphRAG),甚至可以自定义重排序算法。,开发Agent的过程中,是可以选用RAG来外挂知识库,从而更多地依赖知识库内置文档内容来回答,而不是利用大模型的内部知识,从而可以更有效地减少回答的“幻觉”。然后我们可以使用内置工具。

具身机器人和通用AI 1441

AI Agent蜕变之路:接入Dify知识库,打造智能私人助理的终极指南!接入Dify知识库实现RAG!

本文介绍了如何为AI Agent接入Dify知识库实现RAG功能,区分了Agent的"记忆"与"知识"概念。通过实战演示,展示了创建知识库、编写检索工具及将新技能加入Agent的过程。最终,Agent同时拥有了记忆和知识,成为真正智能的私人助理。文章强调了"万物皆可为工具"的通用赋能方法,是学习大模型应用的实用指南。

2401_85379281的博客 1159

从传统 RAG 到知识图谱 + Agent

对于常见问题或高频检索的知识,可以直接从缓存中读取,大幅降低延迟,减少对昂贵模型资源的调用。该系统的核心目标是整合多源知识,通过在线和离线两种链路协同工作,最终由大语言模型(LLM)为用户的提问生成高质量、高精度的回答。这种结合,才能真正将AI从一个“博学的聊天机器人”,转变为能够深入业务、解决实际复杂问题的“数字化专家”。传统RAG的检索环节往往是其最大的短板,问题的根源在于其处理知识的方式过于粗糙。离线链路的工作是整个系统的基石,其核心任务是“多知识源知识库增强与扩充”。不仅是“问答系统”,更是一个。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 1980

RAG 知识库进阶:接入 Agent 与业务 Skill,把问答升级成真正的助手

本文介绍如何将RAG知识库从单机脚本升级为团队可用的服务。主要内容包括:1) 实现多知识库隔离,按部门/业务划分独立索引;2) 构建IndexManager统一管理索引的创建、更新和加载;3) 使用FastAPI封装HTTP查询接口;4) 添加基础日志功能记录请求信息。通过目录规范、索引管理和服务化改造,使RAG系统具备团队协作能力,支持API调用和基础运维。文章提供了完整代码实现和部署建议,帮助开发者将实验性Demo转化为生产可用的知识服务。

VitAgent 企业智能|企业 AI 工作台与私有化部署 853

做本地知识库时,RAG、Agent、MCP 怎么分工

搭本地知识库时,容易卡住的不是选哪个向量库,而是把 RAG、Agent、MCP 混成一件事。本文按角色拆开:谁取信息,谁决定下一步,谁接外部能力。适合做过基础 RAG、开始接触 Agent 或 MCP 的读者。读完应能判断:先补检索、先加编排,还是先接工具。

qq_36245787的博客 535
上一篇: 我的 AI 知识库开源!RAG命中率从60%到78% 经验分享
下一篇: 基于RAG技术的企业内部知识库构建实战:从数据清洗到问答推理的完整指南
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值