贡献 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),仅供参考

相关新闻

DeskcommCRM实操指南:从选型到私有化部署的完整路径

DeskcommCRM实操指南:从选型到私有化部署的完整路径

1. 为什么最后把DeskcommCRM放进了选型清单1.1 团队表格管理客户的崩溃时刻说句实话,DeskcommCRM并不是我上手的第一套客户管理系统。在那之前,团队一直用共享表格管理客户,总共十六个销售,每天新增线索、跟进记录、下次联系时间全…

2026/9/27 0:49:04 阅读更多 →
如何做网站知乎避坑:3步搞定防黑与性能优化

如何做网站知乎避坑:3步搞定防黑与性能优化

如何做网站知乎避坑:3步搞定防黑与性能优化 上周接到武汉某制造企业的求助电话,老板急得满头汗:“网站被黑挂马了,首页全是赌博广告,客户投诉电话被打爆,现在网站被搜索引擎降权,流量跌了80%!”这场景在湖北乃至全国的中小企业建站中太常见了。很…

2026/9/27 0:49:04 阅读更多 →
口碑好的龙岗网站建设一文搞懂

口碑好的龙岗网站建设一文搞懂

龙岗建站避坑:从零搭建选对技术,口碑才是硬道理 改个需求建站公司拖一周,这大概是龙岗企业老板最头疼的痛点。很多老板以为找家“口碑好”的龙岗网站建设公司就能高枕无忧,结果发现所谓的口碑,往往建立在僵化的模板交付上。真正的口碑,源于你能否…

2026/9/27 0:49:03 阅读更多 →

最新新闻

AIoT与边缘计算如何驱动医疗、教育、交通的跨领域技术落地

AIoT与边缘计算如何驱动医疗、教育、交通的跨领域技术落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:34:24 阅读更多 →
华为EC6109U刷机教程:U盘强刷安卓7.0与WIFI修复指南

华为EC6109U刷机教程:U盘强刷安卓7.0与WIFI修复指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:34:24 阅读更多 →
VS Code + Keil5嵌入式开发环境搭建:STM32与C51工程配置实战

VS Code + Keil5嵌入式开发环境搭建:STM32与C51工程配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:34:24 阅读更多 →
海康威视平台部署前必须想清楚的几件事:从规划到实操的完整指南

海康威视平台部署前必须想清楚的几件事:从规划到实操的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:34:24 阅读更多 →
6、DDR功耗管理:DDR功耗模型(Active/Precharge/Self-Refresh)、动态电压频率调整(DVFS)、高通平台功耗优化策略

6、DDR功耗管理:DDR功耗模型(Active/Precharge/Self-Refresh)、动态电压频率调整(DVFS)、高通平台功耗优化策略

6.1 DDR功耗模型:Active / Precharge / Self-Refresh DDR的功耗状态,说白了就三种:干活、待命、睡觉。我习惯把它们叫做Active、Precharge和Self-Refresh。 6.1.1 Active状态 Active就是DDR正在读写数据。这时候Bank是打开的,Row被激活了。功耗主要来自三块: 激活电流(…

2026/9/27 1:34:24 阅读更多 →
晶振交期拉长,国产原厂直供破解供应链困局

晶振交期拉长,国产原厂直供破解供应链困局

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:33:23 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →