Google Maps 变成 Agent:点餐、订酒店、购票全打通,附工程接入指南
Google Maps Becomes an Agent: Food Orders, Hotel Bookings and Tickets, Plus an Integration Guide
by Mycelium Protocol
Google Maps 这次的更新在技术上并不复杂,但它说的话比任何一个功能都更重要:Maps 不再只是导航工具,它想成为帮你完成真实世界任务的 Agent。
更新了什么
Ask Maps(Maps 内置的 AI 问答入口)新增了四类 agentic 能力:
1. 食物点单
直接在 Ask Maps 里搜索「附近哪里有纯素牛油果吐司和燕麦拿铁」,找到餐厅后点「Order online」,接入 Square、Toast 或 Uber Eats 完成下单。Maps 不处理支付,而是在这三个平台完成结账。
2. 酒店比价和预订
可以问「下周末迈阿密市中心的会议,帮我找一个价格合理、评分高、有艺术感、步行可达健身房和餐厅的酒店」。Ask Maps 比价查可用性,选好后跳转合作方网站完成预订。
3. 活动和票务
「今晚工作附近有什么喜剧表演或现场音乐?」——出列表,带购票链接。
4. Personal Intelligence
接入用户的 Gmail 和 Google Calendar,让 Ask Maps 知道你的航班、餐厅预订和行程。可以问「我飞温哥华的航班几点落地?」「我的酒店附近有什么好吃的?」——它会从邮件里找到答案。默认关闭。
另外:Ask Maps 现在记得对话历史,不用每次重新开始;实时交通 widget 也同步上线。
为什么这件事值得认真对待
Google Maps 每天处理大量本地意图搜索。过去这些意图最终流向了 Yelp、OpenTable、Uber Eats、Expedia——Google 展示结果,流量给别人变现。
这次更新在做的事情是:把「搜索 → 跳走」变成「搜索 → 在 Maps 里完成」。
这不是渐进式的功能迭代。这是 Google 在用它最大的本地数据护城河——二十年积累的 POI 数据、用户行为、商户合作——来构建一个本地 Agent 的闭环。OpenAI、Anthropic 要做同类事情,在本地服务这一层是白纸。Google Maps 有的东西,短期内没有人能复制。
Personal Intelligence 是这里最安静也最关键的那块。接入 Gmail 和 Calendar 之后,Ask Maps 知道你的整个行程状态。「我的航班几点」「我住哪家酒店」「我已经订了什么餐厅」——有了这些上下文,它才真正从搜索框变成 Agent。
Personal Intelligence 默认关闭,说明 Google 知道这是强争议功能,在消费者信任还没建立之前不强推。这个判断是对的。
工程接入指南
目前 Ask Maps 的 agentic 功能是消费者端能力,不是开放的第三方 API。但对于想进入这个生态的工程团队,有几条清晰的接入路径。
路径一:餐饮外卖接入(食物点单)
Ask Maps 食物点单后端是 Square、Toast、Uber Eats 三选一(或多选)。你的餐厅/平台需要在这些服务商有账户,Maps 才能展示「Order online」按钮。
Square(中小餐厅首选)
# 接入 Square Online Ordering API
curl -X POST https://connect.squareup.com/v2/orders \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order": {
"location_id": "LOCATION_ID",
"line_items": [
{
"name": "Vegan Avocado Toast",
"quantity": "1",
"base_price_money": {"amount": 1400, "currency": "USD"}
}
]
},
"idempotency_key": "unique-idempotency-key"
}'
在 Square Dashboard 开启 Online Ordering,设置好菜单和配送区域后,Google Maps 会通过 Square 的合作渠道自动同步。
Toast(餐饮 POS 专用)
// 在 Toast Partner Program 申请 Google Maps 集成资质
// Toast 有专属的 Google 集成通道
const toastConfig = {
restaurantGuid: 'YOUR_RESTAURANT_GUID',
googleMapsEnabled: true,
onlineOrderingEnabled: true,
menuSyncInterval: 'realtime' // 菜单同步频率
};
Uber Eats(覆盖最广)
# 通过 Uber Eats Restaurant Manager 开启在线点单
# Uber Eats for Business API
import requests
headers = {'Authorization': f'Bearer {UBER_EATS_TOKEN}'}
response = requests.post(
'https://api.uber.com/v1/eats/order',
headers=headers,
json={
'restaurant_id': 'YOUR_RESTAURANT_ID',
'items': [{'id': 'ITEM_ID', 'quantity': 1}]
}
)
核心逻辑:Google Maps 自己不做支付,只做「发现层」。用户在 Ask Maps 找到餐厅 → 点击 Order online → 跳到你的平台完成支付。关键是保持菜单和库存的实时同步,过期信息会导致用户体验断裂。
路径二:酒店/住宿接入(价格比价)
酒店功能是「比价后跳转合作方」模式,接入点是 Google Hotel Center(现在叫 Google Travel Ads)。
# 上传 Hotel Price Feed(价格、房型、可用性)
# 格式:XML 或通过 Google Travel Partner API
# Google Hotel API 价格 Feed(XML 格式)
hotel_feed = """
<listings>
<listing>
<property_id>YOUR_HOTEL_ID</property_id>
<room_type>Standard King</room_type>
<checkin>2026-08-15</checkin>
<checkout>2026-08-17</checkout>
<price currency="USD">189.00</price>
<availability>available</availability>
<deeplink>https://yourhotel.com/book?checkin=2026-08-15&checkout=2026-08-17</deeplink>
</listing>
</listings>
"""
# 或通过 Google Hotel API(需 Travel Partner 资质)
from google.oauth2 import service_account
from googleapiclient.discovery import build
creds = service_account.Credentials.from_service_account_file('credentials.json')
service = build('travelpartner', 'v2.1', credentials=creds)
关键步骤:向 Google 申请 Travel Partner Program → 提交价格 Feed → 保持实时库存同步。延迟同步直接影响 Ask Maps 里的展示排名。
路径三:活动票务接入(演出搜索)
这部分目前走结构化数据路径,在活动页面添加 Event Schema:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Comedy Night at The Laugh Factory",
"startDate": "2026-08-09T20:00:00",
"endDate": "2026-08-09T23:00:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "The Laugh Factory",
"address": {
"@type": "PostalAddress",
"streetAddress": "8001 W Sunset Blvd",
"addressLocality": "Los Angeles",
"addressRegion": "CA",
"postalCode": "90046"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 34.0983,
"longitude": -118.3665
}
},
"offers": {
"@type": "Offer",
"url": "https://www.laughfactory.com/tickets/aug9",
"price": "25",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2026-08-01T00:00:00"
},
"performer": {
"@type": "Person",
"name": "Comedian Name"
},
"organizer": {
"@type": "Organization",
"name": "The Laugh Factory",
"url": "https://www.laughfactory.com"
}
}
</script>
Google 会把这些结构化数据索引进 Ask Maps 的活动搜索。票务平台(类 Ticketmaster)可以额外申请 Google Ticketing Partner API 获得优先展示——需直接联系 Google Business 团队谈合作。
路径四:让 Personal Intelligence「看见」你的数据
Personal Intelligence 接入 Gmail 和 Calendar,意味着:你发给用户的邮件和日历事件,直接影响 Ask Maps 能提供什么上下文。
订单确认邮件使用 Gmail Actions Markup,让 Google 可靠解析预订信息:
# 发送结构化预订确认邮件
# Google 会自动解析这个 JSON-LD 并展示给 Ask Maps
booking_confirmation_html = """
<html>
<head>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Order",
"merchant": {
"@type": "Organization",
"name": "Downtown Miami Hotel"
},
"orderNumber": "HTL-20260815-001",
"orderStatus": "http://schema.org/OrderProcessing",
"acceptedOffer": {
"@type": "Offer",
"name": "Standard King Room",
"checkinTime": "2026-08-15T15:00:00",
"checkoutTime": "2026-08-17T11:00:00"
},
"reservationFor": {
"@type": "LodgingBusiness",
"name": "Downtown Miami Hotel",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Biscayne Blvd",
"addressLocality": "Miami",
"addressRegion": "FL"
}
}
}
</script>
</head>
<body>
<!-- 普通邮件正文 -->
<p>您的预订已确认。入住日期:2026年8月15日</p>
</body>
</html>
"""
活动日历邀请生成标准 .ics 文件,带精确地理位置:
# 生成 ICS 文件让用户一键添加到 Google Calendar
from icalendar import Calendar, Event
from datetime import datetime
import pytz
cal = Calendar()
cal.add('prodid', '-//YourApp//YourApp//EN')
cal.add('version', '2.0')
event = Event()
event.add('summary', 'Comedy Night - The Laugh Factory')
event.add('dtstart', datetime(2026, 8, 9, 20, 0, 0, tzinfo=pytz.timezone('America/Los_Angeles')))
event.add('dtend', datetime(2026, 8, 9, 23, 0, 0, tzinfo=pytz.timezone('America/Los_Angeles')))
event.add('location', '8001 W Sunset Blvd, Los Angeles, CA 90046')
event.add('description', '购票链接: https://www.laughfactory.com/tickets')
event.add('url', 'https://www.laughfactory.com/tickets')
cal.add_component(event)
# 在确认邮件里附上 .ics 或提供「添加到 Google Calendar」链接
ics_content = cal.to_ical()
优先级矩阵:B 端工具开发者行动清单
| 优先级 | 类型 | 动作 | 预期效果 |
|---|---|---|---|
| P0 | 餐饮 | 接入 Square / Toast / Uber Eats 之一 | Ask Maps 食物点单覆盖 |
| P0 | 酒店 | 提交 Google Hotel Center Feed | 价格出现在 Maps 比价列表 |
| P1 | 活动/票务 | 添加 Event + Offer Schema 标记 | 活动被 Ask Maps 索引 |
| P1 | 全部 | 订单确认邮件使用 Gmail Markup | Personal Intelligence 可解析行程 |
| P2 | 全部 | 活动邀请提供标准 .ics 导出 | 行程进入 Google Calendar |
| P2 | 酒店/票务 | 申请 Google Travel Partner 资质 | 获得优先展示位 |
| P3 | 全部 | 跟踪 Google Maps Platform 更新 | 等待 Agentic APIs 开放 |
一个需要注意的假设
不要把 Personal Intelligence 当成默认可用的上下文层来设计产品逻辑。它默认关闭,用户需要主动授权。你的核心流程必须在没有个人上下文的情况下也能跑通——Personal Intelligence 是锦上添花,不是依赖项。
Ask Maps 的 agentic 功能目前只在美国上线,Personal Intelligence 和实时交通 widget 在 Ask Maps 可用的所有市场同步上线。API 开放时间表未公布,关注 Google Maps Platform Blog 获取最新动态。
Mycelium Protocol — 追踪 AI 系统的底层演化
关于 Mycelium
菌丝协议。持续追踪 AI 工具、系统和实验的内容节点。
Google Maps Becomes an Agent: Food Orders, Hotel Bookings, Event Tickets — Plus an Engineering Integration Guide
by Mycelium Protocol
Google Maps’ update this week is not technically complex. But what it says is bigger than any individual feature: Maps is no longer just a navigation tool — it wants to be the agent that completes real-world tasks for you.
What Changed
Ask Maps (the AI question-answering feature inside Maps) gained four new agentic capabilities:
Food ordering: Search for “where can I order vegan avocado toast and an oat milk latte near home?” — find restaurants, tap “Order online,” and place an order through Square, Toast, or Uber Eats. Maps handles discovery; those platforms handle payment.
Hotel price comparison: Ask “for next weekend’s conference in downtown Miami, find a decently priced, top-rated hotel with an artsy vibe within walking distance of a gym and restaurants.” Ask Maps compares prices and availability, then links through to partner sites for booking.
Event tickets: “What are some comedy shows or live music this evening near work?” — a list with ticket purchase links.
Personal Intelligence: Draws from the user’s Gmail and Google Calendar to provide context-aware answers: “What time will I land in Vancouver on my upcoming flight?” or “Where should I eat near my hotel?” It reads your emails. Off by default.
Also new: conversation memory (Ask Maps remembers prior sessions) and a live transit widget.
Why This Matters
Google Maps handles enormous volumes of local intent searches every day. Until now, those intents flowed out to Yelp, OpenTable, Uber Eats, Expedia — Google showed results, other platforms captured the transaction.
What this update does: turn “search → leave” into “search → complete, in Maps.”
Food ordering stays in Maps (almost). Hotel booking stays in Maps (almost). Event tickets stay in Maps (almost). Every step keeps users inside the Google surface longer.
This is not incremental feature work. This is Google using its deepest local moat — twenty years of POI data, user behavior data, merchant relationships — to close an agentic loop. OpenAI and Anthropic want to build local service agents. They’re starting from zero on local data. Google Maps has what nobody else has, and that gap doesn’t compress quickly.
Personal Intelligence is the quietest and most important piece. Once Ask Maps knows your flights, hotel bookings, and dinner reservations from Gmail and Calendar, it can give context-aware answers without you providing any context. That’s the difference between a search box and an agent.
The default-off decision for Personal Intelligence is the right call. Connecting to Gmail is a strong ask, and consumer trust has to be built before that becomes a default.
Engineering Integration Guide
Ask Maps’ agentic capabilities are consumer-facing today — not an open third-party API. But clear integration paths already exist for teams that want to be in this ecosystem.
Path 1: Restaurant Food Ordering
Ask Maps routes food orders through Square, Toast, or Uber Eats. Your restaurant or platform needs an account on at least one of them for the “Order online” button to appear in Maps.
Square (best for independent restaurants):
curl -X POST https://connect.squareup.com/v2/orders \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order": {
"location_id": "LOCATION_ID",
"line_items": [
{
"name": "Vegan Avocado Toast",
"quantity": "1",
"base_price_money": {"amount": 1400, "currency": "USD"}
}
]
},
"idempotency_key": "unique-key"
}'
Enable Online Ordering in Square Dashboard, keep your menu current. Google syncs through Square’s partner channel.
Toast (restaurant POS):
const toastConfig = {
restaurantGuid: 'YOUR_RESTAURANT_GUID',
googleMapsEnabled: true,
onlineOrderingEnabled: true,
menuSyncInterval: 'realtime'
};
// Apply through Toast Partner Program for Google Maps integration access
Uber Eats (broadest coverage):
response = requests.post(
'https://api.uber.com/v1/eats/order',
headers={'Authorization': f'Bearer {UBER_EATS_TOKEN}'},
json={
'restaurant_id': 'YOUR_RESTAURANT_ID',
'items': [{'id': 'ITEM_ID', 'quantity': 1}]
}
)
Google Maps is the discovery layer only. Payment happens on the partner platform. The critical engineering requirement: keep menu and inventory in real-time sync. Stale data breaks the user experience exactly when intent is highest.
Path 2: Hotel Price Comparison
Hotels appear in Ask Maps via Google Hotel Center (Google Travel Ads). Submit a live price feed and maintain real-time inventory.
# Hotel Price Feed (XML format) uploaded to Google Hotel Center
hotel_feed = """
<listings>
<listing>
<property_id>YOUR_HOTEL_ID</property_id>
<room_type>Standard King</room_type>
<checkin>2026-08-15</checkin>
<checkout>2026-08-17</checkout>
<price currency="USD">189.00</price>
<availability>available</availability>
<deeplink>https://yourhotel.com/book?checkin=2026-08-15</deeplink>
</listing>
</listings>
"""
# Or via Google Hotel API (requires Travel Partner credentials)
from googleapiclient.discovery import build
service = build('travelpartner', 'v2.1', credentials=creds)
Apply to Google Travel Partner Program → submit feed → sync inventory in real time. Feed latency directly impacts ranking in Ask Maps results.
Path 3: Event and Ticket Discovery
Event discovery runs through structured data. Add Event Schema markup to your event pages:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Comedy Night at The Laugh Factory",
"startDate": "2026-08-09T20:00:00",
"endDate": "2026-08-09T23:00:00",
"location": {
"@type": "Place",
"name": "The Laugh Factory",
"address": {
"@type": "PostalAddress",
"streetAddress": "8001 W Sunset Blvd",
"addressLocality": "Los Angeles",
"addressRegion": "CA"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 34.0983,
"longitude": -118.3665
}
},
"offers": {
"@type": "Offer",
"url": "https://www.laughfactory.com/tickets",
"price": "25",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
</script>
Ticketing platforms can additionally apply for the Google Ticketing Partner API for priority placement — contact Google Business directly.
Path 4: Getting Into Personal Intelligence’s View
Personal Intelligence reads Gmail and Calendar. What you send users determines what Ask Maps can surface.
Booking confirmation emails: use Gmail Actions Markup
# Structured booking confirmation that Google parses for Personal Intelligence
confirmation_body = """
<html><head>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Order",
"merchant": {"@type": "Organization", "name": "Downtown Miami Hotel"},
"orderNumber": "HTL-001",
"acceptedOffer": {
"@type": "Offer",
"name": "Standard King Room",
"checkinTime": "2026-08-15T15:00:00",
"checkoutTime": "2026-08-17T11:00:00"
},
"reservationFor": {
"@type": "LodgingBusiness",
"name": "Downtown Miami Hotel",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Biscayne Blvd",
"addressLocality": "Miami",
"addressRegion": "FL"
}
}
}
</script>
</head><body><!-- regular email content --></body></html>
"""
Calendar events: provide standard .ics export
from icalendar import Calendar, Event
import pytz
cal = Calendar()
event = Event()
event.add('summary', 'Comedy Night - The Laugh Factory')
event.add('dtstart', datetime(2026, 8, 9, 20, 0, tzinfo=pytz.timezone('America/Los_Angeles')))
event.add('location', '8001 W Sunset Blvd, Los Angeles, CA 90046')
event.add('url', 'https://www.laughfactory.com/tickets')
cal.add_component(event)
Priority Matrix for B2B/SaaS Developers
| Priority | Type | Action | Expected outcome |
|---|---|---|---|
| P0 | Restaurant | Integrate with Square / Toast / Uber Eats | Ask Maps “Order online” button active |
| P0 | Hotel | Submit Google Hotel Center feed | Prices appear in Ask Maps comparison |
| P1 | Events | Add Event + Offer Schema markup | Events indexed by Ask Maps |
| P1 | All | Use Gmail Markup in confirmation emails | Personal Intelligence parses bookings |
| P2 | All | Provide .ics export for events | Itinerary enters Google Calendar |
| P2 | Hotel/Events | Apply for Google Travel Partner Program | Priority placement |
| P3 | All | Monitor Google Maps Platform Blog | Track when Agentic APIs open |
One Assumption to Avoid
Do not design your core product logic around Personal Intelligence as a default-available context layer. It is off by default and requires explicit user authorization. Your primary user flow must work without personal context — Personal Intelligence is upside, not a dependency.
Ask Maps agentic features are U.S. only for now; Personal Intelligence and the live transit widget are rolling out everywhere Ask Maps is available. API timeline: not announced. Track Google Maps Platform Blog for updates.
Source: TechCrunch
Mycelium Protocol — tracking the deep evolution of AI systems
© 2026 Mycelium Protocol. All rights reserved.
关于本站 · 免责声明
🍄 Mushroom Research Blog 是非营利、免费公开的个人科技观察博客与公众号 XStack18,不接受商业合作、不代表任何企业或机构立场,也不谋求商业利益。我们以个人视角客观中立地记录和分析 AI、Web3 等领域的最新模型发布与技术动态——不止转述新闻标题或二手信息,而是给出有独立思考的深入分析,希望帮更多人获得有价值的一手科技认知。
⚠️ 文中介绍的开源代码与模型,仅供学习交流与技术借鉴。它们大多仍处于早期阶段,有待进一步研究和验证,请勿直接用于工作或生产环境;如需采用,请先自行充分测试,并核实其许可证与安全性。
Open-source code and models featured here are shared for learning and reference only. Most are early-stage and still need further study and verification — please don't use them directly in your work or in production. Test them thoroughly and check their licenses and security first.
- 本站文章均为作者基于公开信息的个人研究与观点整理,不代表文中提及的任何公司、产品、模型的官方立场,未与其构成商业关联或合作关系。
- 科技行业信息更新极快,我们尽力保证内容准确、及时,但不对完整性、实时性做绝对保证,具体请以相关企业/项目官方公告为准。
- 文中引用的第三方商标、产品名称、图片、数据等版权归原权利人所有,我们会尽量注明来源;如你认为存在版权疑问或侵权,请通过下方邮箱联系我们,收到通知后会尽快核实处理(更正、加注来源或删除)。
- 文章内容仅为技术科普与个人观点,不构成投资、法律或其他专业建议,据此进行任何决策的后果需自行判断和承担。
📮 侵权 / 勘误 / 合作咨询:[email protected]
💬 评论与讨论
使用 GitHub 账号登录后发表评论