Hotdry.
ai-systems

CommerceTXT:AI购物上下文标准的架构设计与工程实现

深入解析CommerceTXT开放标准的架构规范,包括分形结构设计、核心指令定义、与现有电商平台和AI代理的集成接口实现方案。

AI 电商爬取的现状与挑战

当用户询问 AI 助手 “索尼 XM5 耳机多少钱?” 时,当前的技术栈面临着一系列工程难题。AI 代理需要下载 2-5MB 的 HTML 页面,执行 JavaScript 渲染,从数千个 DOM 节点中概率性地推断价格和库存信息。这个过程不仅消耗 8,500 + 个 token 的计算资源,还经常导致价格幻觉和库存误判。

根据 CommerceTXT 官方数据,传统的 HTML 抓取方式存在以下核心问题:

  • 计算成本高昂:每个产品页面需要处理约 8,500 个 token
  • 数据不确定性:AI 只能给出 “大约 $350,但价格可能变动” 的模糊回答
  • 服务器压力:频繁的爬取请求给商家服务器带来额外负担
  • 用户体验差:响应延迟和错误信息降低用户信任度

CommerceTXT 架构设计原理

CommerceTXT 采用分形架构(Fractal Architecture)来最小化 token 使用量。这种设计理念的核心是 “按需加载”——AI 代理从根级开始,只在用户意图明确时才深入下一层级。

三级分形结构

第一级:根级(商店身份) 位于/commerce.txt,包含商店的基本信息、支付方式、配送规则和分类目录。这是 AI 代理的入口点,仅需 380 个 token 即可获取商店全景。

# commerce.txt
Version: 1.0

# @IDENTITY
Name: Demo Store
Currency: USD

# @LOCALES
en-US: /commerce.txt
de-DE: /de/commerce.txt

# @PAYMENT
Methods: Visa, MasterCard, PayPal, ApplePay

# @SHIPPING
- Standard: Free over $50 | 3-5 Days
- Express: $15.00 | 1-2 Days

# @CATALOG
- Electronics: /categories/electronics.txt

第二级:分类级 位于/categories/electronics.txt,包含品牌筛选、促销信息和产品列表。只有当用户明确询问电子产品时,AI 才会加载此文件。

第三级:产品级 位于/products/xm5.txt,包含具体的交易数据:价格、库存、规格、评论等。这是最详细的一层,但只在用户询问特定产品时才被访问。

这种分形设计实现了95% 的 token 节省——AI 无需一次性加载所有数据,而是按需遍历层级结构。

核心指令与数据结构详解

@INVENTORY:消除库存幻觉

库存信息是电商 AI 最常见的幻觉来源。CommerceTXT 通过 @INVENTORY 指令提供确定性数据:

# @INVENTORY
Stock: 42
LowStockThreshold: 10
StockStatus: InStock
LastUpdated: 2025-12-14T15:30:00Z
RestockDate: 2025-12-20

工程意义

  • LastUpdated字段允许 AI 验证数据新鲜度(超过 24 小时标记为可疑,超过 72 小时视为未知)
  • LowStockThreshold使 AI 能够智能提示 “仅剩 3 件”
  • 完全消除 “是否有货?” 的猜测性回答

@SUBSCRIPTION:订阅产品标准化

对于 SaaS 和订阅产品,CommerceTXT 提供结构化表示:

# @SUBSCRIPTION
Plans:
  - Monthly: 29.99 | BilledAs: "$29.99/month"
  - Annual: 299.00 | BilledAs: "$299/year" | Savings: "Save 17%"
Trial: 7 Days Free
CancelAnytime: True

技术优势

  • AI 可以准确比较一次性购买与订阅定价
  • 试用期信息明确,避免法律风险
  • 支持复杂的定价结构(如年费折扣)

@REVIEWS:聚合评论的 token 优化

评论数据通常占用大量 token。CommerceTXT 通过聚合方式实现 99.7% 的 token 节省:

# @REVIEWS
Rating: 4.7
RatingScale: 5.0
Count: 1243
TopTags: "Great battery", "Comfortable", "Worth it"
SourceURL: https://trustpilot.com/reviews/example

相比抓取 15,000 个 token 的原始评论,CommerceTXT 仅用 50 个 token 提供核心洞察,同时通过SourceURL保持可验证性。

产品变体与兼容性

