SuperAPI AI 工具集

shopify-admin-agentic-llms-txt

前端与建站

查看项目

更新于 10-15 09:34

技能介绍

用途

llms.txt 是一种新兴约定,用纯文本告诉 AI 助手某个网站是什么、重要页面位于何处——相当于为模型提供一张精心整理的前门地图。本技能从商店自身数据(品牌一句话简介、顶级集合、带 URL 的旗舰产品、配送/退货政策链接、联系方式)组装出 llms.txt,并通过主题模板发布,使其在稳定路径下提供访问。它用于修复 llms-txt / well-known-llms-txt 以及相关的 agents-md 发现信号。

前置条件

  • 已完成认证的 Shopify CLI 会话(shopify auth login --store <domain>)
  • 所需 API 权限范围:read_products、read_themes、write_themes

参数

所有技能均接受以下通用参数:

参数 类型 必填 默认 说明
store string 是 — 商店域名(例如 mystore.myshopify.com)
format string 否 human 输出格式:human(默认)或 json
dry_run bool 否 true 预览生成的 llms.txt 而不写入(默认开启——会编辑线上主题)

技能专属参数:

参数 类型 必填 默认 说明
theme_id string 否 — 主题 GID(默认为已发布的 MAIN 主题)
flagship_count int 否 12 列出多少个顶级产品
flagship_collection_id string 否 — 从中提取旗舰列表的集合(否则使用畅销/最近更新产品)
brand_summary string 否 — 覆盖品牌一句话简介(否则根据商店 + 首页推断)

安全性

⚠️ 第 4 步(themeFilesUpsert)会向线上主题写入一个新模板。内容是增量式的(一个新文件/路由),风险较低,但会立即发布。默认 dry_run: true,因此可以先审核生成的 llms.txt。建议在写入前复制主题。

工作流程步骤

OPERATION: shop — query 输入:无 预期输出:商店名称、域名、联系邮箱、政策 URL——即 llms.txt 的头部、联系与政策部分。

OPERATION: products — query 输入:first: flagship_count,可选的 query: "collection_id:'<id>'"(当设置了 flagship_collection_id 时——整理的集合即为旗舰列表),否则使用 sortKey: UPDATED_AT, reverse: true;字段为 title、onlineStoreUrl、description。 预期输出:带 URL 的旗舰产品列表,用于「Key products」部分。(顶层 products 没有畅销排序——请使用整理好的集合来获取真正的畅销品,否则以最近更新作为代理。)

COMPUTE(无 API):渲染 llms.txt markdown:# <品牌> + 一句话简介,## Key products(标题 — URL — 一行),## Policies(配送/退货/隐私 URL),## Contact。输出完整文本。

OPERATION: themeFilesUpsert — mutation 输入:themeId、写入 templates/page.llms.liquid(一个以 text/plain 输出该文本的页面模板),如使用则再加一份 assets/llms.txt 副本;dry_run 时跳过。 预期输出:已 upsert 的主题文件;收集 userErrors。(注意:需给出一行提示,指导创建使用 llms 模板的 Page,或添加从 /llms.txt 的重定向。)

GraphQL 操作

# shop:query — 已针对 api_version 2025-01 验证
query LlmsTxtShop {
  shop {
    name
    primaryDomain { url }
    contactEmail
    shopPolicies { type url }
  }
}
# products:query — 已针对 api_version 2025-01 验证
# 顶层 `products` 没有 BEST_SELLING 排序键。传入 `collection_id:'…'`
# 查询过滤器以使用整理好的旗舰集合,否则回退到最近更新的产品。
query LlmsTxtFlagship($first: Int!, $query: String) {
  products(first: $first, query: $query, sortKey: UPDATED_AT, reverse: true) {
    edges {
      node { id title onlineStoreUrl description }
    }
  }
}
# themeFilesUpsert:mutation — 已针对 api_version 2025-01 验证
mutation LlmsTxtUpsert($themeId: ID!, $files: [OnlineStoreThemeFilesUpsertFileInput!]!) {
  themeFilesUpsert(themeId: $themeId, files: $files) {
    upsertedThemeFiles { filename }
    userErrors { filename code message }
  }
}

会话追踪

Claude 必须在每个阶段输出以下内容。这是强制性的。

开始时输出:

╔══════════════════════════════════════════════╗
║  SKILL: <skill name>                         ║
║  Store: <store domain>                       ║
║  Started: <YYYY-MM-DD HH:MM UTC>             ║
╚══════════════════════════════════════════════╝

每一步之后输出:

[N/TOTAL] <QUERY|MUTATION>  <OperationName>
          → Params: <brief summary of key inputs>
          → Result: <count or outcome>

如果 dry_run: true,则在每个 mutation 步骤前加 [DRY RUN] 前缀,且不执行该步骤。

完成时输出:

对于 format: human(默认):

══════════════════════════════════════════════
OUTCOME SUMMARY
  <Metric label>:   <value>
  Errors:           0
  Output:           <filename or "none">
══════════════════════════════════════════════

对于 format: json,输出:

{
  "skill": "<skill-slug>",
  "store": "<domain>",
  "started_at": "<ISO8601>",
  "completed_at": "<ISO8601>",
  "dry_run": false,
  "steps": [
    {
      "step": 1,
      "operation": "<OperationName>",
      "type": "query",
      "params_summary": "<string>",
      "result_summary": "<string>",
      "skipped": false
    }
  ],
  "outcome": {
    "metric_key": 0,
    "errors": 0,
    "output_file": null
  }
}

输出格式

human:完整的生成 llms.txt + 发布后步骤(在 llms 模板上创建 Page,或添加 /llms.txt → page 重定向)。json:{ theme_id, llms_txt, wrote: true|false, follow_up, errors }。

错误处理

错误 原因 恢复方式
THROTTLED API 速率限制 等待 2 秒,最多重试 3 次
ACCESS_DENIED 缺少 write_themes 中止;输出生成的 llms.txt 以便手动添加
No flagship products 目录为空/新建 仅发布头部 + 政策 + 联系方式

最佳实践

  • 保持简短且高信号——llms.txt 是一张地图,不是内容转储;链接到规范页面而非粘贴内容。
  • 当旗舰产品阵容或政策变化时重新生成(agentic-readiness-monitor 例程可安排执行此操作)。
  • 与 shopify-admin-agentic-crawler-access 搭配使用——只有在允许爬虫进入时,llms.txt 才有帮助。
  • 发布后,添加店面重定向 /llms.txt → 该页面,使其位于约定的路径上。