我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

llm-wiki-compiler 安全模型深度解析:fail-closed 配置、路径限制与审查门如何构建可审计的 AI 知识库

llm-wiki-compiler 安全模型深度解析:fail-closed 配置、路径限制与审查门如何构建可审计的 AI 知识库 llm-wiki-compiler 安全模型深度解析fail-closed 配置、路径限制与审查门如何构建可审计的 AI 知识库【免费下载链接】llm-wiki-compilerThe knowledge compiler. Raw sources in, interlinked wiki out. Inspired by Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/gh_mirrors/ll/llm-wiki-compilerllm-wiki-compiler命令名llmwiki是一个知识编译器把原始资料笔记、论文、网页、PDF一次性编译成带引用、带审查状态的互联 Wiki。而它最被低估的能力是内建的安全模型——fail-closed 配置、路径限制、审查门三道防线让 AI 生成的知识库在可审计的前提下运行。本文用通俗的方式带你拆解这套机制。为什么 AI 知识库需要安全模型 传统 RAG 工具每次提问都去翻原始文件llmwiki 的思路是先编译、后复用——把知识固化为页面积累结构、来源引用和审查状态见 docs/concepts/karpathy-pattern.mdx。但AI 写内容本身就带风险模型可能输出低置信度结论、伪造引用、甚至被恶意文件夹带私货。llmwiki 的应对哲学是一句话规则由运行时强制执行而不是写在提示词里做约定。违反规则的操作不是警告后继续而是直接失败。Fail-closed 配置出错就停下绝不悄悄放行Fail-closed失败关闭的意思是当配置无法理解时系统选择拒绝工作而不是降低标准继续工作。这在安全领域很常见比如门禁读不懂卡片时应该关门而不是开门。llmwiki 中几个典型的 fail-closed 场景审查策略配置.llmwiki/config.json中出现未知的拦截模式名、或配置文件损坏无法解析时编译会直接报错中止而不是静默禁用审查、把所有页面都写出去。这防止了一次手误悄悄绕过审查门docs/configuration/review-policy.mdx。状态文件版本不匹配如果.llmwiki/state.json是更新版本写入的命令会失败关闭并提供state reset备份后重建的路径docs/troubleshooting/state-recovery.mdx。生命周期配置文件fail-closed 的.llmwiki/profile.json一旦非法声明的实体、关系、工作流全部拒绝生效绕过声明门写入的操作同样失败README.md 中 Configurable Lifecycle Profiles 一节。一句话总结宁可不跑也不带病跑。路径限制任何文件都不能逃出项目目录 这是 llmwiki 源码里着墨最多的一条防线。它要防的攻击很具体假设wiki/或sources/下混进一个符号链接指向项目外部的敏感文件甚至/etc/passwd。如果编译器顺着链接读外部内容就会被读进来、写进生成的页面、甚至塞进 LLM 提示词。llmwiki 的解法集中在两个工具模块src/utils/path-confine.ts提供路径围栏判定——先解析真实路径realpath再确认它确实落在预期目录之内对sources/里的符号链接直接判定不是合法源文件读、列、写三条路径使用同一份定义避免各说各话。src/compiler/confined-wiki-read.ts编译时读 Wiki 页面用的是精确目录围栏 不跟随符号链接 绑定已打开文件句柄的读取方式。一旦路径逃出项目根目录在读取发生之前就返回丢弃逃出去的内容一个字节都不会进入写入计划或模型提示词。而且被丢弃不是静默的文件真实存在却逃出围栏时终端会打出醒目的黄色警告点名是哪个文件、什么机器可读的原因——逃逸链接永远不会被悄悄跟随src/compiler/confined-wiki-read.ts。这种文件句柄绑定还顺带防了一类更隐蔽的竞态读取路径和解码内容之间文件被替换TOCTOU 攻击读到的字节永远属于你打开的那个文件src/utils/confined-read.ts。审查门AI 写的内容人点过头才发布 第三道防线是审查门review gate由 src/trust/ 目录下的信任执行器统一落地。默认行为下compile会把生成的页面直接写入wiki/。你可以把摩擦加上去全量审查compile --review让每一页候选都进队列批准前wiki/纹丝不动按风险拦截在配置里声明拦截模式普通页面照常直写只有命中风险条件的页面被扣下——低置信度低于阈值、与已有页面矛盾、违反 schema 链接规则、引用损坏docs/cli/review.mdx。被扣下的页面不是悬空状态而是进入.llmwiki/candidates/留档附带上具体原因码在线的旧页面保持原样直到你执行review approve把它转正、或review reject归档丢弃。每次编译结束都会汇报写了几篇、扣了几篇队列随时可用review list清点docs/configuration/review-policy.mdx。在 1.0 引入的可配置生命周期配置中这种审查还能绑定到状态机迁移上页面从 draft 到 published 的每次迁移都要满足配置声明的证据与信任门写路径强制执行事后由 standing lint 复查漂移docs/concepts/configurable-lifecycle-profiles.mdx。可审计性每个结论都能追到出处✅ 三道防线之外llmwiki 还让审计成为日常动作引用即证据页面中的段落与论断引用源文件的文件名和行号范围llmwiki lint校验链接与引用有效性docs/concepts/citations.mdx质量记分llmwiki eval输出健康分、逐页健康分布、引用覆盖率与精度最差的页面会被点名docs/cli/lint-eval.mdx变更留痕信任层的日志journal记录迁移前置状态、恢复与回滚src/trust/journal.ts 让谁在什么时候改了什么、依据是什么可回放docs/guides/ci-quality-gates.mdx 展示了如何在 CI 中把 lint/eval 变成质量门。小结三条防线一张表防线防什么行为fail-closed 配置配置错误/损坏被静默绕过直接中止绝不降级运行路径限制符号链接逃逸、外部文件混入围栏外内容不读、不写、不进模型提示词审查门低置信度/矛盾/引用损坏的内容入库扣入候选队列人工批准后发布对新手来说记住一点就够了llmwiki 把安全从提示词约定变成了运行时执行——这也是它敢说编译一次复用很久的底气。想动手试试可以从 docs/quickstart.mdx 跑一个最小项目开始。【免费下载链接】llm-wiki-compilerThe knowledge compiler. Raw sources in, interlinked wiki out. Inspired by Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/gh_mirrors/ll/llm-wiki-compiler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表