对于多 SKU 产品,@VARIANTS 指令提供结构化选项:

# @VARIANTS
Type: Storage
Options:
  - 128GB: 999.00 | SKU: GA05843-128
  - 256GB: 1099.00 | SKU: GA05843-256
  - 512GB: 1299.00 | SKU: GA05843-512

Type: Color
Options:
  - Obsidian: +0.00
  - Bay: +50.00 | Note: "Limited Edition"

@COMPATIBILITY 指令则明确产品兼容性,避免用户购买错误:

# @COMPATIBILITY
WorksWith: iPhone 15, iPad Pro
Requires: USB-C port
NotCompatible: Android devices without USB-C

实施指南与最佳实践

商家部署方案

最小化部署(Tier 1 合规) 仅需实现 4 个核心指令即可获得基本支持:

  1. @IDENTITY - 商店身份
  2. @OFFER - 价格和可用性
  3. @INVENTORY - 库存信息(可选,但强烈推荐)
  4. @POLICIES - 退货和配送政策

文件位置与发现机制

  • 主文件:https://yourstore.com/commerce.txt
  • robots.txt 声明:Commerce-TXT: https://yourstore.com/commerce.txt
  • 缓存控制:设置Cache-Control: max-age=300(5 分钟)用于动态库存

数据新鲜度管理 对于实时库存系统,建议动态生成 commerce.txt:

# 伪代码示例
from flask import Flask, Response
import json
from datetime import datetime

app = Flask(__name__)

@app.route('/commerce.txt')
def generate_commercetxt():
    # 从数据库获取实时数据
    inventory = get_real_time_inventory()
    
    content = f"""# commerce.txt
Version: 1.0
LastGenerated: {datetime.utcnow().isoformat()}Z

# @IDENTITY
Name: {store_name}
Currency: {currency}

# @INVENTORY
Stock: {inventory['stock']}
LastUpdated: {inventory['updated_at']}
"""
    
    response = Response(content, mimetype='text/plain')
    response.headers['Cache-Control'] = 'max-age=300'  # 5分钟缓存
    return response

AI 平台集成方案

解析器实现要点 CommerceTXT 解析器需要处理以下关键特性:

  1. 指令识别:以# @开头的行表示指令开始
  2. 层级遍历:根据 @CATALOG 中的链接递归加载
  3. 区域解析:基于 @LOCALES 选择适当语言版本
  4. 数据验证:检查 LastUpdated 时间戳和 Schema.org 兼容性

Python 参考实现

import re
from typing import Dict, Any
import requests

def parse_commercetxt(content: str) -> Dict[str, Any]:
    """解析CommerceTXT格式内容"""
    result = {}
    current_directive = None
    
    for line in content.split('\n'):
        line = line.strip()
        
        # 跳过空行和注释
        if not line or line.startswith('#'):
            # 检查是否为指令开始
            if line.startswith('# @'):
                directive_match = re.match(r'# @(\w+)', line)
                if directive_match:
                    current_directive = directive_match.group(1)
                    result[current_directive] = {}
            continue
        
        # 解析键值对
        if current_directive and ':' in line:
            key, value = line.split(':', 1)
            key = key.strip()
            value = value.strip()
            
            # 处理列表项
            if value.startswith('-'):
                if 'items' not in result[current_directive]:
                    result[current_directive]['items'] = []
                result[current_directive]['items'].append(value[1:].strip())
            else:
                result[current_directive][key] = value
    
    return result

def discover_commercetxt(domain: str) -> Dict[str, Any]:
    """发现并解析网站的commerce.txt"""
    # 尝试根目录
    urls_to_try = [
        f"https://{domain}/commerce.txt",
        f"https://{domain}/.well-known/commerce.txt"
    ]
    
    for url in urls_to_try:
        try:
            response = requests.get(url, timeout=5)
            if response.status_code == 200:
                return parse_commercetxt(response.text)
        except:
            continue
    
    return None

安全与合规考虑

数据安全边界

  • 禁止包含 PII:commerce.txt 文件绝不能包含个人信息、API 密钥或内部系统路径
  • 速率限制:建议对/commerce.txt端点实施速率限制,防止滥用
  • WAF 配置:仅允许已知的 AI 代理访问,阻止恶意爬虫

