以后你提交的Linux内核补丁,如果用了AI帮忙,必须在提交信息里加上一行Assisted-by: Claude:claude-3-opus coccinelle sparse这样的标签。这是Linux内核开发社区刚出的硬性规定。
- AI工具绝对不能添加Signed-off-by标签,只有人类能合法认证开发者来源证书
- 人类提交者必须亲自审查所有AI生成的代码,确保符合GPL-2.0-only许可要求
- 所有AI辅助的贡献必须包含Assisted-by标签,格式是Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
AI可以写代码,但不能签责任
讲真,这个规定最核心的一点就是责任归属。文档里白纸黑字写着:AI agents MUST NOT add Signed-off-by tags. Only humans can legally certify the Developer Certificate of Origin (DCO).
什么意思?就是说AI工具可以帮你写代码、改bug、优化性能,但最后那个“我确认这代码是我写的,或者我有权提交”的签名,必须是人来签。而且签了名的人要对整个贡献负全责,包括AI生成的那部分。
人类提交者要负责四件事:审查所有AI生成的代码、确保符合许可要求、添加自己的Signed-off-by标签、承担全部责任。说白了,AI就是个高级助手,出了事还是你背锅。
那个Assisted-by标签到底怎么写
文档给了具体的格式规范,而且特别强调:proper attribution helps track the evolving role of AI in the development process. 说白了就是要给AI在开发过程中的角色留个记录。
格式是这样的:
Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
AGENT_NAME是AI工具或框架的名字,比如Claude、GitHub Copilot。MODEL_VERSION是具体模型版本,比如claude-3-opus、gpt-4-turbo。后面方括号里可以加专门的分析工具,比如coccinelle、sparse、smatch、clang-tidy这些。
文档还特意说了,git、gcc、make、编辑器这些基础开发工具不用列。只列那些专门做代码分析、模式匹配的高级工具。
官方给了一个例子:
Assisted-by: Claude:claude-3-opus coccinelle sparse
意思就是这次提交用了Claude的claude-3-opus模型,还用了coccinelle和sparse这两个工具做代码分析。
许可要求一点都不能马虎
许可这块是Linux内核的底线。文档明确说了:All code must be compatible with GPL-2.0-only。所有代码都必须兼容GPL-2.0-only许可。
要用合适的SPDX许可证标识符,具体规则看这个文档:
Documentation/process/license-rules.rst
而且AI工具和开发者用AI辅助的时候,还是要走标准的内核开发流程,文档里列了三个核心文档:
Documentation/process/development-process.rst
Documentation/process/coding-style.rst
Documentation/process/submitting-patches.rst
你想啊,Linux内核这种级别的项目,代码风格、提交流程都有严格规定,AI生成的东西也得符合这些规范,不能因为用了AI就搞特殊。
这事对普通开发者意味着什么
首先,如果你以后想给Linux内核贡献代码,用了AI工具就得老老实实加那个Assisted-by标签。不加的话,维护者可能会让你补上,甚至直接拒绝你的补丁。
其次,审查责任完全在你身上。你不能说“这代码是AI生成的,有问题不关我事”。签了Signed-off-by,你就得对每一行代码负责,不管是人写的还是AI写的。
最后,这个规定可能会成为开源社区的样板。其他大型开源项目很可能也会跟进,制定类似的AI辅助贡献规范。毕竟Linux内核是开源世界的风向标。
留言聊聊
你现在给开源项目贡献代码,会用AI工具辅助吗?如果用了,你会主动说明吗?
来源:Hacker News AI|原文:AI assistance when contributing to the Linux kernel