为商务出行生成可转发的差旅费用预估,明确说明未实际预订。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "travel-cost-estimator" 技能: 1. 下载 https://raw.githubusercontent.com/microsoft/cat-agent-skills/main/submissions/travel-cost-estimator/SKILL.md 2. 保存为 ~/.claude/skills/travel-cost-estimator/SKILL.md 3. 装好后重载技能,告诉我可以用了
请帮我估算下周从上海去深圳拜访客户两天的差旅费用。按公司允许的舱位和常住酒店偏好,只做价格查询,不要预订,并输出一份可转发给经理审批的预算说明。
一份包含机票、酒店以及基于历史报销估算的餐饮/地面交通等费用的差旅预算,并明确写明“Nothing booked.”。
我需要一个团队异地下线活动的人均差旅费用预估。请先确认出发机场、目的地、日期、酒店偏好和是否可能租车,然后只查询价格,不进入任何预订或确认页面。
一份结构化的人均费用预估,列出航班、酒店及非预订项的估算依据,便于内部讨论和审批。
经理要我先报一个去北京出差的大概费用。请根据企业订票工具里的实时机酒价格,加上我过往已报销的餐饮和停车水平,生成一个可直接转发的费用估算。
一份简明的可转发费用说明,包含总额、分项费用和估算来源,但不执行任何预订操作。
员工或经理在提交出差申请前,可先查询实时机票和酒店价格,并补充餐饮、地面交通、停车等估算,快速得到可审批的预算数字。
需要安排客户拜访但尚未确定是否成行时,可先生成一份 defensible 的差旅估算,便于转发给主管或同事讨论。
企业订票工具只提供机酒价格时,该技能会参考用户过往已获报销记录,对餐饮、地面交通和停车等非预订项做基准估算。
文档说明该技能如何基于企业订票工具中的实时机票、酒店价格,以及用户过往报销记录中的餐饮、地面交通和停车数据,生成可转发、可审批的差旅费用预估。README 重点强调只做查询和报价、绝不进入预订确认流程,并要求先确认出发机场、偏好与日期,再通过公司 SSO 入口访问系统。
Produce a defensible trip estimate from live fares and rates, not guesses, and present it so the user can forward or approve it in seconds.
The estimate has two halves. Flights and hotels come from the corporate booking tool. Ground transport, meals, and parking are not in the booking tool, so they get benchmarked against what the user has actually been reimbursed before.
The corporate booking tool is a live booking system. Real money, real tickets, real change fees, real non-refundable segments.
You are here to search and price only.
Never click: Continue past fare selection · Select hotel into a booking
funnel · Book · Reserve · Hold · Confirm · anything on a traveller-details
or payment page.
Reading fares off a results page is safe — results and the booking funnel are separate pages, and the results page is where you stop. That line is the whole guardrail.
If a flow ever lands on a page showing traveller details, payment fields, or a confirm button: stop immediately, do not click anything, and tell the user where you are. Do not try to navigate back out by clicking through.
Every estimate you produce must state "Nothing booked." explicitly.
Before the first search, confirm (or reuse from a previous run):
| Home airport | |
| Preferred airline / alliance | |
| Preferred hotel chain | |
| Cabin class permitted by policy | |
| Trip dates and destination | |
| Rental car likely? |
Do not assume a home airport from the user's city — many metros have several, and the wrong one silently produces a plausible, useless number.
Record these preferences so later runs skip this step, but re-confirm the dates every time.
Use the company's SSO entry point for the booking tool (commonly a corporate shortlink or an intranet tile) so the existing session is reused.
Two failure modes worth knowing:
id=, _dp_=, or similar). These are session-scoped and expire, and the
symptom is misleading — you land on a generic "Cookies are disabled" error
rather than a session-expired message. Go back to the clean entry point.Navigate to the flight search. The DOM patterns below are typical of enterprise booking portals (Cytric/Amadeus, and similar Concur/Egencia-family tools) and will save a lot of wasted time:
1. Origin and destination are comboboxes, not text inputs.
await page.getByRole('combobox', { name: /arrival location/i }).click();
await page.keyboard.type('Orlando');
await page.waitForTimeout(3500); // suggestion lookup is server-side and slow
await page.getByRole('option', { name: /Orlando International \(MCO\)/i }).click();
Pick the airport option, not the city option. Metro-area city entries (e.g. a city code covering several fields) resolve to a different, less useful inventory set for air search.
2. Airline filter is another combobox — type the carrier, click the option,
then press Escape to close the dropdown. Leaving it open blocks the search button.
3. Date fields are hidden inputs behind a calendar widget. Clicking the visible date label opens a date picker that is awkward and flaky to drive. Set the hidden inputs directly with the native setter and dispatch the events the framework listens for:
await page.evaluate(({ depart, ret }) => {
function setVal(name, value) {
const el = document.querySelector(`input[name="${name}"]`);
if (!el) return;
const setter = Object.getOwnPropertyDescriptor(
…
不会。它只做查询和估算,文档明确要求不要点击预订、保留、确认等按钮,且每份结果都应明确写出“Nothing booked.”。
机票和酒店来自企业订票工具的实时价格;地面交通、餐饮和停车等不在订票工具中的项目,会参考用户过去已获报销的费用记录进行基准估算。
至少需要确认出发机场、目的地、出行日期、航空公司或酒店偏好、公司允许的舱位,以及是否可能租车。文档还建议通过公司的 SSO 入口访问订票工具,不要索取用户凭证。
对供应商合同或SOW做首轮风险筛查,帮助你在法务前先发现关键条款问题
整合邮件、日历和Teams,生成优先级工作简报。
帮助你设计、审查并打包可复用的 Agent Skill 与 SKILL.md
分析 Teams 与邮件写作习惯,生成可复用的个人沟通风格画像。
先判断任务是否可由免费 M365 Copilot 完成,并引导到对应官方能力。
验证并分析指定 SharePoint 列表,生成可交互 HTML 洞察报告并返回链接
帮助用户智能规划机酒用车与地面交通,并跟踪价格和里程兑换机会。
用自然语言记录差旅报销,并在 Google 表格中自动汇总结算费用。
帮助用户预测营销活动预算场景金额并快速比较不同方案。
用 AI 生成旅行路线,并提供预算、行李与美食建议。
为编码任务预估大模型 token 花费范围、情景与置信度,便于成本控制。
帮助用户搜索里程票与现金机票,优化积分兑换并预测票价走势。