2026/4/5 23:11:20
网站建设
项目流程
哪里做网站排名,全国企业网,河间市网站建设公司,百度浏览器官网下载并安装普通智能体接入高德MCP
mcp协议官网#xff1a;https://modelcontextprotocol.info/zh-cn/
关于什么是mcp建议大家看一下MCP官网就可以#xff0c;首页的描述就非常贴切
“AI应用的USB-C接口” 接口通用#xff0c;功能强大接入流程
官网示例#xff1a;https://docs.langc…普通智能体接入高德MCPmcp协议官网https://modelcontextprotocol.info/zh-cn/关于什么是mcp建议大家看一下MCP官网就可以首页的描述就非常贴切“AI应用的USB-C接口” 接口通用功能强大接入流程官网示例https://docs.langchain.com/oss/python/langchain/mcp添加 langchain-mcp-adapters 包来将 MCP 服务中的工具适配成 agent 使用的工具getTools 方法是异步的接入代码实现 【简单创建智能体,并将MCP服务工具注入给智能体】 可参考官方文档地址https://docs.langchain.com/oss/python/langchain/mcp importasyncioimportosfromdotenvimportload_dotenvfromlangchain_core.messagesimportHumanMessagefromlangchain_core.toolsimporttoolfrompydanticimportBaseModel,Fieldfromlangchain_mcp_adapters.clientimportMultiServerMCPClientfromlangchain_openaiimportChatOpenAIfromlangchain.agentsimportcreate_agent load_dotenv()# 1. 创建本地工具classAddInputArgs(BaseModel):a:floatField(description第一个数字,example1)b:floatField(description第二个数字,example2)tool(description对输入的两个数字执行加法运算,args_schemaAddInputArgs,return_directFalse)defadd(a,b)-float:returnab# 2. 获取 MCP 工具asyncdefget_mcp_tools():异步获取 MCP 工具,这里get_tools是异步的mcp_clientMultiServerMCPClient({amap-maps-streamableHTTP:{url:https://mcp.amap.com/mcp?keyos.getenv(AMAP_KEY),transport:http},})returnawaitmcp_client.get_tools()# 3. 主异步函数asyncdefmain():# 获取 MCP 工具print(正在获取 MCP 工具...)mcp_toolsawaitget_mcp_tools()# 汇总工具列表total_tools[add]mcp_toolsprint(f✅ 所有工具列表共{len(total_tools)}个:)fori,toolinenumerate(total_tools,1):print(f{i}.{tool.name})# 4. 初始化大模型llmChatOpenAI(modelqwen-max-latest,base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,api_keyos.getenv(DASHSCOPE_API_KEY),streamingTrue,)# 5. 创建智能体agentcreate_agent(modelllm,toolstotal_tools,system_prompt你是一个智能助手可以调用高德 MCP 工具来帮助用户完成日常的一些需求)# 6. 调用智能体使用异步调用print(\n 开始调用智能体...)# ✅ 关键修改使用 ainvoke() 而不是 invoke()resultawaitagent.ainvoke(input{messages:[HumanMessage(content我现在在上海市闵行区正矩科技大厦我的车牌是‘浙AFQ5247’,我想开车导航去人民广场请你给我规划下路线和时间。因为有禁行时间段)]})# 7. 完成调用后打印如果需要实时流式输出则需要创建 create_react_agent 这里的普通智能体只能事后打印消息记录print(\n*60)print( 对话记录:)print(*60)formsginresult[messages]:ttype(msg).__name__iftHumanMessage:print(f{msg.content})eliftAIMessage:ifhasattr(msg,tool_calls)andmsg.tool_calls:fortool_callinmsg.tool_calls:args_str, .join(f{k}{v}fork,vintool_call[args].items())print(f 调用{tool_call[name]}({args_str}))elifmsg.content:print(f{msg.content})eliftToolMessage:print(f{msg.name}→{msg.content[:100]}...)# 只显示前100字符print(*60)returnresult# 8. 运行主函数if__name____main__:# 使用 asyncio.run() 启动异步主函数asyncio.run(main())创建自己的MCP服务通过 FastMCP 创建官网链接https://docs.langchain.com/oss/python/langchain/mcp#custom-servers 【自定义MCP】 官网https://docs.langchain.com/oss/python/langchain/mcp#custom-servers fromfastmcpimportFastMCP mcpFastMCP(Math)mcp.tool()defadd(a:int,b:int)-int:Add two numbersreturnabmcp.tool()defmultiply(a:int,b:int)-int:Multiply two numbersreturna*bif__name____main__:mcp.run(transportstreamable-http)使用mcp时的配置 JSON{mcpServers:{fastmcp:{url:http://127.0.0.1:8000/mcp}}}本地AI编辑器TARE中配置MCP工具