如何实现被大型语言模型代理识别的自定义指令文件(例如MYTOOL.md)

人工智能 2026-07-09

解决方案

AI工具,像 copilotcodex,对像 DESIGN.mdAGENT.mdSKILL.md 这样的文件有特殊处理。在哪里可以获得一个框架/流程来创建我自己的 MYTOOL.md

就我目前的探索来看,如果我创建 MYTOOL.md 并在提示中持续引用它,LLM就能够使用它。或者如果把它发布为一个技能,它也能使用,但感觉仍然是在朝着更前端的方向将像 SKILL.md / AGENT.md 这样的文件紧密整合在一起,以赋予它们在AI Agent中的特殊含义/处理方式。

我已经查看了 https://github.com/google-labs-code/design.md 的代码,但仍无法掌握创建自己的 MYTOOL.md 的步骤。

解决方案

并不存在一个普遍的标准,让LLMs能像对待 AGENT.mdSKILL.md 那样自动识别 MYTOOL.md。那些文件之所以显得特别,是因为某些工具(如GitHub Copilot或 OpenAI Codex)对它们有硬编码的约定或训练模式。

所以如果你想让你自己的 MYTOOL.md 表现得类似,你必须通过结构+ 工具来自己重新创建这种“特殊性”——不仅仅是文件名。背后在SKILL.md / AGENT.md之间实际发生了什么?这些文件之所以能很好地工作,是因为:

  • 它们遵循可预测的模式
  • 代理运行时显式加载它们
  • 提示会自动注入它们
  • 有时微调或系统提示会强化它们

所以你在寻找的“框架”并不是一个库——它是一种模式:

“约定+ 加载器+ 提示注入+ 执行循环”

如何构建你自己的MYTOOL.md系统

1 define a Strict Schema(这一步很关键)不要让它成为自由形式的Markdown。给它一个代理能够可靠解析的结构。

示例:

MYTOOL: CodeRefactorer

目的

Refactor code for readability and performance.

输入

  • language: string

  • code: string

输出

  • refactored_code: string

  • explanation: string

规则

  • Preserve functionality
  • Improve naming conventions
  • Reduce complexity

示例

输入

language:

-javascript

-code: var x=1;

输出

let count = 1;

把这看作是一个轻量级的DSL(领域特定语言),不仅仅是文档

  1. 构建一个Loader(这就是像Copilot这样的工具内部在做的)

你需要一个层:扫描仓库中的 \*.md(或专门的MYTOOL.md)解析分节 将它们转换为结构化的JSON注入到prompts

示例(伪代码):const tool = parseMarkdown("MYTOOL.md");

const systemPrompt = 你是一名AI代理。

Available tools: \${JSON.stringify(tool);

  1. 创建一个工具调用协议LLMs不会在没有你定义如何使用的情况下自行决定使用你的工具。示例模式

“ 当一个任务匹配某个工具时:回复:

TOOL_CALL: name: CodeRefactorer input: language: javascript code: ... ”

然后你的运行时:检测TOOL_CALL执行逻辑(或调用另一个LLM)将结果返回

  1. 增加一个计划层(这就是让它看起来像一个“代理”)

与其直接回答:用户 -> LLM -> Answer

应该是:用户 -> LLM(Planner)-> 决定工具 -> 执行工具 -> 返回结果

这就是现代代理框架的工作方式。

  1. 可选:将它注册为一个“技能”

像Codex或 Copilot这样的工具有时会对技能给予特殊处理,因为:

它们被索引 它们有元数据 它们是预加载的

你可以通过以下方式模拟:保留一个 /skills文件夹,在启动时加载所有.md文件,为它们命名、设定触发条件、能力。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章