告别API,一句话查票!5分钟上手IntentOrch+MCP智能出行助手

0 阅读4分钟

告别API,一句话查票!5分钟上手IntentOrch+MCP智能出行助手

过去你需要:写正则提取参数 → 对接12306非标准API → 处理脏数据 → 手写排版……
现在,只需一句自然语言,AI 自动完成车票查询。

先看效果:一句话 → 完整车次表

$ node index.js

输入:

查询 2026  4  15 日北京到上海的所有高铁票

终端直接打印出所有高铁车次、席位、价格和余票(真实运行输出):

2026-04-11_213942_805.png

整个过程完全由 AI 自动完成意图解析、工具选择、参数映射,零规则、零硬编码。

📌 本文是 IntentOrch 系列第二篇。第一篇介绍见:《【开源】IntentOrch:意图驱动的MCP编排引擎》


三步搭建你的“自然语言查票助手”

1️⃣ 初始化项目(解决最常见的模块警告)

mkdir intentorch-12306 && cd intentorch-12306
npm init -y
npm install @mcpilotx/intentorch dotenv

package.json 中添加 "type": "module" 消除 MODULE_TYPELESS_PACKAGE_JSON 警告:

{
  "name": "intentorch-12306",
  "type": "module",
  "dependencies": {
    "@mcpilotx/intentorch": "^latest",
    "dotenv": "^16.0.0"
  }
}

2️⃣ 配置 AI 模型 + 连接 MCP 服务

创建 .env 文件存放 DeepSeek API Key(也支持 OpenAI / Ollama):

DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx

新建 index.js,核心代码如下:

import { createSDK } from '@mcpilotx/intentorch';
import dotenv from 'dotenv';

dotenv.config();

async function main() {
    const sdk = createSDK();

    // 配置 AI 大模型
    await sdk.configureAI({
        provider: 'deepseek',
        apiKey: process.env.DEEPSEEK_API_KEY,
        model: 'deepseek-chat'
    });

    // 连接 12306 MCP Server(通过 stdio 子进程)
    await sdk.connectMCPServer({
        name: '12306-mcp',
        transport: {
            type: 'stdio',
            command: 'npx',
            args: ['-y', '12306-mcp']
        }
    });

    // 初始化云端意图引擎(自动注册所有工具)
    await sdk.initCloudIntentEngine();

    // 自然语言直接执行
    const result = await sdk.executeWorkflowWithTracking(
        "查询 2026 年 4 月 15 日北京到上海的所有高铁票"
    );

    console.log('查询结果:', result.result);
}

main().catch(console.error);

3️⃣ 运行!

node index.js

第一次运行会自动下载 12306-mcp 包,稍等片刻即可看到整齐的火车时刻表。
🎉 你已实现了一个生产可用的自然语言查询接口,全程未写任何解析逻辑!


背后发生了什么?(轻原理,不吓人)

IntentOrch 的 Cloud Intent Engine 将整个过程抽象为四个阶段:

🧠 意图解析
LLM 将自然语言转换为结构化意图(日期、出发地、目的地、交通工具类型)。

🎯 工具选择
根据 MCP Server 提供的工具列表(如 get-tickets),AI 自动匹配最合适的工具,置信度 1.0。

⚙️ 工具调用
通过 stdio 协议调用 12306 MCP,获取原始数据。

📦 结果返回
将 MCP 返回的文本或 JSON 直接交还给你,无需二次格式化。

从运行日志可以看到:引擎解析意图 → 记录反馈 → 选择工具 get-tickets → 649ms 完成调用 → 输出车次列表。

💡 为什么这对开发者极具价值?
传统方案需要手写 N 个 if/else、正则、参数校验,而 IntentOrch 让 AI 成为“语义路由器”。你只需要提供 MCP 工具(或使用社区已有的),剩下的交给意图引擎。


换一个 MCP 场景:这是通用范式

12306 只是一个例子。假如你想查询 GitHub Issues,只需把 connectMCPServer 换成:

await sdk.connectMCPServer({
    name: 'github-mcp',
    transport: {
        type: 'stdio',
        command: 'npx',
        args: ['-y', '@modelcontextprotocol/server-github']
    }
});

然后自然语言输入 “列出我仓库下未解决的 bug”,AI 就会自动调用 list_issues 工具。其余代码一行不改

这就是 IntentOrch 的“一次接入,任意领域”的威力。更多 MCP Server 可以在 MCP 官方 Registry 发现。


常见踩坑与解决方案

🔧 问题1: (node:xxxx) Warning: Module type of file...
✅ 解决:在 package.json 中添加 "type": "module"

🔧 问题2: jq: command not found (如果你在脚本里用了 jq)
✅ 解决:使用 Node.js 原生 JSON.parse 替代,或安装 jqapt-get install jq / brew install jq)。

🔧 问题3: MCP Server 启动超时或找不到命令
✅ 解决:确保网络通畅,手动执行 npx -y 12306-mcp 测试;Node.js 版本建议 v18+。


进阶玩法:让助手更“聪明”

  • 多 MCP 协同:同时连接天气 MCP + 12306 MCP,问“这周末北京去上海天气好么?顺便查高铁票”。
  • 自定义 MCP 工具:用 MCP 协议 封装公司内部 API,瞬间让自然语言驱动内部系统。
  • 可观测性集成:IntentOrch 内置反馈机制(Feedback recorded),可收集用户行为持续优化意图解析准确率。

立即体验:一键复现项目

为了让开发者零摩擦体验,我们准备了可直接运行的 GitHub 模板仓库:

👉 12306-demo

克隆后只需:

cp .env.example .env          # 填入你的 API Key
npm install
npm start

即可看到车次清单。


互动时间

你想用 IntentOrch + MCP 做什么?是自动处理工单、操作数据库,还是控制智能家居?

欢迎在评论区留言你的创意,一起探讨实现的可能性~
如果这篇文章对你有帮助,欢迎点赞、收藏、关注,后续会带来更多 IntentOrch 和 MCP 生态的实战分享。


本文由 IntentOrch 社区联合创作。转发请注明出处。

© 2026 IntentOrch · 让自然语言驱动一切工具