
人工智能大模型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点击查看免费下载本文基于 site/CMS-TODO.md 这份站点工程待办清单结合 harness-sdk 仓库中 站点构建配置、内容集合 Schema 与 博客渲染管线 等真实实现系统梳理该文档所列的两类任务一是站点从旧版 MkDocs 迁移到 Astro/Starlight 之后遗留的构建链技术债zod SSR 绕行方案、typedoc 特判、资产目录迁移等二是博客模块待补齐的机器可读分发与内容增强能力全内容 RSS、内容协商、作者头像、封面图等。读完本文你将能逐条理解这些 TODO 背后的代码位置、现状成因与可落地的改造思路可作为参与该站点工程维护的入门路线图。一、文档定位一份 CMS 迁移后的收尾路线图site/CMS-TODO.md是站点site/目录从旧版 MkDocs 内容结构迁移到 Astro Starlight 内容集合体系之后维护者整理的未完成事项清单。它只包含两种任务类型After Launch上线后清理5 条构建期技术债全部围绕让构建更干净、让类型验证更独立这一目标Blog博客能力9 条博客模块的功能缺口集中于机器可读分发RSS、内容协商、Markdown 端点与内容表现力OG 图、头像、封面图两个方向。这份清单本身没有提供实现代码但它逐条指向的模块astro.config.mjs、scripts/api-generation-typescript.ts、src/pages/blog/下的端点、src/content.config.ts的集合 Schema在仓库中都真实存在且可被逐条对照验证因此可以作为一篇有依据的工程演进指南来展开。二、构建链技术债清理After Launch2.1 移除 zod 的 Vite SSR 绕行方案TODO 原文要求一旦 CMS 构建与 TS 类型验证分离后移除astro.config.mjs中的 Vite SSR workaround for zod。在 site/astro.config.mjs 中可以找到这段绕行代码vite: { plugins: [sdkSetupPlugin(), watchNavigationPlugin()], // TODO once we separate out CMS build from TS verification, fix this // https://github.com/withastro/astro/issues/14117 ssr: { noExternal: [zod], }, },其背景是站点内容 Schema 大量使用astro/zod见 site/src/content.config.ts在 Astro SSR 构建阶段 zod 被当作外部依赖处理会触发打包问题因此用ssr.noExternal: [zod]强制将其内联。TODO 记录的思路是当 CMS 构建流程与 TS 类型检查流程解耦后这一绕行即可移除。当前阶段的验证方式是在 site/test/content-collection.test.ts 等测试中观察构建行为若没有该绕行仍然全绿就可以删除这一段配置并回归验证。2.2 移除nameData特殊处理typedoc 在生成 TypeScript API 文档的散文prose描述时会字面输出形如 thenameDatapattern 的文本其中name是尖括号包裹的占位符直接进入 Markdown 会被当作 HTML 标签吞掉。site/scripts/api-generation-typescript.ts 中为此保留了一段特殊处理// Special-case: escape the literal string nameData which typedoc emits in prose // to describe the naming pattern for data interfaces (e.g. the nameData pattern). const specialCased linkedFixed.replace(/nameData/g, lt;nameData)同一文件中L146还处理了相对链接中的分类目录折叠../interfaces/AgentData.md - ../AgentData.md。TODO 的意图是一旦 typedoc 修复了散文中的nameData输出或找到更通用的转义方案就删除这个replace特判避免生成管线里堆叠一次性 hack。2.3 资产文件迁移到内容集合目录TODO 原文指出资产文件当前位于docs/assets/应迁移到src/content/docs/assets/。从 site/src/content.config.ts 可以看到docs集合的加载范围是src/content下若干显式声明的文件夹docs/user-guide、docs/integrations、docs/api/python、docs/api/typescript等这意味着docs/根目录下的静态资产并不属于内容集合的一部分而是游离在构建与缓存体系之外。将其迁入src/content/docs/assets/后图片等资产将与文档正文一起参与 Astro 内容管线的处理包括assets的 import 解析、哈希文件名与压缩策略同时避免旧 MkDocs 时代的路径假设继续残留。2.4 TypeScript 代码示例内联 独立类型检查TODO 要求将 TypeScript 代码示例直接内联进 Markdown并通过独立的类型检查步骤例如对提取出的代码块执行tsc来验证替代当前的 snippet includes外部代码片段引入方案。当前仓库仍在使用 snippet 引入机制站点在构建期通过 site/src/plugins/remark-mkdocs-snippets.ts 解析文档中的 include 指令并在 site/astro.config.mjs 中注册该 remark 插件。这种方案的缺点是把示例代码是否正确的验证责任压在构建期文档渲染上。TODO 描绘的演进方向是示例代码直接写在 Markdown 的 fenced code block 里再单独用一个脚本抽取代码块并交给tsc做类型检查使文档示例的类型正确性成为与 CMS 构建解耦的独立质量门禁。2.5 更新 astro-auto-importTODO 记录了等待上游 astro-auto-import 的 PR #110 合并后更新本仓库的引用。当前 site/astro.config.mjs 已经通过AutoImport集成了TabItem/Tab、Tabs、Syntax、CopyPromptButton、YouTube等组件的自动导入并支持defaultComponents覆盖a链接为 site/src/components/PageLink.astro 以支持相对 URL。升级上游后这些导入配置的写法与解析行为可能会随之变化需要在升级时同步回归验证 site/test/language-switch.test.ts 等涉及组件导入的测试。三、博客模块的机器可读分发能力Blog3.1 全内容 RSS当前仅含描述TODO 指出当前 RSS 只包含description不含渲染后的 MDX 正文。现状在 site/src/pages/blog/feed.xml.ts 中清晰可见items的每一项只映射了title、pubDate、description、link与categories来自post.data.tags并没有 body 字段items: posts.map((post) ({ title: post.data.title, pubDate: post.data.date, description: post.data.description, link: pathWithBase(/blog/${post.id}/), categories: post.data.tags, })),同一目录下还有按标签分流的 site/src/pages/blog/feed/[tag].xml.ts同样只带description。要做成全内容 RSS可以复用博客的 Markdown 渲染管线site/src/util/render-to-markdown.ts——该工具已被 site/src/pages/blog/[slug]/index.md.ts 用于将 MDX 渲染为干净 MarkdownRSS 端点可基于它把正文追加到content:encoded或标准的content字段中。3.2 基于 Accept 头的响应式内容协商TODO 提到通过Accept请求头做内容协商让同一 URL 按客户端偏好返回 HTML 或 Markdown但这需要 edge/CDN 中间件支持与纯静态生成SSG不兼容。仓库目前的处理方式是为每个博客帖单独生成一个 Markdown 端点site/src/pages/blog/[slug]/index.md.ts 为每篇博文生成/blog/slug/index.md前置 YAML frontmattertitle、date、description、tags并以Content-Type: text/markdown; charsetutf-8返回见该文件 L41-L45。该文件的头部注释明确写道Used by LLMs and tooling that need blog content in a machine-readable format说明这套.md后缀端点正是为 LLM 与工具消费而设计的。TODO 描述的内容协商则是把它升级为无后缀 URL 按 Accept 头自动判别前提是部署层能提供 edge/CDN 中间件来改写响应。3.3x-markdown-tokens响应头TODO 要求在 Markdown 端点上返回x-markdown-tokens响应头。当前 site/src/pages/blog/[slug]/index.md.ts 只设置了Content-Type尚未加这个头。该头的作用是让客户端尤其是抓取型 Agent 与代理工具无需解析正文即可获知端点所服务的 Markdown token 数量可依据reading-time库或分词结果计算从而做出成本/长度判断。现有构建期已有一个reading-time相关插件 site/src/plugins/remark-reading-time.ts 会把阅读时长注入 frontmatter这条 TODO 可以顺带把 token 统计一起落实。3.4 Markdown 版站点地图/blog/sitemap.mdTODO 要求新增/blog/sitemap.md。这与仓库已有的llms.txt理念一脉相承——站点已有 site/src/pages/llms.txt.ts 与 site/src/pages/llms-full.txt.ts 两个面向 LLM 的聚合端点。/blog/sitemap.md将作为博客的纯文本索引列出全部已发布博文及其链接方便 Agent 一次抓取即获得博客全貌。实现上可复用 site/src/util/blog.ts 的getPublishedPosts()生产环境自动排除draft标记的草稿帖见该文件 L11-L13。3.5 Newsletter 订阅集成TODO 记录博客尚缺 Newsletter 订阅入口。目前 site/src/pages/blog/index.astro 只使用BlogLayout渲染博客列表没有任何订阅表单组件仓库内也搜索不到 newsletter 相关组件或端点。这是纯粹的待接入外部订阅服务类任务属于产品功能缺口而非技术债。3.6 OG 图片自定义字体当前为系统 sans-serifTODO 指出博客 OG 图当前使用系统 sans-serif而非站点品牌字体 Figtree。证据在 site/src/pages/blog/og/[slug].png.tsgetImageOptions中字体配置为families: [sans-serif]其余参数包括深色渐变背景[[14, 14, 14]]、绿色侧边边框[0, 204, 95]、padding: 80等。要落实 TODO需要在字体配置中引入 Figtree 字体文件并指定其 family替换sans-serif。该端点基于astro-og-canvas构建是全站og-image.pngsite/public/og-image.png之外按帖子动态生成的 OG 图。3.7 作者头像Schema 已支持尚无图片数据TODO 指出作者 Schema 已支持avatar字段但尚未种入任何头像图片。Schema 证据在 site/src/content.config.tsconst authorSchema z.object({ name: z.string(), role: z.string(), bio: z.string(), avatar: z.string().optional(), })作者数据源 site/src/content/authors.yaml 目前只填写了id、name、role、bio四个字段如 Galileo 工程师 Namrata Ghadi、AWS Principal Applied Scientist Alessandro Achille 等条目均未配置avatar。前端渲染逻辑已经就绪site/src/components/blog/BlogAuthorByline.astro 会在存在author.data.avatar时渲染img classauthor-avatarsite/src/pages/blog/authors/[author].astro 的作者页也做了同样的条件渲染。因此该 TODO 落地时只需在authors.yaml中为各作者补充avatar图片 URL。3.8 博文封面图Schema 已支持尚无数据与头像同理TODO 指出博客 Schema 已支持coverImage字段但尚无任何封面数据。Schema 证据在 site/src/content.config.ts 的blogSchema中coverImage: z.string().optional()。前端渲染同样已就绪——博客卡片组件 site/src/components/blog/BlogCard.astro 在coverImage存在时渲染 180px 高的封面img classblog-card-cover博文详情布局 site/src/layouts/BlogPostLayout.astro 也在coverImage存在时渲染大图。当前 site/src/content/blog/ 下的 27 篇 MDX 博文均未声明coverImage仓库搜索无该字段使用记录因此卡片与详情页的封面区块处于组件待命、数据为零的状态。落地方式是在博文 frontmatter 中添加coverImage并配好图片资产。3.9 博客页面视觉设计打磨TODO 最后一条要求对博客页面做一轮视觉设计与打磨polish pass。这是主观性的设计任务但结合上文可以看到具体的打磨抓手封面图缺失导致 BlogCard.astro 的卡片始终是纯文本形态头像缺失导致 BlogAuthorByline.astro 的署名区没有图片元素OG 图字体与品牌不一致。换言之3.6–3.8 三条数据与字体类 TODO 落地后视觉打磨就有了明确的改造对象可以围绕卡片封面、署名头像、详情页封面与 OG 图统一进行一轮视觉评审。四、演进路线小结与跟进方式将 CMS-TODO 的两部分合并观察可以归纳出站点工程的三个持续方向方向对应 TODO现状代码锚点构建链解耦与瘦身zod SSR 绕行、nameData特判、snippet includes 替换、astro-auto-import 升级astro.config.mjs、api-generation-typescript.ts、remark-mkdocs-snippets.ts内容资产归位docs/assets/→src/content/docs/assets/content.config.ts博客机器可读分发全内容 RSS、Accept 协商、x-markdown-tokens、/blog/sitemap.mdfeed.xml.ts、index.md.ts博客内容表现力OG 字体、作者头像、封面图、视觉打磨og/[slug].png.ts、authors.yaml、BlogCard.astro对于希望参与维护的开发者建议按先数据后样式、先端点后协商的顺序推进先补齐authors.yaml的avatar与博文 frontmatter 的coverImage3.7、3.8纯数据变更即可激活已就绪的组件再实现全内容 RSS 与x-markdown-tokens3.1、3.3可复用现有render-to-markdown与 reading-time 管线最后处理构建链瘦身2.1、2.2、2.4并以tsc、vitestsite/vitest.config.ts与博客相关测试site/test/blog.test.ts作为回归验证手段。每条 TODO 是否完成都可以在对应代码路径上找到明确的判定标准。无法成文该文档全文仅包含 3 行外部导航链接缺少具体架构、配置细节与代码示例无法独立支撑写成一篇完整的技术实战文章。/无法成文赞分享人工智能大模型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点击查看免费下载相关推荐GitHub_Trending/lib/iphone技术债务清理从CSS-in-JS到Tailwind的迁移策略GitHub_Trending/lib/iphone技术债务清理从CSS in JS到Tailwind的迁移策略 在现代前端开发中CSS管理一直是项目维护的前端3D渲染RxJS 7 到 RxJS Next 迁移收尾审查清单Migration Closeout Checklist完整指南RxJS 7 到 RxJS Next 迁移收尾审查清单Migration Closeout Checklist完整指南 迁移从“代码改完、测试变绿”到“可以前端WeKnora Docker 部署完全指南私有 RAG 知识库从环境评估到长期运维WeKnora Docker 部署完全指南私有 RAG 知识库从环境评估到长期运维 WeKnora 是一个开源 LLM 知识平台可以把原始文档变成可检索的人工智能大模型RAGAI Agent后端前端MCP 服务知识库dsh-plugin工具调用上一篇如何用Reshape实现数据库无停机升级10个核心技巧下一篇Split Grid终极指南从零构建复杂的网格分割应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考