首页 / 文章 / 实用提示:RAG已经过时,接下来的是Andrej Karpathy提出的LLM Wiki理念。

实用提示:RAG已经过时,接下来的是Andrej Karpathy提出的LLM Wiki理念。

《实用笔记:RAG已过时。LLM Wiki——安德烈·卡帕西的理念——才是未来方向:为使用RAG的团队提供合约、校验机制及即插即用的代码模块》的操作指南。

2114 词

以下笔记围绕“RAG已死,LLM Wiki——安德烈·卡帕西的理念才是未来方向”这一观点,梳理出一条实用路径。重点在于契约、校验机制以及可直接插入的代码占位符,而非激励性表述。 在梳理整体架构时,首先明确契约内容:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误处理都属于产品本身的功能,而非后续需要补充的内容。

什么是LLM Wiki?

LLM Wiki应被视作一个可度量的载体才能发挥最佳作用。在扩大范围之前,先记录一份理想的处理结果、一个失败案例以及回滚说明。相较于庞大的脚本,宜采用小型且可测试的单元。当某一步骤失败时,故障应能指向具体的责任主体,而非复杂的流程链。需为每轮对话和每次会话设定Token预算——智能工具往往会过度消耗上下文,设置上限可避免演示过程变成意外的费用账单。

四种实现方式

“四种实现方式”若被视为可度量的指标,效果最佳。在扩大范围之前,先记录一份理想的输出结果、一个失败案例以及回滚说明。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,绝不允许默默完成部分任务。 需为每轮及每次会话设定token预算。智能工具往往会过度扩展上下文;设置上限可避免演示过程变成意外的费用账单。

1. nashsu/llm_wiki — 桌面应用

  1. nashsu/llm_wiki — 将桌面应用视为可度量的对象使用效果最佳。在扩大功能范围之前,需记录一份理想运行案例、一个故障案例以及回滚说明。 在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外账单。 为每轮对话和每次会话设定令牌预算。智能代理工具会大量消耗上下文资源,设置上限能防止演示环境变成意外收费的源头。
  2. nashsu/llm_wiki — 将桌面应用视为可度量的对象使用效果最佳。在扩大功能范围之前,需记录一份理想运行案例、一个故障案例以及回滚说明。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。
git clone https://github.com/nashsu/llm_wiki.git
cd llm_wiki
npm install
npm run tauri dev

2. nvk/llm-wiki — 智能代理插件

对于2.nvk/llm-wiki——Agent插件,应在修改代码之前明确输入内容、该步骤的负责人以及终止条件。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。如果后续步骤是代码或工具调用,相比自由形式的文字描述,更应使用具有结构化格式且经过模式验证的输出。

# For Claude Code users
claude plugin install wiki@llm-wiki
# For Codex users
codex plugin marketplace add nvk/llm-wiki# For any LLM agent (including local)
git clone https://github.com/nvk/llm-wiki.git
cp llm-wiki/AGENTS.md ./AGENTS.md
# Pass AGENTS.md as the system prompt to your local agent runner
/wiki init                              # Create ~/wiki/
/wiki:research "machine learning" --sources 10
@wiki query "what is attention mechanism"
@wiki audit                             # Find gaps

3. Pratiyush/llm-wiki——对话记录维基

对于3. Pratiyush/llm-wiki — The Transcript Wiki,修改代码之前需明确输入内容、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功判定标准,并拒绝默许的半完成状态。 当下一步是代码或工具调用时,优先选择具有模式验证的结构化输出,而非自由形式的文字描述。

git clone https://github.com/Pratiyush/llm-wiki.git
cd llm-wiki
./setup.sh            # or setup.bat on Windows
pip install -e .
llmwiki sync          # Parse your transcripts
llmwiki build         # Generate static HTML
llmwiki serve         # Browse at http://localhost:8080
llmwiki mcp start

4. lucasastorian/llmwiki — The MCP-Powered Wiki

对于 4. lucasastorian/llmwiki —— 基于 MCP 的维基平台,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 在功能结果旁记录执行时间以及令牌或查询成本。提前显示成本可避免在流程从演示环境切换到共享环境时出现意外费用。 当下一步操作为编写代码或调用工具时,应优先使用具有架构验证的结构化输出,而非自由形式的文字描述。 对于 4. lucasastorian/llmwiki —— 基于 MCP 的维基平台,在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。

大致如此。

git clone https://github.com/lucasastorian/llmwiki.git
cd llmwiki
cd api && pip install -r requirements.txt && cd ..
cd web && npm install && cd ..export ANTHROPIC_API_KEY=your_key_here
./llmwiki init
./llmwiki open ~/your-documents

应选择哪种模型?

在思考“应选择哪种模型?”时,首先列出相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤出错时,错误应指向单一责任点,而非复杂的流程链。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。

Ollama与vLLM对比

