本文同步更新于公众号:AI开发的后端厨师

在这里插入图片描述

出行规划新范式:让AI智能体成为你的全能旅行管家

每次规划出行,你是否也厌倦了在购票软件、地图App和餐馆推荐平台间反复横跳?查完车次查路线,看完时间还得想中午吃什么——这种碎片化的体验即将成为过去。本文将分享如何利用 Eino框架 打造一个真正的“全能出行管家”,它通过集成多个专业工具,让你用一句自然语言指令,就能获得从车票到路线再到餐饮的完整出行方案。

一、痛点与方案:从“手工拼接”到“智能集成”

传统的出行规划是一个典型的多源信息整合难题:

  1. 信息孤岛:车票、实时地图、本地服务分属不同平台。
  2. 决策依赖:选哪趟车次取决于目的地和耗时,而耗时又需要地图查询来确认。
  3. 体验割裂:用户需要手动对比、记忆和拼接信息。

我们的解决方案是构建一个能自主调用多种工具的智能体(Agent)。这个智能体不仅能听懂“明天中午前从北京到天津”这样的复杂需求,还能自动执行以下链条式任务:

  • 步骤一:调用12306 MCP工具,查询符合条件的车次。
  • 步骤二:调用百度地图MCP工具,计算从你家到北京南站、以及从天津站到目标餐馆的路线与时间。
  • 步骤三:综合所有信息,推荐一个时间充裕、衔接顺畅的完整出行方案。

这背后依赖的,正是Eino框架对多工具协同能力的强大支持。

二、核心升级:一触即连的多MCP工具集成

本次迭代最核心的改进,是让智能体能够同时接入并管理多个MCP(Model Context Protocol)服务。以下代码展示了如何优雅地集成多个外部工具源:

func GetMultiMCPTool(ctx context.Context, serverUrls []string) []tool.BaseTool {
    var toolList []tool.BaseTool
    for _, url := range serverUrls {
        // 1. 为每个MCP服务器创建独立的SSE客户端
        cli, err := client.NewSSEMCPClient(url)
        if err != nil {
            log.Fatal("连接MCP服务失败:", err)
        }
        
        // 2. 启动连接并初始化会话
        err = cli.Start(ctx)
        _, err = cli.Initialize(ctx, mcp.InitializeRequest{})
        
        // 3. 获取该服务器提供的所有工具,并合并到总列表
        tools, err := mcpp.GetTools(ctx, &mcpp.Config{Cli: cli})
        toolList = append(toolList, tools...)
    }
    return toolList // 返回一个包含所有跨平台能力的工具集合
}

代码精要

  • 灵活配置:通过传入的 serverUrls 数组,可以动态连接任意多个MCP服务器(如百度地图、12306等)。
  • 统一抽象:无论后台是地图API还是票务系统,最终都转化为统一的 tool.BaseTool 接口。对智能体而言,它只是在调用不同的“技能”,无需关心技能背后的实现。
  • 生态扩展:这种设计意味着未来可以轻松接入天气、酒店、景点门票等更多MCP服务,让智能体的能力持续生长。
三、效果实测:体验“一句话规划”的威力

当智能体装备了地图和票务工具后,其解决问题的能力发生了质变。我们提出一个复合需求:“帮我查一下明天从北京到天津的高铁,我想在午饭前到达,并在天津站附近吃午饭。”

智能体的思考与行动链条如下:

  1. 理解与分解需求:智能体首先识别出三个关键子任务:查询高铁车次、确保“午饭前到达”的时间约束、寻找天津站附近的餐馆。
  2. 执行工具调用
    • 调用 12306 MCP工具,查询次日北京至天津的高铁班次。
    • 调用 百度地图MCP工具,分两步操作:首先估算从天津站出站及周边步行时间,以确定最晚到达车次;然后搜索“天津站”周边的餐饮信息。
  3. 综合决策与回复:智能体并未机械地罗列所有车次和餐馆。它会进行时间推算,例如:“G8911次列车09:44抵达天津,出站后步行至‘津门老菜馆’约需10分钟,完全满足您午饭前抵达并用餐的需求。” 并主动提供备选方案:“如果您想更从容些,稍早一点的G8803次也是不错的选择。”

整个过程,用户只需提出一句自然的请求,即可获得一个可立即执行的、包含车次、时间、地点、餐饮建议的连贯方案。

四、架构启示与未来展望

本次实践证明了基于Eino框架构建的智能体,能够出色地扮演**“复杂工作流调度中枢”** 的角色。其成功的关键在于:

  1. 解耦的架构:智能体的“大脑”(模型)与“手脚”(工具)分离,二者通过标准接口协作,使得工具可以独立扩展和替换。
  2. 动态的推理:智能体并非预编流程,而是根据对用户请求的实时理解,动态地决定调用哪个工具、传递什么参数,形成了真正的“思考-行动”链。

展望未来,这个出行管家还能如何进化?

  • 个性化推荐:通过记忆用户偏好(如“喜欢靠窗座位”“偏好清淡饮食”),提供定制化方案。
  • 实时动态调整:接入实时交通数据,在发生延误时主动推荐备用方案。
  • 成本最优规划:同时考虑票价、打车费用、时间成本,生成“性价比”最高的方案。

技术的最终目标是服务于人。通过将多步骤、跨平台的繁琐操作封装成一个简单的智能体交互,我们正让出行规划变得前所未有的轻松和高效。这不仅是功能的叠加,更是体验的重塑。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