资讯动态

LocalAI AI 辅助贡献规范:许可证合规、DCO 签认与 Assisted-by 溯源实践指南

发布时间:2026/9/10 22:47:56 来源:尧图企业网站定制
LocalAI AI 辅助贡献规范许可证合规、DCO 签认与 Assisted-by 溯源实践指南【免费下载链接】LocalAILocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAILocalAI 是一个以 MIT 许可证开源的 AI 引擎其社区协作同样向 AI 编程助手Claude、Copilot、Cursor、Codex、Aider 等开放但这并不意味着 AI 可以替代人类完成法律与质量层面的全部责任。本文基于仓库中 docs/content/reference/ai-coding-assistants.md 参考文档及其背后的政策源文件 .agents/ai-coding-assistants.md系统梳理在向 LocalAI 提交 AI 辅助贡献时必须遵守的许可证要求、Signed-off-by与 DCODeveloper Certificate of Origin签认规则、Assisted-by溯源格式以及人类提交者的责任边界帮助贡献者与 AI 工具正确、合规地参与到该项目的开发中。政策出处文档层级与源文件关系AI 辅助贡献政策在仓库中有多个落点它们构成一套相互引用的文档体系面向站点读者的参考页docs/content/reference/ai-coding-assistants.md 是 Hugo 参考reference章节中的公开页面带disableToc、title、weight等 front matter用于向访问文档站的开发者说明政策要点。政策的源文件source of truth.agents/ai-coding-assistants.md 被 AGENTS.md 与 CONTRIBUTING.md 明确称为full policy source of truth是 Agent 与维护者实际遵循的权威文本。仓库级入口文件AGENTS.md 是给 AI 编程助手的统一入口其符号链接形式为 CLAUDE.md以何时该读哪个文件的表格索引全部专题指南CONTRIBUTING.md 则是人类贡献者的开发流程手册内含 AI Coding Assistants 摘要章节。政策本身并非 LocalAI 原创而是对齐 Linux 内核项目的 AI 辅助贡献指南内核文档站docs.kernel.org上的 coding-assistants 政策并针对 LocalAI 的 MIT 许可证与仓库目录布局做了适配。若对某个条款意图理解有歧义内核文档是判断意图的权威参考。除政策文件本身外AI 工具参与开发还应遵循标准流程参考以下配套文档文档作用CONTRIBUTING.md开发工作流、分支命名、conventional commits 提交规范与 PR 指南.agents/coding-style.md代码风格、editorconfig、日志与文档约定.agents/building-and-testing.md构建与测试流程含各平台 Docker 构建许可证与法律要求MIT 兼容是第一道门槛LocalAI 采用MIT License许可证全文见仓库根目录的 LICENSE版权人为 Ettore Di Giacintomudlerlocalai.io。AI 辅助贡献首先必须在许可证层面合规新源文件应使用 SPDX 许可证标识MIT视文件类型而定。这一要求在仓库中已有落实——例如 backend/cpp/llama-cpp/passthrough_options.h、backend/cpp/ds4/request_lifecycle.h 等较新的 C/C 后端文件顶部都携带了SPDX-License-Identifier行Python 后端的构建脚本如backend/python/longcat-video/Makefile同样如此。贡献必须与 MIT 兼容不得引入 GPL 等不兼容许可证的代码除非与维护者显式沟通并达成一致。换句话说即使代码是 AI 生成的它进入仓库后依然按 MIT 授权对外发布因此这段代码的许可证是什么、是否允许并入 MIT 项目必须由提交者事先确认而非交给模型自行判断。Signed-off-by 与 DCOAI 绝对不能代替人类签认**开发者来源证书DCO**的签认具有法律含义它声明签名者有权贡献该代码、理解其许可证并对其负责。LocalAI 政策对此给出了一条不可逾越的红线AI Agent 不得添加Signed-off-by标记。只有人类才能合法地对 DCO 做出认证。人类提交者因此必须承担以下全部责任审阅所有 AI 生成的代码确保符合许可证要求在项目要求 DCO 时添加自己的Signed-off-by标记以认证该贡献为贡献承担全部责任。同时AI Agent 也不得为自己添加Co-Authored-By共同作者尾注。一份贡献只能由人类评审者拥有AI 的参与通过Assisted-by尾注记录见下文而不是把自己写成共同作者。例外维护者亲自运行的自动化上述规则覆盖的是最常见场景——AI 助手帮助一位人类贡献者随后由人类签认。但它不适用于另一种情形维护者自己运行的自动化机器人直接打开 PR没有人类提交者可以签名。如果机械地执行AI 不得签名这类 PR 将永远无人签认DCO 检查会将其永久卡死。因此政策规定维护者运营的机器人必须添加Signed-off-by且署名必须指向操作它的那位维护者本人而不是机器人、也不是模型。例如Assisted-by: Codex:gpt-5 Signed-off-by: Ettore Di Giacinto mudlerlocalai.io这并非 AI 在认证 DCO——签名的是维护者正如他们手工敲入一个提交时那样维护者配置了自动化、拥有其产出、并在合并时为其负责。Assisted-by尾注依然如实记录了模型产出了这段代码溯源链没有被破坏。这一例外非常狭窄不会为任何其他人放宽规则仅适用于 LocalAI 维护者运营、且其产出在合并前由该维护者评审的自动化签认者必须是接受 DCO 责任的真实个人帮助外部贡献者的 AI 助手依然不得签认签认尾注由该贡献者自己添加机器人不得代表除其操作者以外的任何人签认也不得为它推送分支的那个贡献者添加尾注若自动化向他人分支贡献代码则把签认留给该贡献者完成。溯源机制Assisted-by 提交尾注格式当 AI 工具参与 LocalAI 开发时规范化的溯源有助于跟踪 AI 在开发过程中不断演化的角色。贡献应在提交信息的尾注区trailer包含Assisted-by标记格式如下Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]各字段含义字段含义示例AGENT_NAMEAI 工具或框架的名称Claude、Copilot、Cursor、CodexMODEL_VERSION使用的具体模型版本claude-opus-4-7、gpt-5[TOOL1] [TOOL2]Agent 调用的专项分析工具可选golangci-lint、staticcheck、go vet注意基础开发工具不应被列出——git、go、make、编辑器这类人人都用的常规工具不算分析工具无需在尾注中声明。值得说明的是本仓库确实维护着可供这类专项工具消费的静态检查配置.golangci.yml 定义了以与 master 的 diff 为新代码基线的 lint 策略new-from-merge-base: origin/master并启用了forbidigo等规则约束代码风格例如禁止测试中使用t.Errorf/t.Fatal要求改用 Ginkgo/Gomega 的Expect(...).To(...)。这意味着 AI 声称跑过golangci-lint是可被复核、有价值的也正因如此政策只认可专项分析工具进入Assisted-by。完整示例政策给出了一段完整的提交信息示例同时演示了 conventional commits 风格、范围scope与清晰 body 的组合fix(llama-cpp): handle empty tool call arguments Previously the parser panicked when the model returned a tool call with an empty arguments object. Fall back to an empty JSON object in that case so downstream consumers receive a valid payload. Assisted-by: Claude:claude-opus-4-7 golangci-lint Signed-off-by: Jane Developer janeexample.com示例中值得注意的要点标题fix(llama-cpp): ...使用 conventional commits 的类型(范围)格式scope 精确到后端模块符合 CONTRIBUTING.md 中短小、祈使句、72 字符内、用 body 解释 why的提交规范body 交代了修复动机此前解析器在模型返回空 arguments 对象时会 panic与修复策略回退到空 JSON 对象以保证下游收到合法 payloadtrailer 区严格分层Assisted-by记录 AI 工具与模型Claude:claude-opus-4-7及专项工具golangci-lint随后是人类的Signed-off-by。责任边界审阅、验证与幻觉防护使用 AI 助手不会降低贡献者的责任。人类提交者必须理解进入 PR 的每一行代码验证生成的代码能编译、通过测试并符合项目风格LocalAI 的构建/测试入口与具体过程见 .agents/building-and-testing.md确认代码引用的任何 API、flag 或文件路径在当前代码树中真实存在——政策明确指出AI 模型可能幻觉出并不存在的标识符。这一点在 LocalAI 这样功能面庞杂的仓库多后端、多能力注册表、REST 与 MCP 双暴露面中尤其关键AGENTS.md 为此专门强调新端点必须同步出现在 swaggerTags、/api/instructions注册表、auth 的RouteFeatureRegistry、React UI 的capabilities.js与文档等每一处能力面中漏掉任何一处都会让客户端与 UI 感知不到该功能不得未经审阅就逐字提交 AI 输出。此外评审者可以对任何变更要求澄清无论其是如何产生的。面对设计问题这是 AI 写的不是一个可接受的答复——AI 参与不构成降低评审标准、免除解释义务的理由。落地检查清单综合政策文档与仓库配套文件可以总结出人类贡献者与 AI 工具各自的行事清单对 AI 工具Agent / Bot不要添加Signed-off-by或Co-Authored-By为自己署名用Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]记录参与不列出 git/go/make 等基础工具遵守 AGENTS.md 及其索引的专题指南构建、测试、代码风格等不引入 MIT 不兼容的代码新源文件按需添加 SPDX 标识MIT。对人类贡献者逐行审阅并理解 AI 生成的代码验证编译、测试与风格合规核实引用的 API、flag、文件路径真实存在警惕模型幻觉亲自添加Signed-off-by认证 DCO承担全部责任使用 conventional commits 风格提交如fix(llama-cpp): ...并在 trailer 区先Assisted-by后Signed-off-by。对维护者运营的自动化唯一例外以操作者的真实身份添加Signed-off-by并保留Assisted-by溯源不代其他贡献者签名不为其推送的分支添加尾注。政策本身是一份活文档living document。如果你不确定某个具体贡献应如何适用以上规则建议在提交前先打开 issue 或与维护者沟通确认——这也正是该参考页以提示框形式给出的官方建议。对本仓库而言最权威的落点始终是 .agents/ai-coding-assistants.md配套流程详见 CONTRIBUTING.md 与 AGENTS.md。【免费下载链接】LocalAILocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价