news 2026/4/23 14:05:19

(10-5-05)基于MCP实现的多智能体协同系统:检索增强生成工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(10-5-05)基于MCP实现的多智能体协同系统:检索增强生成工具

文件agent_mcp/tools/rag_tools.py是本项目中的 RAG(检索增强生成)工具模块,主要功能是提供一个自然语言查询接口,让已认证的代理可以向项目RAG系统提问。它通过验证代理身份、接收查询文本,调用核心RAG系统逻辑处理查询并返回结果,实现了基于项目索引文档、上下文和元数据的智能问答功能,同时记录审计日志以确保操作可追溯。

async def ask_project_rag_tool_impl(arguments: Dict[str, Any]) -> List[mcp_types.TextContent]: agent_auth_token = arguments.get("token") query_text = arguments.get("query") requesting_agent_id = get_agent_id(agent_auth_token) if not requesting_agent_id: return [mcp_types.TextContent(type="text", text="未授权:需要有效的代理令牌")] if not query_text or not isinstance(query_text, str): return [mcp_types.TextContent(type="text", text="错误:查询文本是必需的,且必须是字符串。")] # 记录审计日志(main.py:1578) log_audit(requesting_agent_id, "ask_project_rag", {"query": query_text}) logger.info(f"代理 '{requesting_agent_id}' 正在向项目RAG提问:'{query_text[:100]}...'") try: # 调用来自features/rag/query.py的核心RAG系统函数 # 该函数(query_rag_system)处理所有复杂的RAG逻辑 answer_text = await query_rag_system(query_text) # query_rag_system已内部处理错误并返回字符串 return [mcp_types.TextContent(type="text", text=answer_text)] except Exception as e: # 此捕获块专门用于此tool_impl包装器中的意外错误, # 不包括query_rag_system内部的错误,因为这些错误已由其内部处理 logger.error(f"代理 '{requesting_agent_id}' 的ask_project_rag_tool_impl中发生意外错误:{e}", exc_info=True) return [mcp_types.TextContent(type="text", text=f"处理您的RAG查询时发生意外错误:{str(e)}")] # --- 注册RAG工具 --- def register_rag_tools(): register_tool( name="ask_project_rag", description="询问有关项目的自然语言问题。系统使用RAG(检索增强生成)从索引文档、上下文和元数据中查找相关信息,以合成答案。", input_schema={ "type": "object", "properties": { "token": {"type": "string", "description": "发出查询的代理的认证令牌。"}, "query": {"type": "string", "description": "要询问的有关项目的自然语言问题。"} }, "required": ["token", "query"], "additionalProperties": False }, implementation=ask_project_rag_tool_impl ) # 导入此模块时调用注册函数 register_rag_tools()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 14:48:06

ormpp:现代C++ ORM库的优雅数据库操作指南

ormpp:现代C ORM库的优雅数据库操作指南 【免费下载链接】ormpp modern C ORM, C17, support mysql, postgresql,sqlite 项目地址: https://gitcode.com/gh_mirrors/or/ormpp 在当今的软件开发中,数据库操作是不可或缺的一环。ormpp作为一个基于C…

作者头像 李华
网站建设 2026/4/23 10:22:50

快速理解JLink驱动安装方法在Windows上的流程

手把手教你搞定J-Link驱动安装:从零开始的Windows实战指南 在嵌入式开发的世界里,调试器就是工程师的“听诊器”。而 J-Link ,作为SEGGER出品的高性能调试探针,早已成为STM32、NXP、GD32等ARM Cortex-M芯片开发中的标配工具。但…

作者头像 李华
网站建设 2026/4/23 11:47:10

自考必备!8个AI论文工具助你轻松搞定毕业论文格式规范

自考必备!8个AI论文工具助你轻松搞定毕业论文格式规范 AI 工具,让论文写作不再难 在自考的道路上,毕业论文往往是许多学生最头疼的一关。从选题到格式规范,每一个环节都需要耗费大量时间和精力。而随着 AI 技术的发展,…

作者头像 李华
网站建设 2026/4/23 11:46:25

Git cherry-pick将关键修复迁移到TensorFlow分支

Git cherry-pick 将关键修复迁移到 TensorFlow 分支 在企业级 AI 平台的日常维护中,一个看似微小的算子 bug 可能会导致整个模型训练任务失败,甚至影响线上推理服务的稳定性。尤其是在使用长期支持版本(如 TensorFlow v2.9)进行生…

作者头像 李华
网站建设 2026/4/23 11:47:05

优化hal_uart_transmit驱动性能的关键技术全面讲解

如何让串口通信不再“拖累”CPU?——深入剖析HAL_UART_Transmit的性能优化实战在嵌入式开发的世界里,UART 几乎是每个工程师最早接触、也最常使用的外设之一。无论是打印调试信息、连接 GPS 模块,还是与传感器通信,都离不开它。而…

作者头像 李华
网站建设 2026/4/23 5:33:05

Apache Arrow实战指南:5大应用场景解决企业级数据处理瓶颈

Apache Arrow实战指南:5大应用场景解决企业级数据处理瓶颈 【免费下载链接】arrow Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing 项目地址: https://gitcode.com/gh_mirrors/arrow13/arrow 当你的数…

作者头像 李华