法律合规性 CommerceTXT 与 Schema.org 标准完全兼容,这意味着:

  1. 价格准确性:AI 引用的价格与 Google Shopping 等平台一致
  2. 政策透明:退货、配送政策具有法律效力
  3. 区域适配:通过 @LOCALES 支持不同地区的法律要求(如 GDPR、CCPA)

信任验证机制 CommerceTXT 建议 AI 平台实施交叉验证:

  • 定期对比 commerce.txt 数据与可见 HTML 内容
  • 差异超过 5% 时降低信任分数
  • 验证 @REVIEWS 的 SourceURL 真实性

性能优化与生态影响

Token 效率对比

指标 HTML 抓取 CommerceTXT 改进幅度
负载大小 ~2.5 MB / 页 ~5 KB / 文件 500 倍缩小
Token 数(产品) ~8,500 ~380 95% 减少
Token 数(评论) ~15,000 ~50 99.7% 减少
计算成本 高(JS 执行) 零(静态文本) CPU 节省
数据完整性 概率性(幻觉) 确定性(真实数据) 交易就绪

可持续性影响

每个 LLM 处理的 token 都消耗能源。通过剥离 HTML 展示层并提供纯上下文,CommerceTXT 可以将 AI 电商爬取的碳足迹减少超过 99%。这对于大型 AI 平台的 Scope 3 排放减少具有直接贡献。

未来演进与行业展望

v1.x 版本路线图

v1.0.1(已发布)

  • @IMAGES 指令:直接图片 URL,避免 AI 下载大图
  • @AGE_RESTRICTION 指令:受管制产品(如酒精、烟草)的年龄限制
  • 产品 URL 字段澄清

v1.1(2026 年 Q1)

  • @SUSTAINABILITY 指令:验证的环境和道德声明
  • 增强验证工具
  • 更多解析器实现
  • 商家入门工具

v2.0 + 的谨慎演进

@ACTIONS 指令(实验性) 未来版本可能引入交易能力,但必须满足严格的安全要求:

# @ACTIONS
CheckInventory: GET https://api.example.com/inventory/{sku}
  # 只读,无需认证
  
AddToCart: POST https://api.example.com/cart/add
  # 需要OAuth2 + 用户确认
  UserConfirmation: Required before execution

安全红线

  1. 禁止自主购买:AI 不能在没有明确用户批准的情况下完成交易
  2. 支付隔离:AI 绝不能访问支付凭证
  3. 完全透明:用户在授权前审查购物车、价格、配送信息
  4. 防欺诈:速率限制、审计跟踪、滥用检测

CommerceTXT 社区建议 v1.0 保持只读,只有在信任评分系统得到验证且安全标准建立后,才考虑引入交易能力。

实施检查清单

商家检查清单

  • 创建/commerce.txt文件并包含 @IDENTITY、@OFFER、@INVENTORY、@POLICIES
  • 在 robots.txt 中添加Commerce-TXT:声明
  • 设置适当的缓存控制头(动态数据 5 分钟,静态数据 60 分钟)
  • 验证 Schema.org 兼容性
  • 实施 WAF 规则限制非 AI 爬虫访问

AI 平台检查清单

  • 实现 CommerceTXT 解析器
  • 添加 commerce.txt 发现机制(根目录和.well-known)
  • 实施信任验证系统(交叉检查、新鲜度验证)
  • 优化 token 使用(按需加载层级)
  • 记录数据来源以支持可追溯性

性能监控指标

  • 数据新鲜度:@INVENTORY.LastUpdated 与当前时间的差异
  • 解析成功率:成功解析 commerce.txt 的百分比
  • token 节省:与传统 HTML 抓取的 token 使用对比
  • 响应时间:从发现到解析完成的总时间
  • 信任分数:基于交叉验证的置信度评分

结语

CommerceTXT 代表了 AI 电商基础设施的重要演进。通过提供确定性、token 高效的交易上下文,它不仅解决了当前 AI 购物体验的核心痛点,还为可持续的 AI 计算生态奠定了基础。

对于商家而言,这是控制 AI 如何呈现产品的机会;对于 AI 平台而言,这是降低成本和提升准确性的途径;对于用户而言,这是获得可靠购物信息的保证。

随着 v1.0 标准的稳定发布,CommerceTXT 正在成为 AI 代理电商交互的事实标准。早期采用者将获得竞争优势,而整个生态将受益于更高效、更可靠的 AI 购物体验。


资料来源

相关资源

查看归档