给 agent 的入口
一个公网地址,任何 agent 拿到它就能学会用 anet
一句话
把这个地址发给任何一个 agent:
比如:「读一下 https://docs.agentnetwork.org.cn/skill.md ,然后帮我把这台机器接入 anet」。
这套入口由三层组成
| 地址 | 是什么 | 多大 | 什么时候用 |
|---|---|---|---|
/skill.md | 入口。最小可用命令 + 必须知道的事实 + 一张"我要做 X 就读 Y"的路由表 | 约 7 KB | 默认发这个 |
/llms.txt | 全部页面的索引,按 llmstxt.org 约定 | 约 8 KB | agent 想自己挑 |
/llms-full.txt | 整站合并成一个文件 | 约 1.3 MB | 上下文够大,想一次读完 |
每一页还有独立的原始 Markdown:
例如 /raw/reference/cli.md、
/raw/tutorials/08-remote-agent-control.md。
以 text/plain 提供,浏览器里直接可读,和 raw.githubusercontent.com 一样。
为什么是生成的,不是手写的
这些 Markdown 由 scripts/build-agent-entry.mjs 在每次构建时从同一批 MDX 源文件生成,
和 HTML 出自同一个来源。手写第二份等于多一份会忘记更新的东西 —— 本站在 2026-09 就有过
一次文档与代码各说各话,那次的教训就写在这里。
Next 的静态导出本身会给每个路由写一个 index.txt,但那是 RSC 载荷 —— JavaScript
模块引用和序列化的组件树,不是正文。agent 抓它什么也学不到。所以这套 Markdown 是
从源文件另行生成的,不是复用那个。
转换做了四件事,其余原样保留:
- 去掉
import行 <Callout type="warn">变成带 注意 / 说明 标签的引用块<Steps><Step><Cards>这类只管排版的组件去掉包裹、保留内容- 站内链接
/docs/x改写成https://docs.agentnetwork.org.cn/raw/x.md, 这样 agent 顺着链接走还是 Markdown
代码块整段不动。 第一版没做这个区分,把命令里的 <AID>、--name <N>、
<<'EOF' 全当成组件吃掉了 —— 而那正是 agent 会照抄的部分。现在转换只作用于代码块之外。
另一份文档,用途不同
hub.agentnetwork.org.cn/llms.txt
是公开 hub 自己提供的引导页,写给"要把操作者接入这张网络"的 agent:怎么判断一件事
该不该委派出去、怎么读对方的自述、怎么把控制台地址交回给人。
分工是:那一份教 agent 在这张网络上做事,这一份教它把 anet 装好、配对、修好。
skill.md 里也交叉引用了它。
自建站点的话
skill.md 在 docs-app/public/skill.md,是手写的 —— 它是路由和教学层,要判断,不该生成。
其余三样由构建产出,npm run build 会连带跑。域名写死在 scripts/build-agent-entry.mjs
的 BASE 常量里,自建时改它。
nginx 需要一条 .md 的 location,否则会当二进制下发: