通义灵码2.5+qwen3——节假日抢票不用愁,基于12306-MCP实现个人火车票智能查询小助手!

简介: 本项目作为通义灵码2.5的深度实践案例,充分展现了通义灵码2.5编程智能体调用MCP实现大模型智能化工具的强大优势。

本文已同步发布到:

CSDN:  https://blog.csdn.net/ailuloo/article/details/148319336?spm=1001.2014.3001.5502

知乎:https://zhuanlan.zhihu.com/p/1913611688420291341

稀土掘金:https://juejin.cn/spost/7511904422524747812

博客园: https://www.cnblogs.com/wdracky/p/18910480

51CTO:   https://blog.51cto.com/u_17370638/13967792

简书:  https://www.jianshu.com/p/2505b1902a07?v=1749027356120

思否社区: https://segmentfault.com/a/1190000046551259

支付宝开发平台: https://open.alipay.com/portal/forum/post/210901033

华为云社区:https://bbs.huaweicloud.com/blogs/453674

小红书: https://www.xiaohongshu.com/explore/6840f1c000000000210001c3?xsec_token=GB-pGHn9IXG8ef2tMQyixWEZM0gNjPIOT0hmRd9zKx9-0=&xsec_source=pc_creatormng

头条号: https://www.toutiao.com/article/7512277006252294708/?log_from=659d72aea434_1749089115920

sdk.cn社区:  https://www.sdk.cn/details/9Od1N8rLWxANq64Eqp?previewId=zwAKmM8G5JOR6XNejZ

慕课手记:https://www.imooc.com/article/381705


在日常生活中,12306 是中国铁路售票系统的官方平台。为了提升购票效率、自动化查询余票信息以及获取车站代码等功能,我们希望通过使用智能体编程方式,结合 MCP(Model-as-a-Service)技术实现,能随时随地访问 12306 提供的服务接口,并能够进行智能询问车次车票等信息,提高查询的简便性。

在这个过程中,我使用了阿里巴巴推出的智能编程助手——通义灵码,它帮助我快速构建项目结构、编写代码逻辑,并协助调试前后端交互中的常见问题。

通义灵码3.0新上线了,其编程智能体模式,具备自主决策、环境感知、工具使用等能力,可以根据开发者的编码诉求,使用工程检索、文件编辑、终端等工具,进行工程内多个文件的修改,端到端地完成编码任务。并且拥有丰富的MCP资源库,可调用3000多个MCP完成各种智能工作。

image.gif

一、项目体验过程

现在我们来体验一下,通过VSCode插件找到并安装最新版本的通义灵码。

image.gif 编辑

