AGENTS

image.png

配置

读取 [[AI_CONFIG]] 获取用户自定义配置。配置缺失时使用下方默认值。配置中的参数(触发词、知识域、平台、润色规则等)覆盖本文档中的默认定义。

用户可在 AI_CONFIG.md 的 user-custom-rules 区域添加额外规则,AI 必须遵循。

目录职责

  • raw/ — 原始素材,不可变。AI 只读,永不修改。按主题分子目录,允许多级嵌套。PDF/视频/xlsx/图片保持原文件名。
  • wiki/ — AI 维护的消化笔记。允许多级子目录。每篇文章 md 格式,命名自由(描述性即可)。
  • assets/ — 配图资源。

两个特殊文件(必须维护)

  • wiki/index.md — 全局索引。每篇 wiki 文章一行,按主题分组,带链接 + 一句话摘要 + Updated 日期。
  • wiki/log.md — Append-only 操作日志,记录每次 ingest / query archive / lint。

四个触发行为

触发 1:Ingest(录入素材)

触发词: 读取 [[AI_CONFIG]] → triggers.ingest。默认:"加到 wiki"、"ingest 这个"、"把这个收进来"、"记录下来"、"保存这个"。给 AI 一份新素材并暗示要保存时也触发。

动作:

  1. 把素材存进 raw/<最合适的主题>/。主题不存在就新建。文件名保持原样(PDF/视频/图片)或起描述性名(md 笔记)。
  2. 编译成 wiki/<对应主题>/<文章>.md
    • 和现有文章是同一核心论点 → 合并进去,更新 Sources 和受影响的小节
    • 全新概念 → 新建文章,按概念命名,不按 raw 文件名
    • Sources 格式:wiki 文章的 ## Sources 区域必须链接到本地 raw 文件,使用相对路径(如 [素材标题](../../raw/social/消费研究/小红书-xxx.md)),禁止使用外部 URL。外部链接(如 note_url)仅保留在 raw 文件的 frontmatter 中。
    • 跨多个主题 → 落在最相关的主题下,在文章末尾加"See Also"交叉引用
  3. 检查事实冲突:新素材和已有内容矛盾时,在文章里标注分歧和来源归属。
  4. 级联更新:扫同主题下其他受影响文章,更新它们的 Updated 日期。
  5. 更新 wiki/index.md:给每篇改动过的文章补/改条目。
  6. 追加 wiki/log.md
    ## [YYYY-MM-DD] ingest | <主文章标题>
    - Updated: <级联更新的文章标题>
    

触发 2:Query(查询)

触发词: 读取 [[AI_CONFIG]] → triggers.query。默认:"我知道啥关于 X"、"wiki 里有没有 Y"、"根据我的 wiki 总结一下 Z"、"对比 A 和 B"。

动作:

  1. 先读 wiki/index.md 定位相关文章。
  2. 读文章合成答案。优先引用 wiki 内容,其次才用 AI 自己的训练知识。
  3. 引用时用 markdown 链接:[文章标题](wiki/主题/文章.md)
  4. 默认只在对话里答,不写文件

例外——用户说"存下来"/"归档到 wiki":

  1. 把答案作为新文章写进最相关的 wiki/<主题>/
  2. 不合并进已有文章(归档内容是合成答案,不是素材)。
  3. 更新 index.md,摘要前缀加 [Archived]
  4. log.md 追加:
    ## [YYYY-MM-DD] query | Archived: <页面标题>
    

触发 3:Lint(体检)

触发词: 读取 [[AI_CONFIG]] → triggers.lint。默认:"lint wiki"、"体检"、"wiki 有啥问题"。

确定性检查(尽量自动修):

读取 [[AI_CONFIG]] → lint_checks 确定启用的检查项。默认启用的检查:

  • index_consistencywiki/index.md ↔ 实际文件一致性:文件存在但索引缺 → 补条目;索引指向死文件 → 标 [MISSING]
  • broken_links:wiki 内部 markdown 链接失效:同名文件在别处 → 改路径;找不到 → 报告
  • see_also_links:See Also 链接:同主题明显缺的交叉引用 → 补;链接已删文件 → 删

