用途
llm-project-setup 是一份操作指南,用于在多个 LLM 平台上设置和配置项目,包括 Claude Projects、ChatGPT GPTs、Gemini Gems 以及其他 LLM 平台。它使用 ragbot 系统编译生成的 AI Knowledge 内容,为每个平台准备对应的自定义指令和知识文件。
架构概述
AI Knowledge 系统会为每个 LLM 的项目/自定义指令系统生成平台特定内容。
操作与执行位置、时机:
- 知识拼接(all-knowledge.md):在 CI/CD(GitHub Actions)中执行,每次推送到 source/ 时触发。
- 指令编译:在本地执行(ragbot compile),当指令发生变化时(较少发生)。
- RAG 索引:在本地执行(ragbot index),当内容变化且需要 RAG 时。
输出结构:
ai-knowledge-{name}/
├── compiled/
│ └── {project}/
│ └── instructions/ # LLM-specific custom instructions
│ ├── claude.md
│ ├── chatgpt.md
│ └── gemini.md
└── all-knowledge.md # Concatenated knowledge (auto-generated by CI/CD)
关键原则:直接编辑 source/ 文件。知识拼接是自动完成的。
知识交付策略:
- Claude:对仓库进行 GitHub 同步(Claude 直接读取 all-knowledge.md)
- ChatGPT:上传 all-knowledge.md
- Gemini:上传 all-knowledge.md(在 Gem 的 10 文件限制内可用)
Claude Projects 设置
自定义指令:
- 创建一个新的 Claude Project(或打开已有的项目)。
- 进入 Project Knowledge,然后进入 Custom Instructions。
- 复制 compiled/{project}/instructions/claude.md 的内容。
- 粘贴到自定义指令字段中。
知识文件:
选项 A:GitHub 同步(推荐)
- 将你的 GitHub 账户连接到 Claude。
- 同步包含 ai-knowledge 仓库的代码库。
- Claude 会自动索引 all-knowledge.md 和 source 文件。
选项 B:手动上传
- 进入 Project Knowledge,然后进入 Files。
- 从仓库根目录上传 all-knowledge.md。
ChatGPT GPT 设置
创建 GPT:
- 访问 https://chat.openai.com/gpts/editor
- 点击 "Create a GPT"。
- 配置:
- Name:你的项目名称
- Description:简要描述
- Instructions:从 compiled/{project}/instructions/chatgpt.md 复制
知识文件:
- 在 GPT 编辑器中,进入 Knowledge 部分。
- 从仓库根目录上传 all-knowledge.md。
Gemini Gems 设置
创建 Gem:
- 访问 https://gemini.google.com/gems
- 创建一个新的 Gem。
- 粘贴 compiled/{project}/instructions/gemini.md 中的指令。
知识文件:
- 从仓库根目录上传 all-knowledge.md。
- 这个单一文件包含所有 runbook 和数据集合并后的内容。
- 在 Gemini 每个 Gem 的 10 文件限制内运行良好。
其他 LLM(Grok 等)
- 从 compiled/{project}/instructions/ 复制指令(使用最接近的匹配)。
- 从仓库根目录上传 all-knowledge.md。
编译与继承
工作原理:每个用户在自己的仓库中编译项目。包含哪些内容取决于继承关系。
示例:在 ai-knowledge-personal 中编译:
compiled/
├── personal/ # Baseline (ragbot + personal)
├── company/ # personal + company merged
├── client-a/ # personal + company + client-a merged
└── client-b/ # personal + client-b merged
示例:在 ai-knowledge-company 中编译(团队成员没有 personal 访问权限):
compiled/
├── company/ # Baseline (ragbot + company, NO personal)
├── client-a/ # company + client-a (NO personal)
└── client-c/ # company + client-c
隐私模型:内容仅在用户有权访问源仓库时才会被包含。
- 私有内容(ai-knowledge-{personal})仅出现在该用户的编译结果中。
- 团队成员获得团队内容,但不获得个人内容。
- 客户仅获得客户特定内容。
运行指令编译
# Compile instructions for a project
ragbot compile --project {name}
# Without LLM API calls (just assemble)
ragbot compile --project {name} --no-llm
# Force recompile (ignore cache)
ragbot compile --project {name} --force
# Verbose output
ragbot compile --project {name} --verbose
知识拼接(all-knowledge.md)由 CI/CD 自动处理,无需手动步骤。
分步工作流
- 编译指令(仅在指令变化时):
ragbot compile --project {name} --no-llm
-
对每个项目(例如 client-a):
- Claude:创建项目,将 compiled/client-a/instructions/claude.md 复制到自定义指令,对仓库进行 GitHub 同步。
- ChatGPT:创建 GPT,将 compiled/client-a/instructions/chatgpt.md 复制到指令,上传 all-knowledge.md。
- Gemini:创建 Gem,将 compiled/client-a/instructions/gemini.md 复制到指令,上传 all-knowledge.md。
-
使用代表性查询测试每个项目以进行验证。
更新项目
何时更新:
- 知识(all-knowledge.md):每次推送到 source/ 时通过 CI/CD 自动更新。无需手动步骤。
- 指令:仅在指令变化时重新编译(较少发生):
ragbot compile --project {name} --force
- LLM 同步:
- Claude:GitHub 同步自动更新
- ChatGPT/Gemini:源更改后重新上传 all-knowledge.md
故障排查
"Instructions too long":
- 将详细内容移至知识文件
- 检查 manifest.yaml 中的 token 计数
- 保持指令专注于身份和行为
"Knowledge not being used":
- 验证 all-knowledge.md 已正确上传
- 检查内容是在指令中还是在知识中
- 对于 Claude:确保 GitHub 同步处于活动状态并指向该仓库
"Inheritance not working":
- 验证个人仓库中存在 my-projects.yaml
- 检查 compile-config.yaml 中的继承链
- 使用 --verbose 运行以查看继承解析
"Content from wrong repo appearing":
- 检查你在哪个仓库中编译
- 验证你有权访问预期的仓库
- 记住:内容仅来自你可以访问的仓库