在对比 Ollama 和 vLLM 时,首先要明确约定好相关规范:所需的输入参数、成功标志,以及出现部分失败时的处理方式。这样的清单能确保后续的代码修改始终符合约定。 将这一阶段视为输入与经过验证的输出之间的契约。为相关产物命名,定义成功判定标准,杜绝无声的半完成状态。 每次调用时都要记录请求编号、模型编号以及响应延迟时间。如果没有这些记录,供应商偶尔出现的错误就会被误认为是应用程序的故障。

模型推荐

在处理模型推荐功能时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。 在处理模型推荐功能时,首先需明确相关约定:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 需同时记录正常流程和故障恢复流程。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。

使用 Ollama 运行

将 Ollama 的使用视为可测量的对象时,其运行效果最佳。在扩大范围之前,先记录一个成功的示例、一个失败案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某一步骤失败时,故障应指向单一责任模块,而非复杂的流程链。 在讲解循环逻辑之前,先固定解释器及依赖项的锁定文件。笔记本电脑与持续集成环境之间的差异是 API 演示中最常见的隐性故障原因。

ollama pull qwen2.5:14b
# The API is now at http://localhost:11434
# OpenAI-compatible endpoint: http://localhost:11434/v1

使用 vLLM 运行

将vLLM的运行过程视为可度量的对象,效果最佳。在扩大应用范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 把这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声无息的半完成状态。 需为每轮及每次会话设定Token预算。智能代理工具会大量消耗上下文资源,设置上限可避免演示过程变成意外的费用账单。

pip install vllm
vllm serve Qwen/Qwen2.5-14B-Instruct \
  --max-model-len 131072 \
  --host 0.0.0.0 \
  --port 8000
vllm serve Qwen/Qwen2.5-1M \
  --enable-chunked-prefill \
  --max-model-len 1000000

选择合适的实现方案

将“选择合适的实现方案”视为一个可衡量的指标会更有助于其效果。在扩大范围之前,先记录一份理想的操作流程、一个故障案例以及回滚说明。 在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,就能避免在系统从演示环境转向共享环境时出现意外账单。 为每轮操作和每次会话设定令牌预算。智能工具往往会大量消耗上下文资源,设置上限可防止演示环境变成令人意外的费用来源。 将“选择合适的实现方案”视为一个可衡量的指标会更有助于其效果。在扩大范围之前,先记录一份理想的操作流程、一个故障案例以及回滚说明。 需同时记录正常运行路径和故障恢复路径。重试机制、人工审核环节以及死信处理都是产品不可或缺的部分,而非后续需要补充的功能。

为何这很重要

为了解释其重要性,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向单一责任主体,而非复杂的流程链。若后续步骤为代码或工具调用,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。

入门检查清单

在开始之前,请先明确输入内容、该步骤的负责人以及完成标准,然后再进行代码修改。操作人员应能够从已知的检查点重新执行该步骤,而无需猜测隐藏的状态。 将此阶段视为输入与已验证输出之间的契约。为相关成果命名,定义成功检测标准,并拒绝默许的半完成状态。 当下一步操作是编写代码或调用工具时,优先使用具有架构验证的结构化输出,而非自由形式的文字描述。

来自创始人的留言

根据我们创始人的建议,在修改代码之前应明确输入参数、该步骤的负责人以及终止标准。操作人员应当能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在流程从演示环境转向共享环境时出现意外账单。当下一步操作是编写代码或调用工具时,应优先使用具有架构验证的结构化输出,而非自由形式的文字描述。根据我们创始人的建议,在修改代码之前应明确输入参数、该步骤的负责人以及终止标准。操作人员应当能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的一部分,而非后续需要补充的功能。

操作检查清单

对于操作检查清单,应在修改代码之前明确输入内容、各步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新执行相应步骤,而无需猜测隐藏状态。

将配置信息与应用程序代码分开。环境文件、密钥存储以及功能标志应集中存放于一个位置,这样操作人员无需查看整个系统结构即可进行审计。

当下一步操作是代码执行或工具调用时,优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文本。

在调整提示词之前,需先使用固定的问题集来衡量检索效果。仅仅更换提示词往往无法解决检索能力不足的问题。

尽量降低渲染成本,只有在经过评估后才能将耗时的计算操作放入缓存机制中。过早使用缓存可能会掩盖过时属性带来的错误。

只要预算允许,就应在持续集成过程中加入使用测试用例而非真实付费 API 的冒烟测试,以验证关键路径的功能。

在推广该技术栈之前,需冻结版本、为关键路径生成标准测试记录,并明确回滚步骤。共享环境应设置速率限制、租户验证机制,以及负责密钥轮换的明确责任人。与其追求华丽的临时演示,不如注重扎实的稳定性。

a71fa3c414a4 的批量处理说明:请将服务提供商密钥存放在仓库之外,设定单次会话的令牌上限,并将测试记录与评估用例一同保存,以便后续模型更换时保持对比一致性。