启发式检查(只报告,不自动改):

默认关闭,可在 AI_CONFIG.md 的 lint_checks 中启用:

  • fact_contradiction:跨文章事实矛盾
  • 新素材让旧论点过时
  • 源头分歧没标注
  • orphaned_pages:孤岛页面(没人引用)
  • missing_cross_refs:跨主题该链没链的概念
  • 反复被提及但没独立页面的概念

完成后追加 log.md:

## [YYYY-MM-DD] lint | <N> issues found, <M> auto-fixed

触发 4:Social Ingest(社交媒体内容录入)

触发词: 读取 [[AI_CONFIG]] → triggers.social_ingest。默认:"爬了这个"、"收录这条"、"这条收进来"。给 AI 一份带 source 字段为社交平台名的文件,或 vault 根目录出现未归档的社交媒体笔记时也触发。

内容知识域分类(按内容主题,不按平台):

读取 [[AI_CONFIG]] → domains 获取完整分类列表。默认知识域:

知识域 涵盖内容
消费研究 探店、测评、好物推荐、价格对比
技能方法 教程、攻略、方法论、经验分享
行业洞察 趋势分析、商业观察、行业报告
生活方式 旅行、美食、穿搭、家居、健康
观点思考 深度评论、思考、价值观输出
创意灵感 设计、文案、营销案例、内容创作
资源收藏 工具推荐、书单、课程、资源清单

知识域可在 AI_CONFIG.md 中自由增删。

统一 Frontmatter 规范(所有社交平台通用):

读取 [[AI_CONFIG]] → frontmatter.requiredfrontmatter.optional 确定字段。读取 [[AI_CONFIG]] → platformscontent_types 确定枚举值。

---
title: 标题
source: <platforms 列表中的值>
author: 作者名
created: YYYY-MM-DD
note_url: 原始链接
domain: <domains 中的 name>
content_type: <content_types 中的值>
credibility: high | medium | low
metrics:
  likes: 0
  collects: 0
  comments: 0
  shares: 0
  views: 0
tags: []
---

动作流程:

第一步:抓取(opencli 管线)

用 opencli 批量抓取笔记详情和图片,每篇笔记独立处理:

# 1. 搜索(按平台替换 xiaohongshu)
opencli xiaohongshu search "<关键词>" --limit 10 -f json

# 2. 获取笔记详情(必须传完整签名 URL,含 xsec_token)
opencli xiaohongshu note "<完整URL>" -f json

# 3. 下载图片到 assets
opencli xiaohongshu download "<完整URL>" --output "assets/xiaohongshu/<笔记标题>"

图片存储规则:

  • 目录用笔记标题命名(如 assets/xiaohongshu/宁波咖啡三巨头/),不用笔记 ID
  • opencli download 会自动创建以 ID 命名的子目录,抓取后需将文件提到标题目录下,删除空的 ID 子目录
  • 其他平台图片路径类推:assets/douyin/<标题>/assets/bilibili/<标题>/

第二步:生成 raw 笔记(图文一体)

每篇 raw 笔记 = frontmatter + 正文 + 配图,必须包含图片引用

opencli obsidian create 创建笔记,确保 Obsidian markdown 格式正确:

opencli obsidian create path="raw/social/<domain>/<文件名>.md" content="<完整内容>"

笔记结构:

---
title: 标题
source: Xiaohongshu | Douyin | ...
author: 作者名
created: YYYY-MM-DD
note_url: 原始链接
domain: 消费研究 | ...
content_type: 实测体验 | ...
credibility: high | medium | low
metrics:
  likes: 0
  collects: 0
  comments: 0
  shares: 0
  views: 0
tags: []
---

<笔记正文>

## 配图

![](../../../assets/<平台>/<笔记标题>/xxx_1.jpg)
![](../../../assets/<平台>/<笔记标题>/xxx_2.jpg)
...

