尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用 Agno 的 Antigravity Agent 目录与 SKILL.md 技能文件打造风格化 AI Agent:以 Haiku Bot 为例

用 Agno 的 Antigravity Agent 目录与 SKILL.md 技能文件打造风格化 AI Agent:以 Haiku Bot 为例 用 Agno 的 Antigravity Agent 目录与 SKILL.md 技能文件打造风格化 AI Agent以 Haiku Bot 为例【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno导读本指南以仓库中 cookbook/frameworks/antigravity/example_agent/skills/haiku/SKILL.md 为核心讲解 Agno 如何通过「agent directory」约定把本地目录agent.yamlAGENTS.mdworkspace/skills/打包注册为 Google AntigravityGemini Agents API的自定义 Agent并用skills/haiku/SKILL.md这样的技能文件注入风格化指令house style让 Agent 的输出严格遵循俳句的 5-7-5 韵律规范。读完本文你将掌握 SKILL.md 的编写要点、Agent 目录的完整结构、AntigravityAgent.from_agent_directory()的注册与运行机制以及如何在沙箱内通过/.agents/skills/name/挂载技能。一、SKILL.md用一份风格规范约束 Agent 输出1.1 原文档的完整约定SKILL.md 全文虽短却是一份高度浓缩的「house style」规范它定义了 Haiku Bot 写俳句时必须遵循的硬性约定5-7-5 音节结构严格遵循5-7-5 syllable structure, strict.三行俳句第一行 5 个音节、第二行 7 个音节、第三行 5 个音节不允许松动优先具体意象而非抽象表达Prefer concrete imagery over abstraction.鼓励可感知的物象描写避免空泛的抽象抒情自然时包含至少一个季语kigoInclude at least one season-word (kigo) when natural.季语是俳句传统中提示季节的词在合适的情况下必须出现无 emoji、无前言、无结尾语——只输出俳句本身No emojis, no preamble, no closing remarks — output ONLY the haiku itself.模型的响应被严格约束为纯文本俳句。这是一份典型的「输出格式 语言风格」双重约束的技能文件。它本身不含可执行代码价值在于通过 prompt 层面对模型生成行为做精确塑形。1.2 技能文件在 Agent 目录中扮演的角色SKILL.md 不是孤立存在的它被组织进 example_agent 的 Agent 目录结构里。从 antigravity_from_agent_directory.py 的注释可以看到完整约定example_agent/ ├── agent.yaml # id, base_agent, description, system_instruction ├── AGENTS.md # System instructions (overrides agent.yaml.system_instruction) ├── skills/ # Mounted under /.agents/skills/name/ in the sandbox │ └── haiku/SKILL.md └── workspace/ # Mounted at the sandbox root └── about.txt其中skills/目录专门承载技能文件haiku/SKILL.md就是这个机器人的「俳句 house style」技能。二、Agent 目录结构详解从四个文件到沙箱环境2.1 agent.yamlAgent 元数据agent.yaml 定义了 Agent 的身份id: agno-haiku-bot-from-dir base_agent: antigravity-preview-05-2026 description: Haiku-writing assistant defined from a local directory. # system_instruction is here as a fallback; AGENTS.md overrides it if present. system_instruction: You are a haiku-writing assistant.各字段含义id注册到 Antigravity Agents API 的命名标识示例为agno-haiku-bot-from-dirbase_agent底层模型/基础 Agent 版本示例固定为antigravity-preview-05-2026descriptionAgent 用途描述system_instruction兜底系统指令当存在AGENTS.md时会被其覆盖——这正是目录约定的关键优先级规则。2.2 AGENTS.md真正的系统指令AGENTS.md 定义机器人的行为准则用户给出主题后只回复一首俳句——三行、5-7-5 音节除此之外什么都不输出启动时读取一次位于/.agents/skills/haiku/SKILL.md的 house style 指南此后每次写俳句都应用其约定环境中有/about.txt工作区文件描述机器人本身平时无需读取但用户问起环境内容时可提及。注意AGENTS.md中的路径/.agents/skills/haiku/SKILL.md是沙箱内的挂载路径不是仓库内的相对路径——它由skills/目录在部署时映射而来详见下文源码分析。2.3 workspace沙箱根目录的种子文件workspace/about.txt 的内容是一句自我介绍「This is the agno-haiku-bot, defined from a local agent directory and loaded into an Antigravity sandbox via AntigravityAgent.from_agent_directory().」它会被直接投放到远程沙箱环境的根目录/about.txt用于让 Agent 感知自身环境。三、加载与注册AntigravityAgent.from_agent_directory()3.1 用法与幂等注册antigravity_from_agent_directory.py 展示了完整调用方式from pathlib import Path from agno.agents.antigravity import AntigravityAgent AGENT_DIR Path(__file__).parent / example_agent # from_agent_directory POSTs to /agents before returning (registerTrue default). agent AntigravityAgent.from_agent_directory(str(AGENT_DIR)) agent.print_response(Topic: autumn maples., streamTrue) agent.print_response(Topic: a quiet beach at dawn., streamTrue)关键行为依据脚本注释与源码from_agent_directory解析目录 → 构建 inline source 列表 → 默认registerTrue通过POST /v1beta/agents把命名 Agent 注册到 API 后返回409 / already-exists 被视为成功因此重复运行脚本是幂等的若传registerFalse可先审查解析结果之后再调用agent.ensure_custom_agent()完成注册对应源码中的 ensure_custom_agent 方法文件大小限制超过 75 KB 的 inline 文件会被跳过并告警API 的 inline-source 上限对应源码常量INLINE_SOURCE_MAX_BYTES 75 * 1024见 agent.py二进制文件会被跳过——API 目前仅支持文本文件。3.2 源码级的挂载规则从 agent.py 的目录解析实现第 160-182 行 及第 243-274 行可以确认两条映射规则workspace/rel → target /rel skills/name/rel → target /.agents/skills/name/rel也就是说workspace/about.txt→ 沙箱根目录/about.txtskills/haiku/SKILL.md→ 沙箱内/.agents/skills/haiku/SKILL.md。这正是AGENTS.md里那句「Read it once when you start」所指路径的由来。运行时 Agent 能按该路径读取 house style 并持续应用。四、运行前的准备该示例的运行前提来自 antigravity_from_agent_directory.py 的 Requirements 与 READMEexport GEMINI_API_KEY... pip install pyyaml运行命令仓库为只读仅说明执行方式.venvs/demo/bin/python cookbook/frameworks/antigravity/antigravity_from_agent_directory.py运行后会先后生成两首俳句主题分别为「秋日的红枫」autumn maples与「黎明时分的静谧海滩」a quiet beach at dawn——两个主题都天然契合 SKILL.md 中「具体意象 季语」的要求秋、清晨均为典型季语场景可直观检验风格约束是否生效。五、延伸同一约定在 Toolkit 中的复用Agent 目录约定不仅适用于AntigravityAgent也适用于 Agno 的 Toolkit 集成。在 cookbook/91_tools/antigravity/antigravity_directory_tools.py 中同一个agent.yaml目录可被接入 toolkit解析 → 注册 → 将后续工具调用路由到该命名 Agent。这意味着写好一份example_agent/目录含skills/haiku/SKILL.md既可以直接作为独立 Agent 运行也可以作为其他 Agno Agent 的可委托技能复用。六、实践要点小结技能文件三要素SKILL.md 这类 house style 文档应同时约束「输出格式」5-7-5、纯俳句与「语言风格」具象意象、季语并明确禁止项emoji、前言、结尾语目录即 Agentagent.yamlAGENTS.mdskills/workspace/四件套构成完整可注册的 Agent 目录AGENTS.md优先于agent.yaml.system_instruction路径映射心智模型workspace/→ 沙箱根/skills/name/→/.agents/skills/name/编写技能引用时按沙箱路径书写注意限制inline 文件上限 75 KB、仅支持文本文件超出需自行拆分或另谋存储方案幂等安全registerTrue时 409 视为成功脚本可反复执行无需清理远端状态。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表