
人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载本文基于 Mooncake 仓库根目录的 AGENTS.md 整理。该文件并非面向终端用户的普通说明文档而是仓库为编码 AI Agent以及所有人类贡献者制定的仓库内协作规则覆盖docs/目录变更纪律、Pull Request 提交前检查、PR 标题前缀、AI 辅助变更披露、pre-commit 工具链使用与“保持 PR 精简”等关键要求。读完本文你将掌握一套可直接复制的贡献工作流从确认变更范围、填写 PR 模板到用pre-commit run --files做增量检查、用scripts/code_format.sh格式化 C/C 代码最终产出一个低摩擦、易审查的 Pull Request。AGENTS.md 在 Mooncake 仓库中的定位在大型开源仓库中AGENTS.md通常扮演“给 AI Agent 看的 README”它不像README.md那样介绍项目是什么而是告诉自动化和半自动化的编码助手在本仓库内该遵守什么纪律、如何自查、如何交接。Mooncake 根目录的 AGENTS.md 一共只有三大部分docs/目录变更规则修改docs/下的文件前必须先读 docs/AGENTS.mdPull Request 指南PR 标题前缀、RFC 预期、查重、PR 模板与 AI 披露、pre-commit 运行范围、PR 精简原则无额外章节全文精简突出“小而可审查”的仓库协作文化。与之对应仓库里还存在一份面向文档子系统的 docs/AGENTS.md它规定了docs/变更的构建与预览流程make clean、make html、python -m http.server -d build/html/、Sphinx 导航约束保持相对链接、不注入客户端 JS 等以及验证清单。两文件分工明确根 AGENTS.md 管全局协作纪律docs/AGENTS.md 管文档子系统的工程细节。docs/ 目录变更规则先读局部规范再动手根 AGENTS.md 的第一条要求是Before modifying files underdocs/, readdocs/AGENTS.md.这意味着当你的改动涉及 docs/source 下的文档页面时必须先阅读 docs/AGENTS.md遵守其约束变更范围仅限docs/尤其是docs/source/偏好小而可审查的文档改动不要顺手重写无关页面、生成文件或仅做格式调整的内容保留既有文档结构除非用户明确要求大规模重组导航改动需先检查 docs/source/index.md 及对应 toctree构建前在docs目录执行make clean交付用户可见改动前必须make html预览站点python -m http.server -d build/html/默认http://localhost:8000端口被占用时换用其他可用端口。从文档结构看docs/下还有requirements-docs.txt依赖清单与 docs/Makefile构建体系是标准 Sphinx 工程docs/AGENTS.md 中推荐的依赖安装方式是uv venv uv pip install -r requirements-docs.txt。这些内容共同构成“文档类 PR”的完整操作手册。Pull Request 指南提交流程的核心纪律先查重不制造重复工作AGENTS.md 明确要求在为一个“非平凡”nontrivial改动开 PR 之前先检查是否已有 issue 或 open PR 覆盖同一改动。如果工作范围重叠应解释差异而不是重复提交。这是大型多模块仓库Transfer Engine、Store、Conductor、EP/PG、Reshard 等十余个子系统避免 PR 冲突与维护负担的关键手段。拒绝低价值 busywork PR文档明确禁止“为孤立的拼写、风格或机械性改动”开低价值 PR除非这些改动属于某个实质性请求的一部分。这与 CONTRIBUTING.md 中“keep changes as concise as possible”的指导思想一致改动越聚焦reviewer 越容易判断正确性。使用 PR 模板并完整填写提交 PR 时必须使用 .github/pull_request_template.md并填写以下相关区块Description清晰、简洁地描述变更链接相关 issueModule勾选受影响模块包括 Transfer Engine、Mooncake Store、Mooncake Conductor、Reshard、Mooncake EP、Mooncake PG、Integration、P2P Store、Python Wheel、Common、Mooncake RL、CI/CD、Docs、Other 等选项Type of ChangeBug fix / New feature / Refactor / Breaking change / Documentation update / Performance improvement / OtherHow Has This Been Tested?给出测试命令与结果勾选单元测试、集成测试或手工测试Checklist自评代码、使用./scripts/code_format.sh格式化、pre-commit 全部通过、必要时更新文档与测试对于超过 500 LOC 的变更还需说明已提交 RFC issueAI Assistance Disclosure如实披露是否使用 AI 工具及其帮助范围。模板末尾特别强调使用 AI 工具时人类提交者必须审查每一行改动并能为整条变更负责。这实际上把 AGENTS.md 中的“AI-assisted changes”条款落实到了模板层面形成制度闭环。PR 标题前缀按模块分类根 AGENTS.md 要求遵循 CONTRIBUTING.md 中的 PR 标题前缀规则。官方推荐前缀包括前缀适用模块[Bugfix]Bug 修复[CI/Build]构建与 CI 改进[Doc]文档修复与改进[Conductor]mooncake-conductor[Integration]mooncake-integration[P2PStore]mooncake-p2p-store[Store]mooncake-store[TransferEngine]mooncake-transfer-engine[Misc]其他谨慎使用同时项目历史中还出现过[Bug fix]、[Build]、[CI]、[Docs]、[EP]、[Feature]、[MUSA]、[PG]、[TE]、[TENT]、[Wheel]等别名/模块前缀在更贴合变更范围时可以使用。对于大型架构性改动500 LOC不含 kernel/数据/配置/测试CONTRIBUTING.md 要求先提交一个 GitHub issueRFC讨论技术设计与依据否则 PR 可能被标记为rfc-required且暂不审查。这也是 AGENTS.md 中 “RFC expectations” 的实际含义。pre-commit 工具链增量检查的正确姿势安装与初始化根 AGENTS.md 提到“在工具链可用时对改动的文件运行 pre-commit”。根据 CONTRIBUTING.md安装方式为pip install -r requirements.txt pre-commit install安装后每次 commit 会自动触发 hooks。.pre-commit-config.yaml 的注释给出了四类典型用法# 1) 仅检查暂存文件默认提交行为 pre-commit run # 2) 仅检查相对 PR 基线默认 origin/main变更过的文件 —— 日常 PR 推荐 git fetch origin main pre-commit run --files $(git diff --name-only --diff-filterACMR origin/main...HEAD) # 3) 全仓库检查仅限有意的全局清理 pre-commit run --all-files # 4) 显式格式化全部 C/C 文件 ./scripts/code_format.sh --all关键区别根 AGENTS.md 特别强调“不要为常规 PR 使用pre-commit run --all-files”。因为全仓库运行可能重写与本次变更无关的文件这些无关改写必须排除在 PR 之外。Hooks 一览.pre-commit-config.yaml 与 CONTRIBUTING.md 共同给出了完整的 hook 清单类型工具作用通用trailing-whitespace / end-of-file-fixer基础卫生检查项目./scripts/code_format.sh --staged提交前格式化暂存的 C/C 改动Pythonruff / ruff-formatLint 格式化含 import 排序拼写codespell捕获常见拼写错误忽略领域词CMakecmake-format保持构建脚本可读性元检查check-yaml / check-merge-conflict / check-added-large-files防止坏提交配置中还包含一个值得注意的项目特有 hookstore-rust-dlopen-bindings当 mooncake-store/include/store_c.h 或 Rust dlopen 绑定生成器的输入变化时会用cargo run --locked --manifest-path mooncake-store/rust/Cargo.toml --example generate_dlopen_bindings重新生成绑定并检查 diff防止绑定文件过期。该 hook 在 pre-commit.ci 上被跳过skip: [store-rust-dlopen-bindings]因为托管镜像缺少 Cargo 与 libclangGitHub Actions 才是它的权威检查渠道。C/C 格式化code_format.sh 与 clang-format 20scripts/code_format.sh 是 Mooncake 的 C/C 格式化入口核心要求是clang-format 版本 20优先clang-format-20也接受版本号为 20 的通用clang-format。常用参数./scripts/code_format.sh # 格式化相对 origin/main 变更过的文件 ./scripts/code_format.sh --all # 格式化全项目 C/C 文件 ./scripts/code_format.sh -b origin/dev # 指定对比基线分支 ./scripts/code_format.sh --check # 仅检查不修改 ./scripts/code_format.sh --staged file.cpp # 仅格式化暂存的增删行pre-commit 调用 ./scripts/code_format.sh --changed-lines --check # 检查 PR 变更行脚本要点从源码结构看通过git-clang-formatgit-clang-format-20委托 LLVM 的 Git 集成做行级格式化只处理相对基线实际变化的行自动排除cachelib_memory_allocator与thirdparty目录同时设有严格守卫——若某文件同时存在暂存与非暂存改动或已提交文件仍有未提交改动会直接报错要求先暂存/提交防止格式化结果与索引状态不一致。若缺少 clang-format 20脚本会输出 Ubuntu 下的安装指引如sudo apt-get install -y clang-format-20。这种“本地 hook 与 CI 共用git-clang-format行级检查”的设计在 CONTRIBUTING.md 中有明确说明CI 只校验相对选定基线新增或修改的 C/C 行避免因为同一文件里未触碰的旧代码格式不佳而让聚焦的改动失败。保持 PR 精简提交前自查清单根 AGENTS.md 的最后一条要求是Keep PRs lean: reviewgit diffbefore staging, and include only changes required for the requested task.结合 docs/AGENTS.md 中“Reviewgit diffbefore staging so generated files or hook-only formatting changes do not leak into the PR”提交前应完成git diff自查确认只包含任务必需的改动排除生成文件、hook 引发的无关重写pre-commit 增量运行对变更文件执行pre-commit run --files $(git diff --name-only --diff-filterACMR origin/main...HEAD)首次运行会安装 hook 环境C/C 格式化限定在暂存行或 PR 变更行范围内AI 变更披露与人工复核若改动由 AI 辅助完成人类提交者逐行审查并在 PR 模板的 AI Assistance Disclosure 区块如实说明hook 版本维护定期pre-commit autoupdate并单独提交chore: pre-commit autoupdate配置中已预设autoupdate_commit_msg。完整贡献工作流小结综合 AGENTS.md 与仓库内相关文件一个符合 Mooncake 协作规范的贡献流程是确认改动范围若涉及docs/先读 docs/AGENTS.md检查已有 issue / open PR 是否覆盖同一改动避免重复劳动提交前运行pre-commit run --files ...PR 范围与./scripts/code_format.shC/C审查git diff只暂存任务必需文件按 .github/pull_request_template.md 填写 PR使用正确模块前缀标题见 CONTRIBUTING.md超过 500 LOC 的架构改动附上 RFC issue若使用 AI 工具如实披露并保证人工逐行复核。这套流程的价值在于把“可审查性”固化为制度从查重、模块化标题、模板化描述到行级格式化与增量 pre-commit每一个环节都在降低 reviewer 的认知负担这也是 Mooncake 这种包含十余个子系统的大型仓库能够保持快速、健康迭代的基础。赞分享人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载相关推荐Apache Druid 贡献指南从代码规范到 Pull Request 的完整协作工作流Apache Druid 贡献指南从代码规范到 Pull Request 的完整协作工作流 Apache Druid 是一个高性能的实时分析数据库其代码库由物联网后端数据可视化消息队列openage 贡献指南从 Issue 到 Pull Request 的完整协作工作流openage 贡献指南从 Issue 到 Pull Request 的完整协作工作流 本文以 openage 仓库的 doc/contributing.md游戏开发图形学XGo 贡献指南从 Fork 到 Pull Request 的完整协作流程与提交规范XGo 贡献指南从 Fork 到 Pull Request 的完整协作流程与提交规范 本文以 XGo 官方贡献指南 https://link.gitcode.编程语言编译器开发工具上一篇es-toolkit/compat omit 全面解析深路径删除、多重键组合与性能取舍下一篇Qwen图像编辑革命4步极速创作专业效率提升400%创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考