news 2026/4/27 11:08:25

(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/27 11:06:59

SSH agent避免每次输入passphrase连接TensorFlow主机

SSH Agent:让远程 TensorFlow 开发更流畅且安全 在深度学习项目中,开发者常常需要频繁连接远程 GPU 服务器——这些主机通常运行着基于 TensorFlow-v2.9 的容器化开发环境。为了保障安全性,我们普遍采用 SSH 密钥认证,并为私钥设…

作者头像 李华
网站建设 2026/4/26 20:00:40

电商平台高并发支付安全测试:构建可靠防线的技术实践‌

在数字经济时代,电商平台的高并发支付场景(如双11大促或节日活动)已成为常态,但这也引入了支付安全风险——包括数据泄露、交易欺诈和系统崩溃等。对于软件测试从业者而言,确保支付系统在高流量下安全可靠,…

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

基于Proteus的双踪示波器仿真操作完整示例

手把手教你用Proteus玩转双踪示波器仿真:从RC电路看透信号测量本质你有没有过这样的经历?想观察一个电容充电的全过程,却因为手头没有示波器而只能靠计算“脑补”波形;或者在讲授《模拟电子技术》时,学生一脸茫然地问&…

作者头像 李华
网站建设 2026/4/24 11:11:28

GLPI终极指南:从零开始掌握开源IT资产管理神器

GLPI终极指南:从零开始掌握开源IT资产管理神器 【免费下载链接】glpi glpi-project/glpi: 是一个用于管理 IT 资产和服务的 PHP 应用程序。适合用于 IT 资产管理和服务管理。特点是提供了简单的 API,支持多种 IT 资产和服务管理功能,并且可以…

作者头像 李华
网站建设 2026/4/26 10:43:56

5种实用方案:用DPlayer为视频内容构建版权保护体系

您的原创视频是否曾遭遇"幽灵盗版"却无从追溯?作为内容创作者,最令人痛心的是精心制作的作品被随意搬运却无法有效维护权益。今天我们将通过DPlayer这款优秀的HTML5弹幕视频播放器,为您系统性地构建多层级版权保护方案。阅读本文后…

作者头像 李华
网站建设 2026/4/26 5:39:26

高效串口通信:hal_uartex_receivetoidle_dma优化策略

高效串行通信的现代解法:用DMA空闲中断实现零拷贝、低负载的UART接收你有没有遇到过这样的场景?一个STM32项目里,串口波特率跑到了115200甚至921600,外设设备像机关枪一样往外发数据。结果主线程卡顿、任务调度失常,调…

作者头像 李华