ARTICLE DETAIL

资讯详情

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

为 Managed Agent 打造交付级 SKILL.md:Gemini Enterprise 自主沙盒的演示文稿、商务文档与 HTML 报告技能体系

为 Managed Agent 打造交付级 SKILL.md:Gemini Enterprise 自主沙盒的演示文稿、商务文档与 HTML 报告技能体系 为 Managed Agent 打造交付级 SKILL.mdGemini Enterprise 自主沙盒的演示文稿、商务文档与 HTML 报告技能体系【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai导读本文聚焦 ge-demo-generator 仓库中 demo_skills 目录所承载的Managed AgentAntigravity交付技能deliverable skills它定义了自主沙盒代理在无人工干预下制作专业演示文稿.pptx、商务文档.docx / PDF与自包含 HTML 报告的完整规范。读完本文你将掌握 SKILL.md 的编写规则、三大技能的格式选择与设计系统、强制验证与交付流程并理解这些技能文件如何通过create_managed_agent.py挂载进 Antigravity 沙盒的全链路机制可直接复用于自己的 Agent 技能包设计。一、背景Managed Agent 自主沙盒与技能的挂载方式在 ge-demo-generator 生成演示环境时除了前台对话代理root_agent、deep_analysis_agent与后台工作代理background_agent还会可选地通过Managed Agents APIPre-GAAntigravity harness额外提供一个“自主后台工人”用于承接需要长时间自主执行的任务——例如实时网络研究、云沙盒内的代码执行以及专业交付物的制作。这部分能力的技能定义就存放在 agent_template/demo_skills。1.1 技能文件如何被“送达”沙盒根据 README 的说明整个链路没有任何构建步骤生成的 setup 脚本从拉取的 agent template 中把demo_skills/目录拷贝进演示项目成为skills/...create_managed_agent.py 把该目录注册为 Managed Agent 的技能来源。从 create_managed_agent.py#L117-L119 可以看到关键实现env {type: remote, network: {allowlist: [{domain: *}]}} if SKILLS_SOURCE: env[sources] [{type: gcs, source: SKILLS_SOURCE, target: /.agent/skills}]SKILLS_SOURCE是脚本的第 4 个命令行参数通常是一个 GCS 路径即技能包的存放桶它作为base_environment.sources挂载到沙盒的/.agent/skills目录同时warmup_managed_agent.py#L46-L48 在预热阶段重复声明同一份 env spec——这是有意的interaction 级别的环境不会继承 agent 的base_environment因此预热时必须重新显式挂载技能才会出现在预热后的沙盒中。1.2 无构建步骤直接编辑 SKILL.md技能的本质是Markdown 指令文件仓库明确指出“There is no build step - edit the SKILL.md files directly”。这意味着技能迭代的成本极低修改文案、调整设计系统或验证清单改完即可被下一次委托的代理读取无需重新编译、打包或部署。1.3 沙盒代理如何“消费”技能挂载只是第一步真正的执行约定写在 managed_agent_instruction.txt系统指令中技能包挂载在/workspace/.agent/skills相对于工作目录绝对路径/.agent/skills不存在在制作任何交付物演示文稿、文档、PDF、网页之前必须先列出该目录、读取匹配的 SKILL.md并严格遵循其流程、设计系统与验证步骤如果路径缺失可以从工作目录列./.agent/skills再试实在没有技能包也不得停工应按自身最佳实践完成交付上传交付物是任务的一部分而非可选项curl -sS -X PUT --upload-file file upload_url并校验 HTTP 状态码为 200否则不得宣称“已交付”。二、SKILL.md 编写规则Authoring Rules三个技能共享同一套作者规则这也是任何自定义技能应遵循的底线规则说明Frontmatter每个 SKILL.md 以 YAML frontmatter 开头必须包含name与description。description是代理决定“何时使用该技能”的依据要写清楚适用场景与覆盖范围语言规则指令本身仅使用英文与可打印 ASCII但交付物必须使用任务描述的语言每个技能内部都明确重申了这一点指令要具体指令必须包含流程process、设计系统design system、验证verification、交付delivery四要素。代理会字面执行这些指令含糊的措辞会直接体现在交付质量上以 professional-document/SKILL.md 的 frontmatter 为例--- name: professional-document description: Produce a formal business document as .docx (python-docx) or PDF (reportlab) - reports, proposals, briefings, one-pagers, meeting summaries. Use whenever the task asks for a written document, report file, proposal, or PDF. Covers structure, typography, build and delivery. ---description中“Use whenever the task asks for ... / Covers ...”就是在教代理做触发条件匹配与能力范围确认。三、技能一professional-document —— 商务文档构建器目标产出一份“读起来像资深分析师准备的”商务文档——结构清晰、排版克制、数字真实。3.1 格式选择场景格式技术栈读者可能编辑提案、草稿、工作报告.docxpython-docx任务明确要求 PDF或文档为最终对外版本签署版提案、正式简报、一页纸PDFreportlabplatypusflowables任务未指定.docx默认python-docx两个硬性约束值得注意禁用 weasyprint 与 LibreOffice 转换系统依赖不保证存在reportlab 与 python-docx 是纯 Python 方案稳定可靠CJK 注意仅 PDFreportlab 内置字体无法渲染日文、中文、韩文。对 CJK 文本必须先注册 CID 字体再设置到每个样式上from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.cidfonts import UnicodeCIDFont pdfmetrics.registerFont(UnicodeCIDFont(HeiseiKakuGo-W5))python-docx 原生支持 CJK无需此步骤。3.2 标准流程python-docx、reportlab、matplotlib 通常已被环境预热安装——先尝试 import缺了才 pip install先用 Markdown 撰写完整草稿draft.md在写任何排版代码前把内容实质确定下来用构建脚本把草稿转换为目标格式执行验证 → 修复 → 重建交付。3.3 结构骨架标准商务报告骨架可适配、但不要跳过层级标题块文档标题、副标题/目的、日期、作者行署名应为发起组织而非代理自身。超过约 6 页的文档需封面页 由标题生成的目录执行摘要3–6 句忙碌的高管可以只读这一段——关键发现、关键数字、建议正文章节3–6 个每章以一句加粗的一句话要点开头随后是支撑分析、表格与图表建议/后续步骤编号、具体尽可能给出负责人/职能与时间范围附录可选方法论、数据说明、详细表格。一页纸one-pager把同样的骨架压缩为标题块 → 摘要段落 → 3–4 个带数字的要点 → 建议框。3.4 排版与版式规范要素规范字体全文统一字体族正文 10.5–11pt行距 1.15–1.3标题层级H1 16–18pt 加粗、H2 13–14pt 加粗、H3 11pt 加粗标题色#1A2B4A正文近黑#222222页边距四周 2.0–2.5 cm页码从第 2 页起置于页脚数字支撑论点的数字加粗禁止整句加粗表格表头加粗并带浅色填充#F2F5FA、细边框、数值列右对齐、千位分隔符图表matplotlib 输出 150 dpi 的 PNG宽度对齐正文栏宽图下编号题注Figure 1: …配色与表格一致禁令严禁伪造信头letterhead或签名3.5 图表中的 CJK 处理matplotlib 默认字体没有 CJK 字形会出现空心方块。处理方式分两种日文最快路径pip install japanize-matplotlib后import japanize_matplotlib仅需一次其他文字用matplotlib.font_manager.fontManager.addfont()注册 Noto Sans 系列字体。在嵌入 PNG 之前必须重新打开图片确认没有空心方块字形。3.6 内容质量线Content Quality Bar每个论断都要有提供的数据支撑或明确标注来源的网络研究在正文或附录中给出来源名 URL数字为可读性做四舍五入原始精度保留在附录表格中无废话套话——删除任何不服务决策的句子。3.7 强制验证Verificationdocx: 用 python-docx 重新打开文件断言标题层级结构存在且所有规划章节均存在且非空。 PDF: 用 pypdf预热通常已安装重新打开断言预期页数 1且抽取文本中包含章节标题 以及你写入的 CJK 字符串字体损坏会抽取为空或替换字符——若标题缺失即字体有问题。修复后必须重建直到干净通过至少一轮完整的“审查→重建”是强制要求——交付前要把成品对照任务的既定质量条件重新通读一遍。3.8 交付使用描述性文件名如supplier_risk_briefing.pdf若任务提供了上传 URLcurl -sS -X PUT --upload-file file -H Content-Type: mime upload_urlMIME 类型docx 为application/vnd.openxmlformats-officedocument.wordprocessingml.documentpdf 为application/pdf失败重试一次 3. 最终报告中声明文件名、页数/章节数并逐字复述执行摘要。四、技能二professional-presentation —— 专业演示文稿构建器目标用 python-pptx 构建一份“出自顶级咨询公司”的 16:9 宽屏 deck。4.1 流程与叙事结构python-pptx 与 matplotlib 通常已由预热安装缺了才pip install python-pptx写代码前先规划叙事线storyline。董事会级 deck 的骨架是标题 → 议程 →执行摘要结论 前 3 大发现前置占一页→ 3–5 个内容章节每章由一个极简章节分隔页开场章节号 断言式标题使用 Primary-dark 背景→ 建议/后续步骤。每页一个信息点。先把完整大纲写入outline.md用单个 Python 脚本构建 deck——仓库提供了可复制的脚手架 build_deck.py渲染 → 打开检查见验证→ 修复 → 重复交付。为执行摘要与每个章节的关键页添加演讲者备注slide.notes_slide.notes_text_frame.text2–3 句“该说什么”而不是幻灯片文本的重复。4.2 设计系统在代码中强制绝不依赖模板默认值画布与栅格尺寸 16:913.333 × 7.5 英寸显式设置prs.slide_width Inches(13.333)、prs.slide_height Inches(7.5)外边距 0.6 英寸标题区为顶部 1.2 英寸内容位于隐形的 12 列栅格上优先双栏布局文字 视觉避免整墙文字。调色板定义一次为常量角色色值用途Primary dark#1A2B4A标题、头部条、分隔页背景Accent#2E6FDB高亮、图表系列、关键数字Secondary accent#E8A33D标注、增量谨慎使用Body / Muted / Background / Light panel#333F50/#8A93A6/#FFFFFF/#F2F5FA正文、弱化、背景、浅色面板排版全 deck 单一无衬线字体族Arial 总是可用标题 30–34pt 加粗、章节头 24–28pt、正文 14–18pt、题注 11–12pt最低不低于 11pt每页最多约 5 个要点每个要点最多约 12 个词。结构元素每个内容页在标题下加一条细强调线0.03 英寸高、Primary dark 的矩形大数字页每个面板一个 KPI数字 40–54pt 用 Accent标签 12pt 用 muted排成 2–4 个等宽面板表格表头填充 Primary dark 白字加粗正文行白/浅面板交替11–12pt除标题页外每页页脚左侧短 deck 名、右侧页码10pt muted。图表优先用 matplotlib 生成图同调色板、去网格线杂乱、尽量直接标注而非图例、150 dpi PNG用add_picture放置简单柱/线图可用 pptx 原生图表。图表中的非拉丁文字与文档技能同理渲染前必须先注册字体日文pip install japanize-matplotlibimport japanize_matplotlib其他文字下载覆盖该语言的 Noto Sans 字体用matplotlib.font_manager.fontManager.addfont(path)注册并设置rcParams[font.family]。渲染后重新打开 PNG 确认无空心方块再放入幻灯片。4.3 脚手架源码解读build_deck.pybuild_deck.py 是“复制后适配、而非 import”的脚手架其设计要点与 SKILL.md 完全一一对应配色即常量文件顶部定义了PRIMARY / ACCENT / WARN / BODY / MUTED / PANEL六个RGBColor与设计系统一致new_deck()显式设置 16:9 尺寸Inches(13.333)/Inches(7.5)blank()选用完全空白的版式prs.slide_layouts[6]绝不依赖模板默认text_box()封装文本框创建Arial 字体、可设字号/加粗/颜色/对齐accent_rule()用 0.03 英寸高Emu(27432)的矩形实现标题下强调线使用MSO_SHAPE.RECTANGLEcontent_slide()组合标题、强调线、要点正文与页脚页码每点space_after Pt(10)verify()断言幻灯片数量相等并逐页检查所有 shape 不越出画布边界shape.left 0、left width SLIDE_W、top height SLIDE_H。脚手架注释还给出了工程化建议把 SLIDES 定义为数据、机械式渲染——“keeping content as data makes the verification pass and later edits trivial”这正对应 SKILL.md 中“每页一个信息点”与强制验证的要求。4.4 内容质量线幻灯片标题是断言而非主题“Revenue grew 18% on repeat customers”而不是“Revenue”——读者仅凭标题就能读懂论证使用提供数据中的真实数字为可读性四舍五入12.4M、18%、3.2x绝不虚构以“Next steps”或“Recommendations”页收尾包含具体、可指派负责人的行动项。4.5 强制验证构建后用 python-pptx 重新打开文件并断言预期幻灯片数量无文本框溢出其形状用文字长度对形状尺寸做启发式比较无 shape 超出幻灯片边界每页都有非空标题内容页有带正确页码的页脚遍历每个文本框架中的每个 run确认没有因缺失字体路径产生的字符渲染问题CJK deck 必须确认 deck 字体覆盖该文字并重查图表 PNG 的空心方块。有任何问题就修复重建即使首轮构建看起来没问题至少一轮完整的“审查→重建”仍是强制要求。4.6 交付保存为描述性文件名如q3_revenue_review.pptx上传命令curl -sS -X PUT --upload-file file -H Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation upload_url失败重试一次 3. 最终报告声明文件名、幻灯片数量以及每页的一行摘要。五、技能三web-report —— 自包含 HTML 报告/简报微站目标构建一个单文件、自包含的 HTML 文件把分析或简报呈现到“已发布产品页”的质量水准。一切内联一个文件、无本地资源、无构建步骤。5.1 配套技能约定如果技能目录中存在modern-web-guidance技能实现时先查阅它获取现代平台最佳实践container queries、View Transitions、Popover 等——本技能负责报告的结构与设计modern-web-guidance负责现代平台技术。采用渐进增强即使某个现代 API 不可用页面也必须完全可读。5.2 硬性要求Hard Requirements一个自包含.html文件所有 CSS 在单个style块内所有 JS 在单个script块内数据以单个const DATA {...}JSON 字面量内嵌图表库允许来自 CDN如https://cdn.jsdelivr.net/npm/chart.js其余全部内联从 360px 到宽屏桌面响应式无横向滚动通过:root与html[data-themedark]上的 CSS 自定义属性提供亮/暗双主题与可见的切换开关每个颜色都必须经由自定义属性驱动——硬编码颜色会破坏另一主题可访问性语义化地标header、main、nav、footer、单个h1、有序的标题层级、视觉元素带 alt/aria 标签、双主题下均满足 WCAG AA 对比度、可见的焦点状态页面须声明数据是某个时间点的快照并注明日期。5.3 页面架构Hero 头部报告标题断言而非主题、一行副标题、日期 数据来源说明、主题切换开关KPI 条带3–5 个统计块——大数字、短标签、与上一周期的增量上下箭头按含义好/坏着色而非按方向内容章节3–6 个每节标题是一句结论takeaway一段简短导语然后是一个图表/表格/卡片栅格各节间交替布局模式以形成节奏数据表格章节列可排序点击表头切换升/降序、自由文本筛选输入框、维度取值少时提供分类筛选 chips页脚方法论说明、来源涉及网络研究时给真实 URL、生成日期。5.4 设计系统把间距/字号/颜色定义为顶部的 CSS 自定义属性亮色调色板背景#FFFFFF、面板#F2F5FA、文字#1F2733、弱化#66707F、主色#1A2B4A、强调#2E6FDB、警示#E8A33D、正向#1E8E5A、负向#C6423F暗色主题通过交换表面色派生背景#10151D、面板#1A212C、文字#E8EDF4强调色相保持不变字号比例16px 基准 × 1.25 比率页面标题用clamp()限制在约 28–40px系统字体栈即可卡片12–16px 圆角、1px 低对比度边框、仅亮色主题下带轻微阴影图表Chart.js每个 canvas 包裹在固定高度容器约 320px中maintainAspectRatio: false颜色通过getComputedStyle取自调色板直接轴标签单图最多 5 个系列主题切换时重渲染图表以跟随配色最大内容宽度约 1080px 居中KPI 条带与卡片栅格使用 CSS grid 的auto-fit, minmax()。5.5 内容质量线章节标题是发现“Repeat buyers drive 62% of revenue”而非标签“Revenue analysis”页面上每个数字都来自提供的数据或引用的网络研究不得编造行文紧凑导语 2–3 句细节交给视觉元素承载。5.6 强制验证若 Node.js 可用对内嵌脚本做语法检查抽取script内容到临时.js文件把 DOM 调用隔离到 guard 中或用node --check用python3 -c import html.parser或正则做健全性检查每个被getElementById引用的id都存在DATA能解析为 JSON抽取后json.loads无浏览器时用 headless fetch 做打开检查至少重读文件确认两个主题块、切换处理器与所有章节标题都在修复并重建直到干净通过。5.7 交付保存为描述性文件名如q3_briefing.html上传命令curl -sS -X PUT --upload-file file -H Content-Type: text/html; charsetutf-8 upload_url失败重试一次 3. 最终报告声明文件名并列出各章节及其一行结论。六、从模板到沙盒的完整闭环把三份 SKILL.md 放回整体架构其生命周期可概括为制作维护者直接编辑 demo_skills 下的 SKILL.md无构建步骤搬运setup 脚本把该目录复制为演示项目中的skills/...并上传到 GCS 桶即SKILLS_SOURCE挂载create_managed_agent.py 通过base_environment.sources把它挂到/.agent/skills预热warmup_managed_agent.py 重复声明环境并预装工具链python-pptx、python-docx、reportlab、matplotlib、japanize-matplotlib、pypdf 及 Workspace CLI安装在环境快照中跨任务持久因此后续任务可以“先 import缺了才装”执行沙盒代理按 managed_agent_instruction.txt 的要求读取对应 SKILL.md字面遵循流程/设计系统/验证/交付并把成品经上传 URL 回传。仓库中的 README.md 还补充说明了沙盒环境细节约 7 天闲置后自动过期下次委托时代理会重新预热新环境Managed Agent 的创建本身典型耗时 8–10 分钟API 目前为 Pre-GA 且无需 allowlist。七、总结与可复用要点技能 可执行规范而非代码SKILL.md 的职责是把“行业资深分析师/咨询顾问”的隐性标准显性化为代理可字面执行的流程、设计系统、验证与交付四件套frontmatter 的description是触发匹配的关键务必写明场景与覆盖范围。三技能共享的硬原则交付物语言跟随任务语言、数字必须真实有据、图表非拉丁文字必须预注册字体并验证无空心方块、至少一轮强制审查-重建、上传即交付HTTP 200 才算数。设计系统先行三个技能都给出了完整色板与排版规范文档#1A2B4A/#222222deck 六色常量报告双主题自定义属性全部以常量/变量方式在代码中强制杜绝模板默认值。可复制清单若你为自己的 Agent 设计技能包直接套用name description的 frontmatter、英文可打印 ASCII 指令、/.agent/skills挂载约定与 curl 上传范式即可与 Antigravity 沙盒无缝衔接。【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表