配图路径关键规则:

  • raw/social/<domain>/ 到 vault 根需要上溯三层../../../
  • 完整路径模板:![](../../../assets/<平台>/<笔记标题>/<文件名>.jpg)
  • 图片文件名保持 opencli 下载的原始命名({note_id}_{index}.jpg
  • 如果笔记正文有图文对应关系(如 P2-4 对应某店),尽量将图片插到对应位置而非全部堆在末尾

第三步:分析

  1. 提取核心信息点,形成结构化摘要
  2. 评估可信度 credibility:
    • high:专业领域作者 + 高互动 + 有实测证据
    • medium:普通用户 + 中等互动 + 有细节描述
    • low:疑似软广 / 无细节 / 搬运内容
  3. 扫描 wiki 中是否已有相关主题文章

第四步:消化(按 content_type 差异化处理)

  • 实测体验类(探店、测评):提取结构化数据(名称/价格/评分/优缺点),同主题多篇合并为对比维度
  • 教程攻略类:提取可操作步骤,去掉废话,验证时效性,同技能多篇合并为最佳实践
  • 分析评论类:提取核心论点和论据,与 wiki 已有内容做观点对照,矛盾观点并列保留
  • 资源清单类:提取资源列表,同类去重合并,标注推荐来源数
  • 个人观点类:保留原始观点,标注作者立场,不做主观润色

消化规则:

  1. wiki 已有同主题文章 → 合并新信息,标注新来源
  2. 全新主题 → 新建 wiki/<domain>/<主题>.md
  3. 跨域信息 → 主文章 + See Also 交叉引用

第五步:润色

读取 [[AI_CONFIG]] → polish 获取润色规则。默认规则:

  • 去社交口语(emoji 堆叠、"绝绝子"、"yyds"等 strip_patterns 中的词)
  • keep_subjective: true → 保留有信息密度的主观评价
  • 按 content_type 选择对应的结构化模板
  • output_language: zh → 统一用中文消化(专有名词保留原文)

第六步:收尾

  1. 更新 wiki/index.md
  2. 追加 wiki/log.md:
    ## [YYYY-MM-DD] social-ingest | <主文章标题>
    - Source: <平台> | <作者> | domain: <知识域>
    - Credibility: <high/medium/low>
    - Action: merged into <文章> / created new
    - Images: <N> 张 → assets/<平台>/<笔记标题>/
    

批量模式: 一次给多条笔记时,先全部抓取(搜索+详情+图片),再按 domain 分组消化,减少重复扫描 wiki。被风控拦截的笔记跳过,在 log 中标注。

约定

  • 所有 wiki 内部链接用相对当前文件的路径
  • 对话里引用 wiki 文章用相对 vault 根的路径(例如 wiki/主题/xxx.md)。
  • 日期用今天的日期。Updated 反映文章内容最后变动的时间,不是文件系统时间戳。
  • raw 绝对不能改。如果发现 raw 里有错,在 wiki 文章里标注"source contains error"而不是改 raw。
  • wiki 的 Sources 必须链接到本地 raw 文件,使用相对路径。外部 URL 仅保留在 raw 文件的 frontmatter note_url 字段中,不出现在 wiki 的 Sources 里。
  • 社交媒体图片目录用笔记标题命名(如 assets/xiaohongshu/宁波咖啡三巨头/),不用 ID。opencli 抓取后需将 ID 子目录的文件提到标题目录下。

放开的约束

  • wiki 子目录深度不限wiki/一人企业/agent teams/xxx.md 合法。
  • md 文件命名自由,不强制 YYYY-MM-DD-slug.md 格式。
  • 不强制 Sources/Raw/Updated metadata 处。想加就加,不加也行。
  • raw 里的文件(PDF/视频/xlsx/图片)永不改名
⚠️ 扫码入群加入AI分身计划
AI分身资源
🔒 如需AI相关资源,请扫码入群联系管理员
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享