🧡 Vibe2Trip · 在线心动旅行卡演示

「这张图的感觉,帮我安排」—— 灵感图 → 7 维审美画像 → 城市级目的地 → 飞猪真实可预订行程

下面两张整卡均由真实链路生成:百炼 Qwen-VL 读图解构 + 飞猪 flyai 真实库存 + 按天编排。价格为抓取时飞猪真实返回。页末另有「三轮活体复现」区块,演示 v3 提示词命中的条件触发能力。

案例 ① 暖金水乡灵感图 → 苏州(同里/平江路)

灵感图:assets/demo_inspiration.png(摇橹船+白墙黛瓦+金色逆光)| 出发地 上海 | 2026-11-08 | 3 天 | 2 人情侣 | 中等预算

打开完整卡片 ↗

案例 ② 冷调雪岭灵感图 → 阿勒泰(禾木/喀纳斯)

灵感图:assets/demo_inspiration_snow.png(雪岭+雾凇针叶林+一扇暖窗)| 出发地 上海 | 2026-12-05 | 3 天 | 2 人情侣 | 中等预算 | 无合适航班自动回退高铁

打开完整卡片 ↗

🔁 三轮活体复现(提示词 v3 · 2026-10-20)

上面是两张 v1 整卡(基础六段闭环)。这三张是同一张灵感图连着发三轮、把 B 档条件触发能力真跑出来的摘要——每张全文已入库(GitHub 原生渲染 Markdown),评委可与本页交叉复算,无需重跑。价格均为 flyai 真实返回。

第 1 轮 · 水乡基线
A 档招牌:读像素 → 7 维画像 → 真实可订。关键落点:没停在直觉答案「乌镇/西塘」,核验后改判皖南徽州 · 黄山市(宏村/塔川/西递)。
真实:宏村 ¥93 · G1305 上海南→黄山北 ¥193 · 南湖边客栈 ¥237/间/晚 | 含门票 ¥1,687.2(人均 ¥843.6)
查看完整卡片 ↗
第 2 轮 · 同行结构投影
同图同命定地,只把「2 人情侣」改成「2 大 1 小(5 岁)」。画像 7 维不重跑,改的是兑现方式:步行 8–10km→≤5km、塔川 3h→40min、新增午休 1.5h、迷宫巷西递换成"只有一条主干道"的唐模、水圳加全程牵手提醒。
3 人一间合计 ¥1,635.2 / 人均 ¥545.1(另给两间保底) | 诚实缺口:儿童票价与家庭房床位 flyai 未返回 → 标注未核验、不编。
查看完整卡片 ↗
第 3 轮 · 审美平替 + 心动的代价
画像不变、兑现地换到更省的近邻——黄山 · 西溪南古村落。诚实拆"命中 4 维 / 真丢 3 维":丢了图里最标志性的"桥洞与倒影成正圆"(西溪南一个桥类 POI 都没有)、丢了塔川红叶窗口。
反直觉代价:平替省门票、省接驳,却不省"住进感觉"的钱——村内 ¥348/¥385/¥466,宏村南湖边仅 ¥237,关键维平替反而贵 47%–97%。"别省这 ¥543——平替给不了你那个圆。"
查看完整卡片 ↗
三轮顺带演了"诚实是入场券"(真实故障处理,非摆拍):命中 flyai 限流 HTTP 451 → sleep 退避后再查;--hotel-bed-types "多床房" 筛选未生效 → 拒绝宣称"已核实家庭房"、改给两间保底;核对原始 JSON 无儿童票价字段 → 写"flyai 没有,我不替它编";第三轮前沙箱被重置、缓存全丢 → 主动如实交代并重装重拉、声明"本轮链接均为本次真实返回"。

复现两条硬约束:① 挂进会话的灵感图须先压到 ≤150 KB(曾以 1.5 MB 原图把单轮输入冲到 499k tokens、运行卡死;换 96 KB 压缩图后秒读);② flyai 命中 451 须 sleep 退避后再查。

📷 真跑关键帧(百炼 Managed Agent 云沙箱)

