ARTICLE DETAIL

资讯详情

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

贡献 Strands 文档站:Astro/Starlight 文档站点的开发、写作与提交流程实战指南

贡献 Strands 文档站:Astro/Starlight 文档站点的开发、写作与提交流程实战指南 人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载本指南面向所有希望参与 Strands 文档贡献的开发者、技术写作者与 AI 编码助手系统讲解文档站点位于仓库site/目录的本地开发环境搭建、内容写作规范、质量检查流程以及从报告 Bug 到提交 Pull Request 的完整协作路径。读完本文你将能够独立在本地运行文档站、按项目规范编写或修订文档页面并通过npm run sdk:sync将文档类型与 API 参考页面同步到最新源码状态。文档站点概览基于 Astro Starlight 的定制化 CMSStrands 的文档站点位于仓库的 site/ 目录采用 Astro 静态站点框架与 Starlight 文档主题构建。但与标准 Starlight 站点不同该站点在保留原有 MkDocs 文档结构的基础上做了一系列深度定制核心设计目标包括导航结构外部化站点侧边栏与顶部导航全部由 src/config/navigation.yml 驱动而不是依赖 Starlight 从文件结构自动生成产品级侧边栏作用域文档围绕 Strands harness、Harness SDK、Shell、Evals SDK 四大产品组织由 src/route-middleware.ts 在构建期将侧边栏裁剪为当前产品范围并负责折叠行为与 API 页面的动态侧边栏生成MkDocs 兼容层通过 remark-mkdocs-snippets 插件 支持 MkDocs 风格的代码片段引用语法通过 PageLink.astro 将 MkDocs 风格的相对文件链接在渲染期自动解析为 Astro 的 slug URLAPI 参考自动生成Python API 文档由 pydoc-markdown 生成TypeScript API 文档由 typedoc 生成生成产物通过提交到 git 的符号链接挂载到内容集合中。如果你需要了解上述定制的完整实现细节侧边栏生成、路由中间件、链接解析、API 生成脚本、llms.txt 等可以直接阅读 Site Architecture本文聚焦于贡献者视角的实操流程。环境准备与本地开发前置要求在开始之前请确认你的开发环境满足以下版本要求依赖最低版本用途Python3.10API 文档生成脚本依赖uv或 pipNode.js22Astro 构建与 npm 脚本npm随 Node.js 安装依赖管理与脚本执行安装依赖并启动开发服务器npm install npm run dev # 启动开发服务器默认地址 http://localhost:4321/ npm run build # 生成静态站点npm run dev启动的开发服务器会在你保存文件改动时自动热重载非常适合边改边预览。生产构建由npm run build完成产物输出到静态目录。此外package.json中还提供了npm run preview预览构建产物与npm run clean清理.build与.astro缓存目录等辅助脚本。所有脚本定义在 site/package.json 中除基础构建外还包括 API 文档生成sdk:generate:*、路由清单更新routes:update、变更日志同步changelog:sync与目录统计刷新catalog:stats等日常维护命令。内容写作规范从 Markdown 到 MDX文档正文存放在docs/目录作为标准 Markdown/MDX 文件维护。导航结构定义在 src/config/navigation.yml站点构建时通过 src/sidebar.ts 的loadSidebarFromConfig()将 YAML 配置转换为 Starlight 的 sidebar 数据结构并在加载时校验每个 slug 对应的内容文件真实存在。语言切换组件Tabs/Tab由于 Strands SDK 同时提供 Python 与 TypeScript 两种实现文档页面大量使用语言标签页组织双语言代码。Tabs与Tab通过 astro-auto-import 自动注入无需显式 import 即可直接使用Tabs Tab labelPythonpip install strands/Tab Tab labelTypeScriptnpm install strands-agents/sdk/Tab /Tabs这里的Tabs实际映射到 AutoSyncTabs.astro——它会根据标签集合自动生成syncKey使页面上具有相同标签集合的多个标签页组自动联动Tab则映射为 Starlight 的TabItem。行内语言标识符组件Syntax /在共享叙述性文字非代码块中如果某个标识符、方法名或参数在 Python 与 TypeScript 下拼写不同可使用Syntax组件代替 python_name (Python) or tsName (TypeScript) 这种笨拙写法。它会根据全局语言切换状态实时渲染对应语言的变体Pass Syntax pycontext_manager tscontextManager / to configure...组件属性说明py必填Python 语法变体ts必填TypeScript 语法变体plain默认false设为true时以纯文本渲染而非code。组件读取与语言切换按钮相同的localStorage键切换语言时无需刷新页面即可实时互换。注意它仅适用于简单名称替换的场景代码块请使用Tabs涉及两套 SDK 的概念性差异或仅适用于单一语言的内容则不适用。外部代码片段引用--8--延续 MkDocs 的片段语法可以从外部文件按命名区间拉取代码示例避免文档与源码示例重复维护。引用语法--8-- path/to/file.ts:snippet_name对应的源文件需用标记注释界定片段范围// --8-- [start:snippet_name] const example This code will be included // --8-- [end:snippet_name]该语法由 remark-mkdocs-snippets.ts 在 Markdown 处理阶段解析使既有 MkDocs 文档无需重写代码示例即可迁移到新站点。相对链接自动解析文档内部使用相对文件链接而非 Astro 的 slug例如写../tools/index.md即可链接到工具章节。站点通过 astro-auto-import 将默认a元素替换为 PageLink.astro渲染时若检测到 href 为相对路径非绝对路径、非纯锚点会自动剥除站点 base 前缀、基于当前页面路径解析目标并在内容集合中匹配 slug开发模式下若找不到匹配目标会输出警告日志。因此无需记忆 slug也无需使用扩展 slug 格式。API 参考链接api速记链接到自动生成的 API 参考页面时推荐使用api速记语法比手写相对路径更稳定、更简洁且不会因页面迁移而失效!-- Python API -- api/python/strands.agent.agent api/python/strands.agent.agent#AgentResult !-- TypeScript API -- api/typescript/Agent api/typescript/Agent#constructor其解析逻辑位于 src/util/links.tsisApiShorthand()识别以api/开头的链接resolveApiShorthand()将其转换为绝对路径如/docs/api/python/strands.agent.agent/再由PageLink.astro套用站点 base 路径生成最终 URL。该格式会在构建期对照内容集合校验确保链接真实有效。自定义 Frontmatter 字段站点在 Starlight 默认 schema 之上扩展了若干 frontmatter 字段用于在页面顶部自动渲染上下文横幅由 MarkdownContent.astro 注入--- title: My Feature languages: Python # 仅特定 SDK 语言可用 → 渲染仅支持 X 语言提示 community: true # 社区贡献内容 → 渲染社区维护提示 experimental: true # 实验性功能 → 渲染可能变更的警告 ---多个字段同时设置时横幅自上而下按experimental → community → languages顺序渲染。侧边栏徽章则通过sidebar.badge配置--- title: My Page sidebar: label: AWS Lambda badge: text: New variant: note ---可用 variant 包括note、tip、caution、danger、success、default。徽章来自页面 frontmatter 而非导航配置文件这使页面作者可以直接控制徽章展示。质量检查提交前的必备步骤在提交变更之前务必在 site/ 目录下运行以下质量检查npm test # 运行测试vitest npm run typecheck # TypeScript 类型检查 npm run format:check # 格式检查Prettier测试测试由 vitest.config.ts 配置include规则覆盖test/**/*.test.ts并通过test/global-setup.ts执行全局初始化。测试覆盖侧边栏、链接解析、重定向、API 链接转换、llms.txt 渲染、sitemap 覆盖率等站点核心逻辑格式format脚本使用 Prettier 统一格式化docs/目录与src/content/docs/**/*.tsformat:check则只检查不修改。Prettier 配置无分号、单引号、120 列宽定义在package.json的prettier字段中Pre-commit 钩子以上检查会通过 pre-commit 钩子在每次提交时自动运行确保不符合标准的变更不会进入仓库。如需主动格式化代码可运行npm run format会写回文件然后再用npm run format:check确认。源码变更后的文档同步npm run sdk:sync当 Strands SDKPython/TypeScript的源码发生合并后文档站的 API 类型与生成页面可能落后于源码。此时运行npm run sdk:sync该命令会先执行 API 文档再生成并重新安装依赖实际等价于npm run sdk:generate npm install。拆开来看npm run sdk:generate:py优先使用uv run scripts/api-generation-python.py若系统无uv则回退为pip install pydoc-markdown4.8.2后运行python scripts/api-generation-python.py。生成脚本从克隆的 SDK 源码解析 Python 模块并输出 MDX 文件过滤私有模块路径含_前缀与显式排除的模块npm run sdk:generate:ts通过tsx scripts/api-generation-typescript.ts驱动 typedoc配置见 typedoc.json采用outputFileStrategy: members按成员拆分文件随后对生成结果做 frontmatter 注入、相对链接修正与 MDX 转义后处理。生成的文档通过提交到 git 的符号链接挂载src/content/docs/api/python/_generated与src/content/docs/api/typescript/_generated均指向.build/api-docs/下的产物目录因此无需手动配置即可被内容集合读取。实践要点新实现的功能应在 User Guide 中链接到对应的 API 参考页面确保使用者能一路从概念文档追到源码级 API 定义。报告 Bug 与功能请求我们欢迎通过 Issue 跟踪器报告 Bug 或提出功能建议。提交前请先检索已打开的 Issue 以及近期关闭的 Issue确认没有人已经报告过相同问题。一份高质量的问题报告应尽可能包含可复现的测试用例或完整的复现步骤使用的代码版本你做出的与问题相关的修改环境中任何异常情况操作系统、依赖版本、部署方式等。寻找可贡献的任务查看现有 Issue 是找到切入点最有效的方式。项目使用 GitHub 默认的 Issue 标签体系enhancement/bug/duplicate/help wanted/invalid/question/wontfix其中带有help wanted标签的 Issue 是很好的起点此外项目还维护了ready for contribution标签用于标记定义清晰、可直接由社区接手的 Issue——SDK 仓库与工具仓库都维护了对应的筛选列表可在仓库 Issues 页面按该标签检索。开始动手前请遵守以下协作约定检查是否已有人认领或在处理该 Issue在 Issue 下评论表达你的兴趣并提出澄清问题在开展较大改动前等待维护者确认避免重复劳动或方向偏差。通过 Pull Request 提交贡献提交前检查清单发送 Pull Request 之前请确认基于main分支的最新代码开展工作已检查现有打开的与近期合并的 PR确认没有人已经解决该问题对较大改动先开 Issue 讨论——我们不希望你的时间被浪费在方向错误的改动上。标准提交流程Fork 仓库在 fork 中开展工作聚焦修改范围只修改与本次贡献相关的部分。如果顺手重排了全部代码格式将严重分散评审者对你真正改动的注意力确保本地测试通过见上文质量检查一节使用清晰的提交信息提交到你的 fork提交 Pull Request并如实回答 PR 界面中的默认问题关注 CI 结果留意自动化 CI 的任何失败并持续参与评审对话及时响应反馈。对于克隆操作可使用本仓库地址进行git clone后进入site/目录开展文档工作。行为准则、安全通知与许可行为准则本项目采用了 Amazon Open Source Code of Conduct所有参与者都应遵守其规定安全通知如果你发现了潜在的安全问题请通过官方漏洞报告渠道通知 AWS/Amazon Security不要创建公开的 GitHub Issue以便问题在修复前得到妥善处理许可项目采用 Apache-2.0 许可具体条款见仓库根目录的 LICENSE.APACHE各子项目还附带各自的 NOTICE 文件。提交贡献时我们将会请你确认你的贡献许可条款。进一步阅读Site ArchitectureAstro/Starlight 定制化实现的完整说明包括侧边栏生成、路由中间件、链接解析、API 文档生成、llms.txt、博客与重定向系统文档贡献指南文档写作的文体规范协作式语气、简洁句式、双语言代码示例要求与文档 Agent 技能docs-writer、docs-reviewer、docs-audit、docs-planner的用法SDK 贡献指南Pythonhatch与 TypeScriptnpmSDK 的开发环境搭建、质量检查与提交流程导航配置navbar、products、sidebar 与 GitHub 下拉菜单的单一事实来源页面叶子徽章来自页面 frontmatter。赞分享人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载相关推荐Strands Agents 文档站点开发指南基于 Astro/Starlight 的 CMS 架构与 Agent 协作工作流Strands Agents 文档站点开发指南基于 Astro/Starlight 的 CMS 架构与 Agent 协作工作流 本文是 Strands Age人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务DataEase 3D地图完全上手指南从倾角到3D弧线把区域数据立起来DataEase 3D地图完全上手指南从倾角到3D弧线把区域数据立起来 您是否遇到过这样的窘境省级销售数据堆在柱状图里看不出谁挨着谁把区域铺在平面数据分析数据可视化后端前端Apache PredictionIO 文档贡献指南基于 Middleman 的文档站点编写、构建与发布全流程Apache PredictionIO 文档贡献指南基于 Middleman 的文档站点编写、构建与发布全流程 Apache PredictionIO 的官方机器学习后端大数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表