ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Pydantic AI 文档编写规范:为读者价值写作的文档、Docstring 与代码注释指南

Pydantic AI 文档编写规范:为读者价值写作的文档、Docstring 与代码注释指南 Pydantic AI 文档编写规范为读者价值写作的文档、Docstring 与代码注释指南【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai本文是 Pydantic AI 仓库内部《Documentation》主题指南agent_docs/documentation.md的完整解读与仓库级落地佐证。它面向编写或审查文档、docstring、注释、示例及其他面向用户文本的贡献者与代码审查者提炼自真实 PR 审查模式。读完本文你将掌握一套可直接复用的文档写作检查清单如何让每一段用户可见文本都服务于读者决策、如何在文档/示例/docstring/注释四类载体中保持术语与事实的一致、如何用{#custom-id}稳定锚点与 docs/navigation.yml 发布新页面以及仓库如何用自动化链接检查、示例执行测试兜底验证文档质量。Pydantic AI 将文档即产品视为核心工程理念——在仓库根 AGENTS.md 中明确写道公开 API、抽象、文档与代码本身都是产品值得与功能同等审慎的对待。基于此agent_docs/index.md 维护了一套从 PR 审查模式提炼的编码指南!-- braindump: rules extracted from PR review patterns --其中 Documentation 正是针对所有面向用户文本的专项主题指南。本文逐一拆解其规则并给出仓库内的源码、配置与测试证据。指南的定位与适用时机该指南定义在 agent_docs/documentation.md 顶部When to check: When writing or reviewing documentation, comments, docstrings, examples, or user-facing text即只要你的改动涉及以下任何一类文本都应遵循本指南正式文档docs/下发布的 Markdown 页面代码注释#注释函数/类 docstring文档中的代码示例错误消息、警告、日志等一切面向用户的文本。在 agent_docs/index.md 的主题指南索引中documentation.md与 code-simplification.md、api-design.md、concurrency.md、pydantic-ai-slim.md 并列分别覆盖写或审查文档类文本与设计/修改公开 API、参数与类接口等场景。仓库根 AGENTS.md 进一步强制在仓库任何位置生成或审查代码时都必须先读 agent_docs/index.md 并遵循其中规则且在工作于docs/时还要读目录级指令 docs/AGENTS.md含 docs/CLAUDE.md内容一致。核心原则一为读者价值写作Write for reader value指南的第一节是全文总纲四条规则定义了好文档的判据它们同样适用于注释、docstring 与错误消息最小化读者需要做的推理。保留每一个有用的事实、条件、后果、限制与区分。写作时不要在读者的推理负担上讨价还价。删减测试法逐条审视每个从句、括号、对比、类比与解释性尾巴——在脑中删除它只有读者不损失任何有用信息时才删除当同样的信息能表达得更清楚时就缩短或重写而不是照搬。偏好直接、具体的陈述与可观察行为而不是泛泛的框架话、未经支持的宣传、含糊的指代、空洞的安抚或显而易见的反面表述。保留能防止误解的替代方案与否定边界。rather than、only、never、without这类词往往承载关键信息不能为了简洁而删掉。此外还有两条贯穿性要求保留有用的人声。只有当特定段落因改写而变得更清晰、更准确时才改变第二人称、被动语态、长句、括号、破折号或口语化表达——人声不是缺陷是文档可读性的资产。一个概念只用一个精确术语并且跨代码、文档、注释、错误消息与其他用户可见文本保持一致。这保证了用户无论在哪里遇到同一个概念都能对应到同一词汇。这条术语一致原则在仓库中有具体实例错误消息中出现的代码标识符必须用反引号包裹agent_docs/index.md的rule:910例如工具名应写作Tool name之外更推荐用fTool {name!r}的反引号等价形式以明确界定值域而在文档与配置中模型标识符必须使用{provider}:{model}前缀格式rule:390例如 AWS Bedrock 要求us.anthropic.claude-{model}-{version}:0这类平台特定格式——术语与标识符的一致性是防止用户误配置的第一道防线。文档与示例帮读者先做对决策再做对操作指南的Documentation and examples一节共十条规则是篇幅最大、落地最重的一节1帮助读者决定该做什么然后正确地做。当有助于检索时以读者的行动或决策开头同时保留前置条件与后果。文档的价值排序是决策 操作 细节。2让推荐方案容易被找到。对有意义的替代方案、权衡、冲突与否定边界要明确解释——不能只写推荐 A还要说清为什么不选 B、什么情况下选 B。3以当前 API 为主。仅当读者需要迁移或兼容性指引时才包含已弃用或历史行为。4实现细节只讲会改变用户决策或能解释可观察行为的那部分。这是区分文档与实现笔记的界线。5行为变更要在同一个 PR 中同步到所有受影响的用户可见面。修复文档与实现之间的冲突而不是留下两份互相竞争的矛盾契约。6每个受维护的事实只有一个权威出处其他位置一律链接过去。对会变化的 provider 清单、特性列表与安装细节链接到权威来源而不是复制内容——复制会导致多份副本漂移。7需要稳定显式锚点时在标题上添加{#custom-id}并链接到该 ID。仅在自动生成片段清晰且稳定时才用生成片段。这条在仓库中有着直接的工具链支撑如 docs/contributing.md 所述CI 会检查文档页间每个链接含锚点是否可解析失败会报Cannot find fragment而标题锚点由标题文本自动生成重命名标题会悄悄破坏所有指向它的链接因此凡被链接的标题都应固定{#custom-id}——docs/contributing.md 中连how-we-work-the-short-version这类小标题都带了{#custom-id}。8用户可见功能要放在用户自然能找到的地方而不只是 API 参考 docstring 里。文档导航、教程、常见问题页面与 API 参考应形成互补而不是把信息全部埋在 docstring。9面向读者的示例使用当前前沿模型标识符。写示例前要核实最新受支持的标识符而不是照抄本文档或旧示例里的静态值——这与rule:390的{provider}:{model}格式要求互为表里。10用 Markdown 标题表示真实文档章节新发布的页面必须注册进 docs/navigation.yml。以及当存在已发布的 Pydantic AI Harness 文档时优先链接它仅在没有覆盖该能力的已发布页面时才使用 Harness 仓库。仓库中的发布与导航机制docs/navigation.yml 是文档侧边栏、公开路由与重定向的唯一权威来源。其头部注释明确page slug是完整的库级规范路由aliases是库级重定向源路径相对于各自的内容根。以开头的 Overview 一节为例- page: Pydantic AI path: index.md slug: overview - page: Installation path: install.md slug: overview/install aliases: - installation - install对应的操作约定记录在 docs/contributing.md 的 Documentation Changes 一节增删或移动页面时必须更新docs/navigation.yml每个页面在slug中给出完整规范路由aliases只用于重定向源不要给任一项加/ai前缀或前导斜杠。要验证导航改动请在 PR 上请维护者添加trigger:docs标签——它会检查导航清单、被引用的 Markdown 文件、路由、别名与重定向并在 PR 上回帖结果。Docstrings帮用户选对 API、用对 API指南的 Docstrings 一节只有四条规则但每一条都直指 docstring 与 API 参考的职责边界帮助用户选择并正确使用公开 API陈述行为、重要条件、错误、副作用、默认值、优先级与边界——但不复述函数签名或实现细节。docstring 回答这个函数解决什么问题、什么时候别用它而不是复述参数类型。可配置特性必须文档化默认值、回退与优先级条件、兼容性后果以及用户何时应覆盖它。这是配置即契约原则用户需要知道默认行为从哪来、何时会失效、覆盖它会付出什么兼容性代价。代码标识符按情境格式化为 Markdown 代码或 API 参考链接。provider 相关的 API 要指出支持的 provider并解释影响用户选择的差异但不要声称 provider 本身没有文档化的机制——即文档不允许超出上游事实。仓库中对 docstring 的另一重约束来自 docs/AGENTS.mdAPI 元素应使用引用式链接形如[ElementName][module.path.ElementName]以在发布站点上获得悬停文档与 API 导航项目名称一律写作Pydantic AI。而 docstring 中的代码示例同样受自动化约束——见下文示例即测试。代码注释解释意图不叙述行为代码注释的四条规则是审查者最常援引的部分解释非显而易见的意图、不变量、约束与权衡或为什么这个看似显然的实现是错的。禁止叙述代码本身已经清楚的行为——注释不是代码的旁白而是代码的为什么。描述当前约束。仅当历史能解释一条仍然存在的兼容性边界、workaround、回归风险或令人意外的决策时才保留历史信息。解释 workaround 的预期行为及其补偿的外部约束用TODO:标记未来的清理工作并链接到跟踪 issue。使用稳定引用GitHub issue 与 PR 用完整 URL 链接符号或行为用名称引用不要用行号——行号会随代码移动失效。这套注释哲学与 agent_docs/index.md 中rule:341删除注释掉的代码、未使用的定义与被取代的实现版本控制已保留历史互为呼应注释负责解释为什么死代码则一律清除。仓库级落地示例即测试链接即检查Pydantic AI 将文档质量的一部分交给自动化这使本指南的规则可被持续验证示例是可执行的测试。tests/test_examples.py 使用pytest-examples的find_examples(README.md, docs, pydantic_ai_slim, pydantic_graph, pydantic_evals)收集仓库全部 Markdown 与 docstring 中的代码块并逐一执行仓库根 AGENTS.md 明确tests all code examples in the docs (including docstrings)。这意味着指南中保持示例可执行用当前前沿模型标识符等规则不仅是写作偏好更是会被 CI 强制的事实文档示例若无法运行依赖外部服务、凭据或非确定性行为必须在 fence 上显式排除如{testskip lintskip}docs/AGENTS.md而不是靠工具静默跳过。仓库根 README 的 fence 则保持裸写法以兼容 GitHub 渲染无法在测试环境运行的片段由test_examples.py按内容排除而非靠 fence 属性见 tests/test_examples.py 中对 harness 导入、realtime 交互示例的处理。链接与锚点是 CI 检查项。如前文所述docs/contributing.md 规定 CI 检查所有文档页间链接含锚点失败报Cannot find fragment标题重命名会破坏指向它的所有链接因此凡被链接的标题用{#custom-id}钉住锚点。这与指南为需要稳定锚点的章节添加{#custom-id}完全对应——写作规范与工具链检查在此合流。docs/ 目录还有更细的格式约束docs/AGENTS.md提示框使用 admonitions!!! note、!!! warning不要用 blockquote 或 GitHub alertsprovider 特定配置与行为放在docs/models/{provider}.md与docs/api/models/{provider}.md通用指南只用极简的 provider 无关示例并链接到 provider 页面provider 特性表中用Notes或Provider Support Notes列承载差异、限制与特殊值使用标准标签Full feature support与Limited parameter support不支持的变体放入Unsupported列示例保持可执行同一特性用一个示例 注释合并参数变体仅当用例、前置条件或约束不同才拆分合并且渲染 unified-docs 预览后再合并 PR。快速检查清单写作或审查任何用户可见文本时可对照以下清单自检维度自检问题仓库依据读者价值删掉每个从句后读者是否损失有用信息agent_docs/documentation.md否定边界only/never/without是否保留了防误解信息同上术语一致同一概念在代码/文档/注释/错误消息中是否用同一术语agent_docs/index.md 的rule:910权威来源易变事实provider 清单、安装细节是否链接而非复制agent_docs/documentation.md锚点稳定被链接的标题是否加了{#custom-id}docs/contributing.md、docs/navigation.yml页面注册新页面是否登记到docs/navigation.yml的slug/aliasesdocs/contributing.md 的 Documentation Changes 一节示例可执行示例能否被 tests/test_examples.py 执行tests/test_examples.pydocstring 边界是否只讲行为/条件/错误/默认值而不复述签名agent_docs/documentation.md 的 Docstrings 一节注释意图是否解释了为什么而非叙述做什么同上Code comments 一节引用稳定是否用完整 URL / 符号名而非行号引用 issue 与 PR同上结语Pydantic AI 的这份文档指南并非孤立的写作偏好而是与仓库工具链深度耦合的工程规范{#custom-id}锚点配合 CI 链接检查、docs/navigation.yml配合trigger:docs导航验证、文档代码块配合 tests/test_examples.py 的示例执行测试。写作时遵循为读者价值写作发布时依赖自动化兜底审查时逐条对照本指南——三者合一才能让一个拥有数百页文档、数十个 provider 页面的开源项目长期保持文档与实现不冲突、事实单一出处、术语全局一致的可维护状态。对于任何准备向 Pydantic AI 提交 PR尤其是涉及文档、docstring 或用户可见错误消息的贡献者agent_docs/documentation.md 与本文的检查清单就是合并前最值得先读的两份材料。【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表