下面 4 帧是链路真实跑通的证据(数据均来自飞猪 flyai 真实返回)。 版本口径请注意:这组关键帧产出于提示词 v1(基础六段闭环)。v3 新增的条件触发能力 (审美平替 / 同行结构投影 / 拍摄窗口 / 季节时差 / 心动的代价 / 跨媒介解构 / 无图退化)属"条件命中才出现", 不在这组 v1 截图内;对应的三轮活体复现见上方 「三轮活体复现」区块(已标注 v3 与真实故障处理)。

① 智能体 read 挂载的灵感图(0.14s)+ 读取 flyai 命令文档
① 智能体 read 挂载的灵感图(0.14s)+ 读取 flyai 命令文档  agent_03_image_read.png
② 云沙箱内真实 flyai search-* 调用(search-poi / search-hotel / search-train)
② 云沙箱内真实 flyai search-* 调用(search-poi / search-hotel / search-train)  agent_04_flyai_realdata.png
③ 对话内输出的心动旅行卡全文(含 7 维画像与可预订清单)
③ 对话内输出的心动旅行卡全文(含 7 维画像与可预订清单)  agent_05_card_in_chat.png
④ 会话产物页:心动旅行卡 md 文件 + 绑定进会话的灵感图
④ 会话产物页:心动旅行卡 md 文件 + 绑定进会话的灵感图  agent_06_artifacts.png

🧪 三步自助复现(把验证成本压到三次复制粘贴)

上面两张卡是真的(百炼 Qwen-VL 读图 + 飞猪 flyai 真实库存 + 按天编排)。这一节解决"我想自己验一遍"——照抄下面三步即可,不需要翻仓库找文件。

在百炼建一个 Managed Agent,粘贴系统提示词

控制台:应用/智能体 → Managed Agent → 新建,模型选支持图片输入的多模态(Qwen3.8-Max / Qwen3.8-Flash,或任一 qwen-vl 系列)。系统提示词整段复制这个文件:

https://raw.githubusercontent.com/qq1308194619/vibe2trip/master/agent/managed_agent_system_prompt.md

或直接看渲染版:agent/managed_agent_system_prompt.md

新会话里装飞猪技能,并注入 Key

在会话输入框发这句,等它回复安装成功(云沙箱内执行,官方 skill 自己做逐请求签名):

npx skills add alibaba-flyai/flyai-skill

然后在该会话的「环境变量」里加一行 FLYAI_API_KEY(申请入口 flyai.open.fliggy.com/console)。

⚠️ 两个坑,都是真踩出来的:① Key 要配在会话级环境变量,只配在智能体上可能不生效,未生效时 flyai 会静默回落到公共体验 Key且不报错(表现为价格变成 ¥1xx 掩码);② 别用百炼「密钥库」注入——它会替换 Authorization 头,而 flyai 对该头签名,替换后 401。

上传一张灵感图,发这段话

把图上传到会话文件(会挂载到 /uploads/),仓库自带两张可用:assets/demo_inspiration.png(暖金水乡)、assets/demo_inspiration_snow.png(冷调雪岭)。然后把下面整段发出去:

请用 read 读取 /uploads/demo_inspiration.png,按系统提示词输出:审美画像 7 维 → 命定目的地(城市级)→ flyai 真实数据 → 排满每天 → 心动旅行卡。 上海出发,2 人情侣,中等预算,2026-11-08 起 3 天。

想验泛化性就换那张雪岭图(它应命中完全不同的目的地);想验同行结构投影,把「2 人情侣」改成「2 大 1 小,孩子 5 岁」重发——画像 7 维不变,但住宿/节奏/活动应被重排。

(可选)本地离线跑,不碰控制台

只要有 Node ≥18 的可执行文件,不需要 npm/npx(脚本直取飞猪官方自包含 bundle):

node scripts/setup_flyai.mjs --version 1.0.16 cp .env.example .env # 填 DASHSCOPE_API_KEY(必填)、FLYAI_API_KEY(选填) node scripts/vibe_trip.mjs --image assets/demo_inspiration.png --from 上海 --date 2026-11-08 --days 3 --people "2人情侣"

产物:outputs/<目的地>_<日期>/card.html。flyai 版本会影响能拿到哪些字段,所以这里固定写 1.0.16。

诚实说明:本页是纯静态 GitHub Pages,不能在浏览器里替你真跑一次(真跑要消耗你自己的百炼额度)。我们不做"看着能试、实际是录屏或假数据"的伪交互——那恰好会砸掉这个作品主打的东西。