安装时需要选择信任发布者并安装(Trust Publisher & Install)。

    image.gif

    我们在对话框里面发现可以使用MCP功能,就是点击下面这个MCP工具按钮。

    image.gif

    我们知道modelscope社区的MCP广场有很多优质的MCP资源,通过咱们的通义灵码可以直接访问MCP广场上的服务。

    这里我们找到12306-mcp这个MCP并部署。如下图所示:

    image.gif

    安装完成后在我的服务中可以找到已安装的MCP。

    找到我们的12306-mcp。可以看到它提供的功能如下,非常丰富。

    image.gif

    我们在通过与通义灵码智能体对话进行体验。

    我直接提问智能体,模型用Qwen3。

    Qwen3 是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型,是 Qwen(通义千问)系列的最新一代版本。相比之前的 Qwen、Qwen2 等版本,Qwen3 在多个方面进行了重大升级和优化,具备更强的语言理解能力、生成能力、多模态支持以及更广泛的适用场景。

    我问他:请帮我查询一下今天下午17:30之前武汉到广州的火车票。会话回答结果如下:

    image.gif

    现在我们发现智能体已经能正常执行MCP,查询到今天下午17:30之前从武汉到广州的火车票信息。在17:30之前有多个车次可供选择。

    二、项目深度开发过程

    但是,这个刚才这个智能体的对话界面需要打开VSCode才能访问,我还想开发出能通过浏览器直接访问的界面,并且向智能体随时随地提问了解车次信息。

    该如何完成呢?

    于是,我打算使用通义灵码的智能体开发功能。

    本项目作为通义灵码2.5的实践案例,展现了AI辅助开发在复杂业务系统中的革命性突破。通过深度集成12306 MCP服务体系,我们将构建一个融合智能决策环境感知自主优化的新一代火车票查询系统。

    image.gif

    开发过程如下:

    首先需要了解这个12306-mcp的详细功能参数及特性。

    (可选择)来到modelscope社区,社区界面找到这个mcp,可以看到它的详细功能介绍。

    image.gif

    可以看到它的mcp配置信息以及工具测试集。

    image.png image.gif

    这里已经介绍得非常清晰,该如何配置和测试使用。

    现在,我们回到VSCode的对话框界面中继续提问,要求智能体为我们编程。

    先梳理一下开发目标,本项目的主要目标包括:

    • 构建一个基于 Node.js 的本地 HTTP 服务器,用于提供前端页面;
    • 创建一个代理服务器以转发请求到 12306-MCP 接口;
    • 实现 JavaScript 客户端对 MCP 接口的调用;
    • 解决 CORS、端口占用、API 转发失败等常见问题;
    • 提供完整的测试流程,确保功能可用性。

    刚才我们已经深度了解了MCP,现在可以要求通义灵码使用这个MCP服务。

    与通义灵码对话演示如下:

    image.png image.gif

    后台我们可以启用Ollama启动一个本地qwen的大模型,也可以用远端模型链接。这里作为演示,我们大模型使用本地的qwen2.5:7b模型。

    image.gif

    开发完成后,一步步根据通义灵码2.5的提示完成本地环境的部署:

    ✅1. 基础服务搭建

    • 搭建本地 HTTP 服务器(server.js):
    • 监听地址:http://localhost:3000/
    • 提供 HTML 页面和静态资源访问。
    • 创建代理服务器(proxy-server.js):
    • 监听地址:http://localhost:3001/
    • 解决浏览器 CORS 跨域问题;
    • 支持转发以下接口请求:
    • GET /api/current-date → 获取当前日期
    • POST /api/station-code-of-citys → 查询城市车站代码
    • POST /api/tickets → 查询余票信息

    ✅ 2. 前端功能实现

    • JavaScript 客户端(12306-mcp-client.js):
    • 封装对 MCP 接口的调用;
    • 实现异步获取当前日期;
    • 根据城市名获取车站代码;
    • 查询指定出发地与目的地之间的余票;
    • 错误处理机制(网络异常、接口失败等);
    • 控制台日志输出调试信息。
    • 前端页面(index.html):
    • 展示测试页面;
    • 自动加载 JS 客户端脚本;
    • 显示基本样式与结果区域。

    ✅ 3. 开发辅助工具

    • 环境检查脚本(check-environment.js):
    • 验证 Node.js 是否安装;
    • 输出环境信息。
    • 启动脚本(start-ticket-assistant.js):
    • 并行启动主服务器与代理服务器;
    • 输出清晰运行日志。
    • 配置文件(config.js):
    • 存储服务地址等配置项。

    ✅ 4. API 请求流程

    • 浏览器通过 JS 客户端请求本地代理;
    • 代理服务器将请求转发到 12306-MCP;
    • 返回数据后展示在控制台或页面中。

    可以看到通义帮我们开发好的程序框架。

    image.gif

    项目结构说明如下:

    12306tray/
    ├── 12306-mcp-client.js     # JS客户端逻辑
    ├── index.html              # 前端测试页面
    ├── server.js               # 主服务器
    ├── proxy-server.js         # 代理服务器
    ├── check-environment.js    # 环境检测
    ├── start-ticket-assistant.js # 启动脚本
    ├── config.js               # 配置文件
    ├── package.json            # 依赖管理
    ├── README.md             # 项目说明
    └── 404.html              # 错误页面

    image.gif

    API 调用流程设计

    步骤 组件 动作
    1 浏览器页面 (index.html) 加载 12306-mcp-client.js
    2 JS 客户端 (12306-mcp-client.js) 发起异步请求到本地代理服务器
    3 本地代理 (proxy-server.js) 转发请求到目标 MCP 接口
    4 MCP 服务 返回 JSON 数据
    5 代理服务器 将数据原样返回给前端
    6 前端页面 在控制台或页面上展示结果

    三、常见问题解决方案

    项目有比较复杂的后台配置,但好在我们可以使用通义灵码对话引导完成服务的配置、启动集调试。以下是我实践过程中遇到的几个主要问题。大家也可以跳过不看。

    1. CORS 跨域问题

    使用代理服务器设置响应头:

    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type');

    image.gif

    2. 端口冲突问题

    • 30003001 端口被占用:

    使用命令查找占用进程:

    netstat -ano | findstr :3000

    image.gif

    使用命令终止进程:

    taskkill /PID <pid> /F

    image.gif

    3. 请求体处理不完整问题

    使用异步方式读取完整请求体:

    async function readRequestBody(req) {
      let data = '';
      for await (const chunk of req) data += chunk;
      return data;
    }

    image.gif

    四、项目部署与结果呈现

    分别打开两个不同的窗口启动服务:

    node server.js # 启动主服务器

    node proxy-server.js # 启动代理服务器

    执行命令情况如下:

    image.gif 编辑

    image.gif 编辑

    然后,打开浏览器访问6001端口(自己设置的)

    http://localhost:6001/

    从浏览器访问测试项目开发好的程序界面如下:

    image.gif

    可以看到几个主要的MCP功能都已经集成过来,并且本项目已经开发提供了与后台大模型相连接的智能查询功能。依次测试相关功能体验如下:

    image.gif

    最后是智能查询功能,它体现了大模型的智能逻辑,不必再去一条条点选我们的需求,而是自然语言式对话即可帮助我们高效快捷地查询(数据仅供测试):

    image.gif

    可以看到模型能准确了解到了我们的需求,并且成功调用了12306-MCP功能,输出了武汉到广州的车次信息。实现了我们预定的开发目标。

    五、未来拓展计划

    1. 智能余票监控系统

    借助通义灵码2.5帮助实现四维监控策略,从此查票抢票不用发愁:

    image.gif 编辑

    2. 全面功能升级

    功能 描述
    页面 UI 升级 添加输入框让用户选择出发地、目的地、日期等
    表单提交支持 用户手动触发查询操作
    余票结果展示 以表格形式显示车次、余票数量等信息
    错误提示优化 当没有查询结果时给出友好提示
    本地缓存机制 减少重复请求,提升性能
    Docker 化部署 构建容器镜像,便于移植与发布

    六、项目体验总结

    本项目作为通义灵码2.5的深度实践案例,充分展现了通义灵码2.5编程智能体调用MCP实现大模型智能化工具的强大优势。

    1. 代码生成维度

    通义灵码2.5展现出远超预期的代码理解能力:

    • 精准接口映射:自动将MCP文档转换为可执行代码
    • 类型安全转换:智能生成数据验证逻辑

    2.上下文感知维度

    通义灵码2.5展现出色的项目理解能力:

    • 跨文件关联:准确追踪数据流经多个模块的路径
    • 模式识别:自动发现并统一项目中相似的接口调用模式

    3.决策优化维度

    在以下关键场景实现突破:一是缓存策略选择:根据接口特性推荐最优缓存方案;二是错误恢复路径:提供分级 fallback 机制建议;三是性能瓶颈预判:标记潜在的性能敏感区域。

    本项目体验了人机协作范式进化,我们观察到通义灵码2.5带来的三种新型工作模式

    1. 领航员模式:AI主导完成标准模块开发
    2. 协作者模式:人机并行处理复杂逻辑
    3. 审核员模式:AI持续监控代码质量

    本项目不仅验证了通义灵码2.5在复杂业务场景下的实用性,更预示着软件开发范式即将迎来革命性变革。通过实践可以发现,AI辅助开发在提升工程效率系统质量创新速度三个维度的卓越价值。期待在未来继续深化与通义灵码的合作,共同探索智能编程的无限可能。


    相关文章
    |
    22天前
    |
    传感器 人工智能 IDE
    通义灵码用户说 | 编程智能体+MCP加持,秒查附近蜜雪冰城
    通义灵码现已全面支持Qwen3,新增智能体模式,具备自主决策、环境感知、工具使用等能力,可端到端完成编码任务。支持问答、文件编辑、智能体多模式自由切换,结合MCP工具与记忆功能,提升开发效率。AI IDE重构编程流程,让开发更智能高效。
    299 20
    |
    27天前
    |
    人工智能 安全 Java
    AI Agent 的工程化被低估了
    本文探讨了AI应用工程化的关键作用与实现路径,将其分为产品工程和技术工程两大部分。产品工程关注用户体验与交互设计,包括需求建模、UI/UX设计、系统提示词优化及反馈闭环构建,确保AI“能用、好用”。技术工程则聚焦系统稳定性与扩展性,涵盖架构模块化、工具调用机制、流量控制、数据管理及可观测性建设,保障AI应用“快、稳、强”。两者协同决定了AI Agent的实用性与规模化潜力,为行业提供了落地参考。
    392 30
    AI Agent 的工程化被低估了
    |
    22天前
    |
    人工智能 自然语言处理 算法
    编程简单了,部署依旧很难|Karpathy 演讲的 5 点解读
    本文总结了 Andrej Karpathy 在 YC AI Startup School 的分享核心观点,涵盖软件发展的三个阶段、LLM 的定位与挑战、Agent 的产品工程思路以及编程与部署的未来趋势。内容适合 AI 领域从业者参考,强调通过提升工程能力实现 AI 应用的稳定性与可控性。完整视频链接附于文末,便于深入学习。
    175 15
    |
    1月前
    |
    人工智能 IDE 搜索推荐
    通义灵码2.5评测:从编程智能体到记忆感知的AI编码革命
    通义灵码2.5版本更新带来了多项新功能,包括Lingma IDE的开箱即用体验、编程智能体模式实现端到端编码任务、MCP工具集成扩展AI助手能力以及Qwen3模型升级大幅提升代码生成准确性和效率。此外,新增长期记忆与上下文感知功能,使开发更个性化和高效。尽管存在一些局限性,如复杂业务逻辑仍需人工干预,但整体显著提升了开发效率。官方还提供了高质量视频课程助力用户学习。
    455 10
    |
    16天前
    |
    人工智能 Kubernetes 调度
    基于 AI 网关和 llmaz,提升 vLLM 推理服务可用性和部署易用性的实践
    本文介绍了如何使用 llmaz 快速部署基于 vLLM 的大语言模型推理服务,并结合 Higress AI 网关实现流量控制、可观测性、故障转移等能力,构建稳定、高可用的大模型服务平台。
    197 16
    |
    2月前
    |
    人工智能 Java API
    MCP客户端调用看这一篇就够了(Java版)
    本文详细介绍了MCP(Model Context Protocol)客户端的开发方法,包括在没有MCP时的痛点、MCP的作用以及如何通过Spring-AI框架和原生SDK调用MCP服务。文章首先分析了MCP协议的必要性,接着分别讲解了Spring-AI框架和自研SDK的使用方式,涵盖配置LLM接口、工具注入、动态封装工具等步骤,并提供了代码示例。此外,还记录了开发过程中遇到的问题及解决办法,如版本冲突、服务连接超时等。最后,文章探讨了框架与原生SDK的选择,认为框架适合快速构建应用,而原生SDK更适合平台级开发,强调了两者结合使用的价值。
    2900 31
    MCP客户端调用看这一篇就够了(Java版)