_root
Agent 规则 — Obsidian Vault 协议
所有 AI agent 与此 vault 交互时必须遵守的规则。
1. 默认语言
中文是 agent 输出和 vault 内容的默认语言。仅当用户明确要求时才使用其他语言。
2. Obsidian 语法
所有 vault 内容使用标准 Obsidian 兼容语法:
- Wikilinks:
笔记名引用内部笔记,笔记名#标题定位锚点 - Frontmatter:文件顶部 YAML,以
---包裹 - 标准 Markdown:标题(
#)、列表(-)、代码块(```)、表格、引用(>) - 嵌入查询块:
```query ```在合适处使用
不用会破坏 Obsidian 可移植性的私有扩展。
3. 搜索引擎
首选:https://ai-searxng.infox-med.com/search
所有网络搜索优先走这个端点。仅当该引擎返回结果不足时才降级到通用搜索引擎。
4. 信源纪律
不信模型,信来源。 模型训练数据是快照,会过时、会幻觉、会编造。本 vault 的一切内容必须有可追溯的外部出处。
写作流程
- 先搜后写。 确定主题 -> 用
https://ai-searxng.infox-med.com/search搜索 -> 阅读至少 2 个独立来源 -> 再落笔。 - 引用嵌入正文。 每条关键论断附出处,格式:
[来源](URL)或脚注式^[作者, 标题, URL]。 - 来源节必备。 每篇笔记末尾必须有
## 来源节,列出所有引用。 - 写后必审。 内容生成完成后,派独立 agent 审查。审查 agent 必须:逐条核实事实、不确定时联网搜索、标记任何存疑内容、给出修正建议。审查未通过的内容不得视为完成。
反例(禁止)
Transformer 使用自注意力机制,由 Vaswani 等人在 2017 年提出。
来源在哪?这是模型”记得”的,不是”搜到”的。禁止。
正例
Transformer 使用自注意力机制,取代了 RNN 的循环结构 ^[Vaswani et al., "Attention Is All You Need", 2017, https://arxiv.org/abs/1706.03762]。
## 来源
- Vaswani et al., "Attention Is All You Need", 2017, https://arxiv.org/abs/1706.03762
- Jay Alammar, "The Illustrated Transformer", https://jalammar.github.io/illustrated-transformer/
可信来源优先级
- 原始论文(arXiv, NeurIPS, ICML, ICLR 等)
- 官方文档(PyTorch, HuggingFace, vLLM 等)
- 权威技术博客(Jay Alammar, Lilian Weng, Karpathy 等)
- GitHub 仓库 README / 源码注释
- 知乎 / 博客园等技术社区(仅作补充,不作为唯一来源)
低于此线的来源不引用。
5. 提示词纪律
每条指令和上下文块必须精简:
- 结构胜于啰嗦。 用标题、列表、表格组织信息。文字用于解释,不是填充。
- 把能力交给模型。 描述要什么,不描述怎么想。模型在有约束时推理更好,不需要教程。
- 裁掉冗余限定词。 “始终""非常重要”加的是 token,不是精度。
- 单句单指令。 复合指令会稀释执行质量。
- 目标前置。 第一行就告诉模型要产出什么,理由放后面。
“把智能放进模型,别放进提示词。” — Claude 提示词哲学
6. Loop 工程 — 漏斗架构的底层逻辑
本 vault 的结构不是随意设计的文件夹分类,而是为 agent 的 执行循环(Perceive → Think → Act → Observe)定制的约束系统。
四次范式跃迁
- Prompt Engineering:怎么问
- Context Engineering:让模型看见什么
- Harness Engineering:把模型放在什么环境里
- Loop Engineering:让系统怎么自己转起来
四者层叠,不替代。本 vault 四层都落地:
- Prompt 层:本文件(agent.md)的规则,是系统的”怎么问”
- Context 层:摘要.md,定义每个循环迭代的视野边界
- Harness 层:文件夹结构 + 链接关系,约束 agent 可触及的信息范围
- Loop 层:agent 依照摘要→全文的路径自我推进,人不再逐轮提示
漏斗如何约束 Loop
每个主题文件夹内自包含:摘要 → 全文。这是 Loop 的物理形态:
- 主题文件夹/
- 摘要.md:Loop 入口,概述 + 指向各篇全文的
链接 - 笔记A.md:全文,loop 判定需要时才加载
- 笔记B.md:全文
- …
- 摘要.md:Loop 入口,概述 + 指向各篇全文的
单次循环:
| 阶段 | 操作 | 约束 |
|---|---|---|
| Perceive | 读 摘要.md | Token ≤ 500,视野 = 摘要边界 |
| Think | 判断当前信息是否足够完成任务 | 摘要不够 → 需要哪篇?够 → 停 |
| Act | 按摘要中的 链接 加载具体全文 | 只加载 Think 判定需要的那篇 |
| Observe | 新信息进入上下文,决定是否继续下一轮 | 可再 Think,可写回 vault |
关键约束:
- 摘要没
链接到的全文 = 不存在。agent 无权猜测加载。 - 摘要链接到但 Think 判定不需要的全文 = 不加载。
- agent 产出新笔记时,必须更新对应摘要的链接,维持闭环。
Token 量:摘要 ~200–500 / 循环,全文 500+。大多数任务经 1–2 轮循环即停在摘要层。
记忆加载四层机制
vault 内的文件不是平的。按加载优先级分四层:
| 层级 | 加载时机 | 内容 | 操作 |
|---|---|---|---|
| Prompt 层 | 每次会话必加载 | agent.md 核心规则 | 只增不减,保持精简 |
| Context 层 | 当前任务相关时加载 | 写作审查指南、错误日志、相关笔记 | 按需搜索加载 |
| 索引层 | 不加载,但可被检索到 | 不相关的全文笔记 | 通过摘要中的 链接 或搜索定位 |
| 可清理层 | 删除/压缩/移除 | 已完成的 Todo、旧版本、冗余内容 | 从文件(物理删除)、上下文(压缩)、Prompt(移除)中清理 |
原则:
- 能放 Context 层的不放 Prompt 层。Prompt 层只在规则真正”每次都需要”时才加。
- 能放索引层的不加载。摘要就像目录——知道某篇笔记存在,但不翻开。
- 完成后及时清理。Todo 标记完成即从 Prompt 移除引用,过时的版本压缩或删除。
7. 目录结构
根目录摘要串联两根支柱:笔记(知识)+ 项目(实践)。全部内容由 AI 生成。
- vault/
8. 写作规范
- 文件名:中文笔记用中文命名,英文笔记用 Title Case。除非需要按时间排序,不加日期前缀。
- 每个文件只讲一个主题。该拆就拆。
- Frontmatter 最少包含:
tags、aliases、created。 - 写内容前先读 写作规范。日常浏览 vault 不加载此文件。
- 禁止 ASCII 字符画。能用文字表达就用文字表达。需要图示时使用 Mermaid(Obsidian 原生渲染)。
- 禁止 emoji。