llms.txt v2 · MCP · A2A v0.3 · JSON-LD

把网站丢给 AI,
它立刻变准、变快。

Evergreen 是一个 AI 上下文引擎。它给你的网站附加一层机器可读协议栈: Agent 进站先读 /llms.txt,再按 token 预算拉取 /api/context,拿到的全是去掉导航、广告与脚本噪声的纯事实, 并且每条都带稳定 ID 与置信度,可直接引用。

事实问答准确率
0%+31%
上下文 token
0%−68%
检索轮次
04.2 → 1.3
首字延迟
0s−2.14s
agent · session 0x7f3a · reading evergreen
请求数 0 累计 token 0 耗时 0 ms
上面的每一步都是浏览器刚刚真实发出的 HTTP 请求,token 数、耗时与条目全部取自本次响应,不是预录动画。 点开「实机演示」亲手跑一次。
为什么需要这一层

网页是给人看的,不是给模型看的。

当 Agent 抓一个普通页面,它拿到的是一团被导航、脚本和装饰性 DOM 稀释过的 HTML。本站首页实测 9,720 token,其中可直接引用的事实不到四分之一(信噪比 24%),而且知识库还是 JS 渲染的——不执行脚本只能拿到 2,372 token 的静态文本。Evergreen 把信噪比提到 96%。

传统网页信噪比 24%
  • 9,720 token / 页(实测)
  • 不执行 JS 只能拿到 2,372 token 静态文本
  • 4.2 次 HTTP 请求才找到答案(对照实验)
  • 无稳定 ID,AI 无法引用、无法核验
  • 每次提问重新抓取,延迟叠加
Evergreen信噪比 96%
  • 1,888 token / 次(budget=2000,实测)
  • 1.3 次 HTTP 请求即可完成(对照实验)
  • 纯净 Markdown / JSON,零装饰性 DOM,不需执行脚本
  • 每条带 EG-xxx 稳定 ID + 置信度
  • ETag + max-age=900,命中 304 零成本
核心机制

七层协议栈:AI 是这样读懂你的网站的

点击任意一层,右侧显示该端点的真实返回内容(实时从本站抓取)。这不是示意图,是正在运行的服务。

GET /llms.txt
text/markdown · 200 · — token
加载中…
实机演示

亲手跑一次 /api/context

输入一个主题、选一个 token 预算,观察服务端如何按预算裁剪、返回哪些条目、是否被截断。这就是 AI 每次「读懂你」时真正拿到的东西。

GET /api/context?topic=…&budget=2000
试试:
预算占用 0 / 2000 token
0条目命中 0ms 延迟 falsetruncated
点击「执行请求」查看真实响应。
查看原始 JSON 响应
{}
接入方式

四种把 Evergreen 交给 AI 的方法

从「复制粘贴一段话」到「全自动 Agent 发现」,按你的客户端能力选一种。

零门槛:用户在对话框里粘贴这一整段

适配 ChatGPT / Claude / Gemini / 通义 / 豆包等任何具备联网或抓取能力的助手。指令会强制 AI 先读 /llms.txt,再按预算检索,并对每个断言标注 [EG-xxx]。

  • 不需要装任何东西,不需要 API Key
  • 规则写死在指令里,输出格式立刻统一
  • 知识库没覆盖的问题,AI 会明确说「无此条目」而不是编
场景:
Prompt Pack · chat

能力最强:把 /mcp 加进你的 MCP 客户端

Evergreen 暴露 4 个真实工具,AI 可以自主决定何时检索、检索多少、是否下钻。这比粘贴指令更强,因为调用时机由模型规划。

工具入参作用
search_contextquery, limit?, budget?按主题检索,预算内返回相关度最高的条目
get_entryid按 EG-xxx 取完整条目;ID 不存在时返回最相近的 3 个
get_prompt_packscenario取可注入系统提示的规则包
get_metrics—取评测指标与口径

传输:JSON-RPC 2.0 over HTTP(Streamable)。无需 SDK——任何能发 POST 的环境都能实现,本站的 serve.ps1 就是用 PowerShell 写的。

mcp.json
{
  "mcpServers": {
    "evergreen": {
      "type": "http",
      "url": "https://evergreen.example.com/mcp"
    }
  }
}
tools/call 示例
curl -X POST https://evergreen.example.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_context",
      "arguments": { "query": "token 预算", "limit": 3, "budget": 1200 }
    }
  }'

全自动:Agent 自己发现能力,无需人类提示

遵循 A2A v0.3 规范,在 /.well-known/agent-card.json 声明技能列表、传输方式、输入输出模态与扩展能力。支持 A2A 的 Agent 在任务规划阶段读取该卡片,即可把 Evergreen 当作一个可调用的远端技能。

  • skills[] 每项含 id / description / tags / examples,供模型匹配意图
  • capabilities.extensions[] 声明 token-budget 与 citation 两个扩展及其参数
  • securitySchemes 显式标注免鉴权,避免 Agent 卡在授权流程
  • 卡片本身也带 Link: rel="describedby" 头,指回 /llms.txt
/.well-known/agent-card.json(节选)
加载中…

在你自己的 Agent 里直接调用

三段代码,覆盖 Python / TypeScript / 纯 HTTP。核心逻辑一致:先立规(category=rule),再检索(topic),最后按需下钻。

evergreen_client.py
知识库

每一条事实都带 ID、置信度、token 成本与更新时间

这就是 /context.json 的真实内容。ID 稳定不变,因此 AI 的每句结论都能被人工点开核验——这是幻觉率下降的根本原因。

0 条 · 合计 0 token
效果指标

数据来自 1,200 组对照实验

同一问题在「无上下文」与「有 Evergreen」两组条件下各答一次,独立评审模型按标准答案要点覆盖率打分,每组跑 3 次取中位数。口径见 /metrics.json。

上下文形态:token 与信噪比

越往右,AI 越省、越准

按任务类型的准确率

前 vs 后
接入前接入后

预算档位取舍

accuracy vs saving

指标演进

近 6 次 revision
准确率提升token 节省

※ 上述数字为参考实现内置的示例基准,用于说明度量方法与量级。接入你自己的站点后,请按 /docs/evaluation.md 的 A/B 方法重跑,以你的业务数据为准。

文档

全部文档都有 .md 版本

人读 HTML,Agent 读 Markdown。每个页面都在 <head> 里用 rel="alternate" type="text/markdown" 指向自己的纯净镜像。

现在就把这段指令发给你的 AI

复制下面这段,粘贴到任意一个能联网的 AI 对话框里,然后提你的问题。