十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

awesome-copilot 中的 agent-skill-stack:为自然语言目标编排最小、可审计的 GitHub Copilot 智能体技能栈

awesome-copilot 中的 agent-skill-stack:为自然语言目标编排最小、可审计的 GitHub Copilot 智能体技能栈 awesome-copilot 中的 agent-skill-stack为自然语言目标编排最小、可审计的 GitHub Copilot 智能体技能栈【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot导读本篇文章围绕 skills/agent-skill-stack/SKILL.md 展开它定义了「agent-skill-stack」这一技能给定一个端到端的自然语言目标自动寻找、评估并组装规模最小且互相兼容的一组 AI Agent Skill智能体技能同时完成已安装技能的审计、冲突检查与受控安装。读完本文你将掌握该技能完整的 10 步操作流程工作流推导、本地索引检索、四透镜搜索、硬门禁验证、加权排序、冲突消解、平实语言汇报、征得同意后安装、召回检查并能通过仓库内五个可执行脚本skill_index.py、inventory_skills.py、stage_install.py、project_profile.py、render_stack_card.py落地每个环节。一、技能定位什么时候该用什么时候不该用agent-skill-stack的 frontmatter 声明见 SKILL.md给出了精确的适用边界适用场景用户需要为多步骤工作流寻找一批 Skill询问哪些 Skill 适合某个项目需要对已安装 Skill 做审计或冲突检查对已有 Skill 的记忆/召回效果不理想希望引入「间接助手」如文风润色、合规检查希望为特定项目构建受控安装的技能栈。明确不适用定位某一个已知或常见 Skill。此时应使用通用的 find-skills 工作流而不是本技能。在 agents/openai.yaml 中该技能被进一步定义为「把任何目标变成最小、可审计的技能栈」minimal, audited Skill Stack默认提示词是把目标转化为最小、兼容、项目专属的 Agent Skill Stack并用平实语言解释。技能的核心信条只有一句话为用户的真实结果构建最小有用的栈绝不把某个领域示例或固定生命周期强加给不同的请求。二、第 1 步选择面向用户的沟通深度默认采用平实语言模式plain-language mode假设用户不需要理解路径、修订号、哈希、清单、静态分析与运行时细节。在这种模式下向用户展示用户想达成的目标是什么用日常语言描述的执行步骤哪些能力已经具备哪些 Skill 是推荐、可选、重叠或不适合的每个候选被使用的广泛程度是否通过了安装安全检查与安全试跑可能需要的账号访问或外部操作。源码路径、修订号、文件指纹、原始评分、审计证据和依赖细节一律保留在内部记录中只有当用户主动索要技术细节、或某个技术事实是知情同意所必需时才向用户展示。这一点贯穿整个技能的设计技术能力卡在内部用户只看到简短易懂的流程。三、第 2 步动态推导工作流而非套用模板工作流的推导方法记录在 references/workflow-model.md其核心是三条反模板规则反模板规则不要从「调研 → 创作 → 发布 → 分析」这类领域生命周期出发而要从用户的最终结果和当前起点出发只为这个结果补充真实必需的中间条件。两个包含相同领域词的请求可能完全需要不同的流程。反向推导、正向验证先问「什么可观察结果会让用户认为这件事完成了」再问「在该结果存在之前什么条件必须为真」继续追问「什么输入、决策、权限或转换使该条件成立」直到追到用户已经拥有或能提供的东西最后正向走一遍确认每个步骤都产出了下一步的输入。不要把每个内部问题都抛给用户只有当答案会改变技能栈、成本、权限或交付物时才提问。识别形状而非选择模板独立推断请求的属性——一次性还是周期性创建、决策、转换、协调还是监控仅本地、外部读取还是外部写入人主导、智能体辅助还是全自动单系统还是多系统可逆还是难撤销出错后果低还是高。拆分与停止规则同样明确当一步中包含「两个可独立替换的动作」「既有读取又有外部写入」「不同的账号或权限」「审批决策与审批后的动作」「不同成功条件的输出」「风险动作与安全动作混杂」时应当拆分当一步满足「非技术用户也能理解的一个动作、一个主要结果、一个访问/副作用边界、一个可观察的成功条件」时就停止拆分。每个推导出的步骤都在内部维护一张能力卡capability card以 workflow-model.md 中的 YAML 结构记录goal: user-visible result input: what is available before the step operation: one normalized action output: what the step produces constraints: [] frequency: one-off|recurring|event-driven access: local|read-external|write-external approval: none|before-access|before-spend|before-external-write success: observable pass condition fallback: alternative when unavailable predecessors: [] successors: []对新手用户同样信息用一句话呈现例如先用已有资料确认需求再生成可审核的结果只有你确认后才会写入外部系统。文档还提供了横切需求对照表质量/文风humanizer、brand voice、proofreading、准确性fact check、grounded research、citation verification、合规compliance、policy audit、copyright、隐私/安全secret handling、PII redaction、permission audit、本地化localization、translation QA、数据质量dedupe、validation、schema mapping、协调workflow、scheduler、human approval、可见性logging、analytics、monitoring——仅当某个步骤真正需要时才考虑这些助手。最终以「充分性检查」收尾每个必需步骤都有明确结果、至少一个有意义的检索表述、访问与审批分类、可判定成功与否的条件以及「使用现有 Skill / 新 Skill / 其他工具 / 不额外加能力」的明确理由。四、第 3 步本地索引优先索引缺失则重建检索策略记录在 references/local-index-and-profiles.md**渐进式加载progressive loading**控制单个 Skill 有多少内容进入上下文先元数据、命中后再加载完整指令**项目技能栈档案project profile**控制某个项目应优先考虑哪些 Skill 以及它们如何交接。两者互补档案在匹配前缩小候选集与路由范围渐进式加载在选中后保持 Skill 轻量。4.1 构建与搜索本地索引索引的核心实现是 scripts/skill_index.py。当本地索引缺失或过期时从相关 Skill 根目录重建python3 scripts/skill_index.py build \ --root ~/.codex/skills \ --root ~/.codex/plugins/cache \ --root .codex/skills \ --root ~/.agents/skills \ --root ~/.hermes/skills \ --output ~/.codex/skill-index.json从实现看skill_index.pybuild_record对每个SKILL.md执行解析 frontmatter 中的name与description提取前 40 个 H1–H3 标题对「名称 描述 标题」做中英文分词生成capability_terms最多 120 个 token校验目录名与 Skill 名是否一致计算文件 SHA-256 指纹记录最后修改时间与作用域项目内/全局。索引记录包含稳定名称与来源根、平实语言摘要、别名与能力词、全局或项目作用域、本地最后修改时间、文件指纹、重复或元数据问题。索引绝不执行任何 Skill也不存储任何提示词、命中率或使用历史skill_index.py 的输出载荷中明确写入privacy声明。搜索已构建的索引python3 scripts/skill_index.py search \ --index ~/.codex/skill-index.json \ --query natural Chinese writing \ --limit 8值得注意的源码细节查询扩展表skill_index.py内置了 8 组中英文触发词到能力词的映射例如「配齐 / skill stack」扩展为agent-skill-stack build curate skill stack ... 组合 技能栈 能力 工作流 项目「ai味 / humanize / 自然一点」扩展为humanizer humanize writing rewrite ... 文案 改写 自然 文风让中文自然语言也能命中英文技能索引评分函数skill_index.py遵循「用户实际说的话必须压过查询扩展词」的原则直接命中词 × 4 分、扩展命中词 × 1 分查询与名称完全相等加 20 分、包含加 10 分、出现在摘要加 8 分项目作用域加 1 分存在 issues 减 2 分。search命令输出结果时明确提示检索分数只是召回提示不是质量或安装评分skill_index.py。4.2 项目技能栈档案档案存放于project/.codex/skill-stack.json记录项目/档案名称、激活的 Skill 名、intent → primary/supporting 的路由、档案优先行为以及是否允许为未覆盖能力搜索档案之外。生成预览用 scripts/project_profile.pypython3 scripts/project_profile.py \ --project /path/to/project \ --name my-project-stack \ --skill primary-skill \ --skill helper-skill \ --route main taskprimary-skill \ --route writing qualityhelper-skill从实现看路由格式为intentprimary[,helper]会校验 Skill 名格式小写字母数字加连字符见 project_profile.py并强制路由引用的 Skill 必须已通过--skill列出project_profile.py。--strict表示禁止自动搜索档案之外--update必须搭配--apply已有档案时默认拒绝覆盖project_profile.py。生成的文件中technical_note明确说明档案只是路由偏好真正的硬性作用域隔离需要客户端支持项目级 Skill 目录安装project_profile.py。当存在档案时路由顺序为先用档案路由与激活 Skill 匹配请求主任务用档案主 Skill助手只在定义好的交接点加入只有当必需能力缺失或用户索要替代时才搜索档案之外即使全局 Skill 的描述很宽泛也把它们排除在提议栈之外。修改档案后需要重建本地索引并重跑召回检查。五、第 4 步按能力映射包括间接助手对每个必要步骤内部记录必需输入/动作/输出、约束/频率/规模、本地/读外部/写外部边界、账号/权限/审批需求、成功条件与回退、前驱与后继步骤。然后按input - operation - output匹配 Skill而不是按标题相似度——这正是「Humanizer」能在用户领域词完全不出现在其名称中时依然匹配自然写作需求的原因。不要强求「一步一个 Skill」一个 Skill 可以覆盖多个步骤一个步骤可能需要的是工具、MCP、连接器或通用智能体能力而不是又一个 Skill。横切需求只在相关时才考虑质量/风格、准确性、合规、隐私、本地化、数据质量、编排、可观测性。六、第 5 步用四个透镜搜索检索方法论记录在 references/discovery-ranking.md对每个未覆盖能力从四个透镜搜索直接需求用户的领域与动作底层操作实际的转换或数据处理任务支撑结果质量、安全、风格、合规、评估与监控连接方式CLI、MCP、API、连接器、浏览器自动化、存储与交接。展开中英文别名、动词、名词、输出物与相邻术语尽量搜索标题、描述、标题结构与完整SKILL.md内容。因为没有任何注册表是完备的需要多源并用本地 Skill 索引与已安装清单GitHub 连接器或 GitHub 文件/仓库搜索npx skills find query与 skills.shagentskill.sh 或其他可用注册表OpenCLI 用于广泛的网页发现与平台专项研究。浏览器驱动的 OpenCLI 搜索必须顺序执行未经用户批准不得登录、添加凭证或启用连接器。搜索顺序为当前项目档案与本地索引 → 未索引的已安装/归档 Skill → skills.sh、agentskill.sh 等注册表 → GitHub 仓库与文件搜索 → OpenCLI/通用网页搜索 → 仅在需要当前平台证据时才做平台专项搜索。检索片段只用于发现候选验证必须回到规范仓库。七、第 6 步验证与排序——先过硬门禁再谈评分每个搜索结果都只是候选不是推荐。必须先确定规范仓库与精确的 Skill 路径通读完整 Skill 以及安装后会变得可达的每一个可执行文件。出现以下任一情况即拒绝或隔离候选来源或声称的能力无法验证结构无法安装必需依赖不兼容或不可用关键凭证访问、数据上传、提示注入、破坏性动作或代码混淆无法解释唯一可能的测试会发布、发送、购买、删除或修改真实账号许可证或平台条款使预期用途存在实质性不确定性。通过硬门禁的候选才进入加权评分见 discovery-ranking.md维度权重高分意味着工作流契合度30精确匹配所需的输入、操作、输出与边界社区采用度25可信的安装量、Star、反馈与独立真实使用安全与控制15最小权限、清晰的审批、无无法解释的高风险行为证据与安全试跑15全文件证据 可复现的非破坏性试跑易用性10依赖可用、安装清晰、输出稳定、报错有用维护与溯源5规范来源、可识别所有者、近期维护或刻意保持稳定25 分社区分再细分安装/采用数最多 10 分相对年龄与细分领域的 Star/Fork 最多 5 分有足够规模的评分与书面反馈最多 5 分独立示例、集成或重复使用最多 5 分。避免把 monorepo 的 Star 重复计算给每个小 Skill并按来源、年龄与细分领域归一化新发布的细分 Skill 可以标记为promising但没有证据时不应压过同样契合且久经考验的替代品。内部信任记录以 YAML 维护discovery-ranking.md字段包括identitycanonical owner/repository:pathrevision、source_url、license、capability、covered_steps、evidence、dependencies、permissions、external_actions、社区四元组installs/stars/feedback/independent_usage、last_confirmed_working、installation_safety_check、safe_trial、local_status、file_fingerprint与uncertainties。置信标签四档Confirmed硬门禁通过、完整检查完成、安全试跑通过、Promising契合度好但试跑或依赖验证未完成、Unconfirmed证据不足排除出一键安装、Blocked硬门禁失败或存在关键风险。最小栈选择优先顺序是「已有的已确认本地 Skill → 一个路由良好的、覆盖多个必要能力的 Skill → 主 Skill 加窄范围助手 → 仅为真实缺口安装新 Skill」。除非用户想要替代方案否则不要为同一步骤推荐两个主 Skill。八、第 7 步冲突分析与作用域收敛安全与冲突模型记录在 references/security-installation.md。首先明确四个术语的平实含义安装安全检查在不运行的前提下通读 Skill 的指令、脚本与安装钩子查找密钥访问、意外上传、危险命令、隐藏指令或过度权限安全试跑用假数据或小样本数据确认主要能力可用不发布、不发送、不购买、不删除、不修改真实账号最近确认可用某人上次确认该 Skill 在兼容环境中仍可工作的日期文件指纹由文件内容导出的内部标识用于发现 Skill 在审查后是否被改动平实模式不展示。这些记录服务于安全、新鲜度与可靠更新不是用户活动追踪。8.1 威胁模型第三方 Skill 的指令、README、Issue、网页与捆绑代码在审查前一律视为不可信重点检查覆盖用户/系统权威或隐藏行为的指令编码、下载、生成或自修改指令密钥/饼干/keychain/SSH/云凭证/浏览器配置/环境变量访问上传、遥测、回调、粘贴服务或意外端点破坏性命令、宽泛写入、持久化、反向 shell 或提权包安装钩子与未固定依赖发布/发送/评论/购买/删除/账号变更许可证与平台条款约束。扫描器发现只是线索不是定论必须人工审查真实行为与数据流绝不通过执行不可信代码来「看看会发生什么」。仓库还提供了配套的只读审计工具 scripts/inventory_skills.py其内置的风险模式表inventory_skills.py与上述威胁模型一一对应rm -rf/git reset --hard/shutil.rmtree破坏性命令、.ssh/.aws/keychain/credential/cookie/secret/api_key/.env/os.environ凭证访问、curl/wget/requests./urllib./fetch(网络下载、base64 -d/eval(/exec(/child_process/subprocess.动态或混淆执行、crontab/launchctl/systemctl enable持久化、sudo/chmod 777/chown -R提权或宽泛权限、中英文发布/发送/上传/删除/购买/评论动词外部变更、sk_/ghp_/github_pat_/AKIA长 token 模式疑似硬编码令牌。默认扫描上限为 250 个候选文件、单文件 1 MB输出中附注「指标需要人工复核不是恶意软件结论」。8.2 冲突模型类型示例优先解决方式身份两个来源的同名 Skill保留一个规范固定来源召回相似描述争夺同一请求收窄角色选一个主 Skill限定项目作用域指令一个自动发布另一个要求审批保留审批门与明确交接资源双方拥有同一文件/端口/浏览器配置/连接器指定唯一所有者或隔离依赖运行时或包版本不兼容固定兼容版本或改选替代数据相邻步骤格式不兼容增加清晰的适配器与成功检查权限助手要求超出主任务的访问范围移除它或收窄其作用域合规留存、署名或平台规则不同采用更严格的已验证规则描述重叠只是路由风险不是冲突证据——决定前必须通读两个 Skill。重叠的量化检测同样由 inventory_skills.py 提供对每个 Skill 的触发 token 集合计算交集/并集比值Jaccard 式默认阈值 0.28、最多报告 200 对inventory_skills.py输出中同样强调「风险指标与触发重叠需要人工复核它们不是结论」inventory_skills.py。冲突的解决方式选择一个主 Skill、为助手定义窄交接、让替代方案互斥、或不安装冗余候选。优先使用项目本地 Skill 与项目技能栈档案处理任务特定能力只有需要广泛可用的能力才做全局安装。九、第 8 步用平实语言呈现建议默认输出包含六块你想达成的目标一句简短重述工作如何拆解为本次请求推导的简短编号流程你已经拥有的现有有用 Skill 与未覆盖缺口推荐的组合Required / Helpful / Alternative / Not recommended为什么选这些契合度、采用度、安全检查、安全试跑与冲突的日常语言说明需要你决策的事项账号访问、付费服务、外部发布或安装选择。平实标签使用已具备、推荐、可选、不建议、安全检查通过、安全试跑通过、最近确认可用默认回复中不出现哈希或本地路径。需要时提供查看技术详情技术视图可包含规范来源、修订号、文件指纹、精确目标路径、原始证据、依赖、权限与回滚细节。当用户想要可复用的产物时从结构化 JSON 生成可分享的推荐卡python3 scripts/render_stack_card.py \ --input /path/to/stack-card.json \ --output /path/to/stack-card.svg实现细节render_stack_card.py纯 Python 标准库生成 SVG无外部依赖卡片必须有title、goal与非空skills列表且最多 8 个 Skillrender_stack_card.py状态徽章按available/recommended/optional/not-recommended/verified五档着色render_stack_card.py输出强制.svg后缀且默认拒绝覆盖已有文件。卡片保持无技术路径、无原始哈希的可读性包含目标、选中的 Skill、每个角色与状态、安全边界与验证日期。十、第 9 步仅在征得同意后安装推荐不等于授权安装。用户选择之后按 security-installation.md 执行。默认采用分阶段安装staged installation十个步骤环环相扣下载到隔离的暂存目录解析精确 Skill 路径不盲信 README 里的路径校验元数据与目录/名称一致性通读完整 Skill、可执行文件、安装钩子与直接引用的敏感资源记录内部文件指纹与候选身份在不执行候选代码的前提下完成安装安全检查仅当试跑不会改动外部状态时进行安全试跑展示合适的预览并获得选择不覆盖已存在的目标进行安装重新索引、跑召回检查、更新内部锁记录。对应工具是 scripts/stage_install.py用法python3 scripts/stage_install.py \ --source /path/to/skill-a \ --dest ~/.codex/skills \ --manifest ./skill-stack-lock.json预览通过后获得批准再用--apply重复执行。实现细节非常严格校验SKILL.md的 frontmatter 分隔符与name字段名称必须匹配^[a-z0-9](?:-[a-z0-9])*$且不超过 63 字符stage_install.py递归收集文件时拒绝任何符号链接目录与文件均拒绝stage_install.py防止安装阶段引入链接逃逸对全部文件计算 SHA-256 并聚合出目录级content_sha256stage_install.py--apply与--record-existing互斥目标已存在时默认直接拒绝覆盖refusing to overwrite existing destinationsstage_install.py正式落盘前先在目标目录下创建隐藏暂存子目录做二次校验全部通过后逐个os.replace原子移动stage_install.py。一键批量安装政策只有当选中的每个 Skill 都通过了硬门禁、拥有精确固定的身份、没有未解决的冲突、不会覆盖已有目标、且用户明确批准批量时才允许一键安装。「全部安装」只代表选中的已确认集合绝不是所有搜索结果。写盘前若发现目标已存在或校验失败必须中止部分创建要精确报告且只在用户批准后才移除。永远不要静默添加凭证、接受新权限、覆盖已安装 Skill或发布/发送/删除外部数据。用户选定技能栈后以 dry-run 模式提供项目档案python3 scripts/project_profile.py \ --project /path/to/project \ --name project-stack \ --skill skill-a \ --skill skill-b用户确认档案后再使用--apply。十一、第 10 步召回检查——测的是选得对不对不是跑得快不快安装或档案变更后执行召回检查recall check而不是性能基准测试用三类请求验证直接说法明确说出任务名的请求自然转述用不同措辞表达同一结果、不含 Skill 名称的请求支撑性说法请求质量、安全或合规改进应当把助手带进来的请求。确认正确的主 Skill 与支撑 Skill 被选中、无关 Skill 不被卷入。对新手只报告诸如3/3 种说法都能正确识别的结果把原始提示与路由细节留在技术视图。如果路由含糊就收窄描述、更新本地索引或移除冗余的全局安装。禁止收集或存储用户提示历史、命中/未命中日志、手动选择或路由反馈日志——这是本技能在隐私设计上的一条硬性红线也写进了索引与档案文件的privacy字段skill_index.py、project_profile.py。十二、给读者的落地路径如果你想在仓库中进一步研究本技能的工程化细节推荐按此顺序阅读主流程骨架skills/agent-skill-stack/SKILL.md——10 步流程与对外行为契约方法论文档references/workflow-model.md工作流推导、references/local-index-and-profiles.md索引与档案、references/discovery-ranking.md检索与评分、references/security-installation.md安全与受控安装可执行工具skill_index.py、inventory_skills.py、stage_install.py、project_profile.py、render_stack_card.py智能体接入定义agents/openai.yaml。这套技能的价值在于把「为任务选技能」从一次性的检索动作升级为一条可审计的工程流水线反向推导只建最小流程、本地索引先于网络、硬门禁先于评分、平实汇报先于技术详情、同意先于安装、召回检查收尾闭环——最终交付的是最小、兼容、项目专属、且每一步都有证据可查的技能栈。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表