Feynman 开源贡献指南:从本地开发环境到 PR 合入的完整工作流
【免费下载链接】feynmanThe open source AI research agent.项目地址https://gitcode.com/gh_mirrors/feynman/feynman点击查看免费下载Feynman 是一个 research-first研究优先的 CLI 智能体构建于 Pi 与 alphaXiv 之上以开源形式在仓库中持续演进。本文基于仓库根目录的 CONTRIBUTING.md 整理面向人类开发者和 AI Agent 两类贡献者系统讲解代码、提示词prompts、技能skills、文档、安装器与工作流行为的贡献规范覆盖目录职责划分、Node.js 环境要求、PR 前检查清单、仓库专项约定、AI 辅助贡献与评审预期并结合仓库源码给出可验证的实现依据。一、仓库概览研究优先的 CLI 智能体Feynman 的定位是一个 research-first 的 CLI 工具核心能力是围绕科研研究组织提示词、技能与子代理协作。其项目描述与 README.md 一致The open source AI research agent。对贡献者而言需要先理解它由哪几层构成CLI 与运行时src/目录承载主入口如 src/cli.ts、src/index.ts以及 Pi 启动、模型注册、工作台等子系统内置提示词模板prompts/目录存放随包分发的提示词例如 prompts/deepresearch.md、prompts/lit.md 等研究类工作流内置 Pi 技能skills/目录存放随包分发的技能每个技能一个目录并包含SKILL.md如 skills/literature-review/SKILL.md、skills/alphafold2/SKILL.md内置 Pi 子代理提示词.feynman/agents/目录存放子代理定义仓库中实际存在researcher.md、reviewer.md、verifier.md、writer.md四个文件文档站点website/目录Astro 项目含website/src/pages/与website/src/content/构建/发布脚本scripts/目录如 scripts/install/install.sh、scripts/check-node-version.mjs、scripts/prepare-runtime-workspace.mjs生成的科研产物outputs/、papers/、notes/为运行时工作产物目录其中outputs/放研究成果、papers/放论文风格草稿、notes/放会话日志。一个重要的分工原则是子代理行为不应重复维护。如果需要修改 bundled 子代理的行为应直接编辑.feynman/agents/*.md而不是在 AGENTS.md 中复制一份。AGENTS.md 本身被定义为仓库级协作契约只负责跨代理的仓库约定产物位置、命名、溯源、交接规则不承载每个子代理的具体提示词文本——这一点在 AGENTS.md 开头有明确声明。二、开 PR 前的环境准备Node.js 版本约束贡献指南要求本地开发使用 Node.js24.x并给出了完整的支持范围与约束这部分与仓库源码完全对应支持范围为 Node.js22.22.0至25.x.nvmrc固定首选本地版本仓库中该文件内容为24.18.0package.json的engines字段声明node: 22.22.0 26运行时版本守卫脚本 scripts/check-node-version.mjs 中常量与文档一致MIN_NODE_VERSION 22.22.0、MAX_NODE_MAJOR 25、PREFERRED_NODE_MAJOR 24且该脚本被package.json的preinstall钩子调用在npm install之前执行版本校验。值得注意的是该脚本对过新的 Node 主版本major 25不会中止安装脚本注释明确说明过于新的 Node 若在 preinstall 阶段process.exit(1)会导致 npm 回滚到先前版本反而把用户钉在旧版本上注释中引用 issue #177只有在 major 25 的范围内校验失败时才退出运行时则由bin/feynman.js中的启动器以同样的提示信息强制执行版本区间。另一个版本约束细节可选的 session-search 包仍局限于 Node.js22.x原因是其 sqlite 依赖在更新的 Node 主版本上无法可靠安装。这是贡献者在本地升级 Node 时需要特别留意的前提。推荐的依赖安装流程nvm use || nvm install npm install三、PR 前必须通过的本地检查贡献指南要求在请求评审前依次运行三项检查npm test npm run typecheck npm run build对照根目录 package.json 的scripts字段可以理解每项检查实际做了什么命令实际执行内容说明npm testnode ./scripts/patch-embedded-pi.mjs node --import tsx --test --test-concurrency1 tests/*.test.ts先对嵌入的 Pi 打补丁再以串行--test-concurrency1方式运行tests/下全部*.test.ts仓库中已有数百个测试文件如 tests/pi-runtime.test.ts、tests/science-database-pubmed.test.ts 等npm run typechecktsc --noEmit npm run typecheck:workbench-web根目录 TypeScript 全量类型检查再加workbench-web子项目的类型检查npm run buildnpm run build:workbench-web tsc -p tsconfig.build.json先用 Vite 构建 workbench 前端配置见 workbench.vite.config.ts再编译发布产物此外还有一条可选的架构守卫npm run architecture:check对应 scripts/check-architecture.mjs用于约束源码结构。如果改动涉及文档站点还需单独验证网站cd website npm install npm run build四、贡献范围与规则4.1 什么值得提交贡献指南明确欢迎以下类型的 PR缺陷修复、文档修正、安装器修复、聚焦的工作流改进。而大型功能变更应先在 issue 或具体实现讨论中达成一致后再落地纯重构型 PR 应避免除非它是解锁真实修复的必要条件或由维护者主动要求。对发布行为、安装器行为或运行时默认值的改动必须在 PR 中说明理由不允许静默变更。文案层面要求统一使用美式英语覆盖文档、注释、提示词、UI 文案与示例。4.2 关于营销型内容的边界仓库不允许添加以营销、背书或向第三方产品/服务引流为主要目的的内置提示词、技能或文档。产品集成必须由面向用户的实际价值来论证并以中立语言撰写。这与 AGENTS.md 中每个新功能都要为核心研究任务而战的取向一致Feynman 保持简单而强大拒绝泛化的生产力工作流如融资、提案、销售、行政管理、通用写作等。4.3 保持 PR 聚焦不要把无关的清理工作与真正的变更混在一起行为变化时补充或更新测试用户可见工作流变化时同步更新文档、提示词或技能。五、仓库专项检查细则5.1 提示词与技能变更新工作流通常放在prompts/*.md新可复用能力通常放在skills/name/SKILL.md技能文件保持精简详细的操作规则仅在必要时放入提示词或聚焦的参考文件中若新工作流需要能从 CLI 直接唤起其提示词 frontmatter 必须包含正确的元数据并确保命令能通过正常的提示词发现路径工作。从源码可以印证 frontmatter 的形态例如 prompts/deepresearch.md 的 frontmatter 包含description、args: topic、section: Research Workflows、topLevelCli: true而技能如 skills/alphafold2/SKILL.md 通过name与description声明可被发现的技能名。这些目录通过 package.json 中的pi.extensions、pi.prompts、pi.skills配置挂载到 Pi 运行时值为./extensions、./prompts、./skills。5.2 代理与产物约定AGENTS.md 是仓库级契约约定工作区惯例、交接、溯源与输出命名长期研究流程应将计划产物写入outputs/.plans/并在工作量较大时把 CHANGELOG.md 当作实验笔记本使用琐碎的一次性改动不要更新CHANGELOG.md。AGENTS.md 进一步细化了这些约定贡献者可一并查阅产物目录研究成果进outputs/论文风格草稿进papers/会话日志进notes/计划产物进outputs/.plans/文件命名 slug 规则每个产出产物的工作流必须从主题派生短 slug小写、连字符、无填充词、不超过 5 个词运行内的所有文件以该 slug 为前缀例如计划outputs/.plans/slug.md、草稿outputs/.drafts/slug-draft.md、引证简报slug-brief.md、最终输出outputs/slug.md并禁止使用research.md、draft.md这类泛化文件名以防并发运行冲突溯源与验证/deepresearch与/lit的每个输出都必须带.provenance.md边车文件记录来源核对与验证状态验证应在交付前的verifier阶段完成对定量或代码支撑的输出保留原始产物路径、脚本或日志不能用精致的摘要替代无法完成的检查要如实标记为blocked、unverified或inferred不得粉饰缺失的检查。5.3 发布与版本纪律发布相关的纪律要点curl 安装器与发布文档指向打标签的 release而不是main上的任意提交如果在某个标签之后修复了用户可见问题不允许让main与最新 release 宣传相同版本号却包含不同行为改动发布敏感行为时需要在以下位置核对版本故事.nvmrcpackage.jsonwebsite/package.jsonscripts/check-node-version.mjsREADME.md 与网站安装文档中的安装说明此外package.json中的prepack钩子展示了发布前的完整链路清理发布产物 → 构建 → 给嵌入的 Pi 打补丁 → 重建运行时工作区scripts/prepare-runtime-workspace.mjs --rebuild并且feynmanReleaseBudget字段对发布包设定了硬性预算最大 tarball 131072000 字节、解包后 377487360 字节、文件数上限 42000由 scripts/verify-package-budget.mjs 之类脚本把关——这解释了为什么文档强调保持发布纪律。六、AI 辅助贡献Agent 的参与方式贡献指南明确认可 AI 辅助 PR但贡献者仍对 diff 负全责。具体责任包括理解所提交的代码亲自运行本地检查而不是假设生成的代码是正确的在 PR 描述中提供足够的上下文让评审者能快速理解变更若 Agent 更新了提示词或技能需核对指令与实际仓库行为一致。这与仓库的双重定位相吻合Feynman 自身是一个研究型 Agent而本仓库同时面向人类与 Agent 贡献——例如 AGENTS.md 本身就是写给在此仓库中工作的 Agent 的契约并在其中明确了 Pi 子代理researcher、reviewer、writer、verifier的职责分工与交接规则其中关键论断必须至少经过一次对抗性验证等要求同样适用于贡献过程中的验证环节。七、评审预期提交评审时作者应说明变更了什么、为什么变更指出权衡取舍、后续工作以及任何刻意未处理的内容UI 变更附上截图在再次请求评审前解决已提出的评审意见。八、新手友好领域Good First Areas贡献指南列出的常用贡献方向也是判断哪些改动最容易被接受的参考安装与升级可靠性对应scripts/install/下安装器install.sh / install.ps1 / install-skills.sh / install-skills.ps1与独立原生包的发布逻辑研究工作流质量对应prompts/与.feynman/agents/的提示词质量模型/提供商接入的易用性对应src/model/如 src/model/registry.ts、src/model/api-key-providers.ts与 src/setup/setup.ts 的设置流程文档清晰度对应 README.md 与website/文档站点预览与导出稳定性对应 workbench 相关模块打包与发布卫生对应scripts/下的发布、校验脚本。结语Feynman 的贡献流程围绕研究优先与简单而强大两条主线展开目录职责清晰分层CLI 运行时、提示词、技能、子代理、文档、脚本各自归位Node.js 版本约束与发布预算有源码级守卫支撑提示词/技能/产物/溯源各有专项约定同时为 AI 辅助贡献保留了明确的责任边界。无论是人类开发者还是 Agent遵循 CONTRIBUTING.md 并对照 AGENTS.md 与 package.json 中的实际实现都能快速定位改动归属、跑通本地验证并提交一份符合仓库预期的 PR。赞分享【免费下载链接】feynmanThe open source AI research agent.项目地址https://gitcode.com/gh_mirrors/feynman/feynman点击查看免费下载相关推荐EUI 贡献指南从本地环境搭建到 PR 合并的完整贡献工作流EUI 贡献指南从本地环境搭建到 PR 合并的完整贡献工作流 EUIElastic UI Framework是 Elastic 产品线的组件库因其在 K前端UI组件设计系统OmniRoute 开源贡献指南从环境搭建到合并 PR 的完整开发工作流OmniRoute 开源贡献指南从环境搭建到合并 PR 的完整开发工作流 OmniRoute 是一个以 MIT 协议开源的统一 AI 网关项目通过单一 Op后端API网关LLM 网关人工智能大模型MCP 服务桌面应用OpenCodeReview 贡献指南从环境搭建、开发工作流到 PR 合入的完整实战OpenCodeReview 贡献指南从环境搭建、开发工作流到 PR 合入的完整实战 OpenCodeReviewCLI 命令为 ocr 是一款面向 Gi人工智能AI 应用代码评审开发工具代码质量上一篇ReactPy中的TypeScript声明生成使用reactpy-typescript下一篇Peloton与PostgreSQL兼容性完全指南无缝迁移与集成方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考