Расширения

Инструменты агента плагина

Плагины OpenClaw могут регистрировать инструменты агента (функции JSON‑схемы), которые предоставляются LLM во время работы агента. Инструменты могут быть обязательными (всегда доступны) или опциональными (подключаются по желанию). Инструменты агента настраиваются в разделе tools основной конфигурации или для каждого агента в agents.list[].tools. Политика разрешительных/запретительных списков контролирует, какие инструменты может вызывать агент.

Базовый инструмент

import { Type } from "@sinclair/typebox";

export default function (api) {
  api.registerTool({
    name: "my_tool",
    description: "Do a thing",
    parameters: Type.Object({
      input: Type.String(),
    }),
    async execute(_id, params) {
      return { content: [{ type: "text", text: params.input }] };
    },
  });
}

Опциональный инструмент (подключается по желанию)

Опциональные инструменты никогда не включаются автоматически. Пользователи должны добавить их в разрешительный список агента.

export default function (api) {
  api.registerTool(
    {
      name: "workflow_tool",
      description: "Run a local workflow",
      parameters: {
        type: "object",
        properties: {
          pipeline: { type: "string" },
        },
        required: ["pipeline"],
      },
      async execute(_id, params) {
        return { content: [{ type: "text", text: params.pipeline }] };
      },
    },
    { optional: true },
  );
}

Включите опциональные инструменты в agents.list[].tools.allow (или глобально в tools.allow):

{
  agents: {
    list: [
      {
        id: "main",
        tools: {
          allow: [
            "workflow_tool", // конкретное имя инструмента
            "workflow", // id плагина (включает все инструменты этого плагина)
            "group:plugins", // все инструменты плагинов
          ],
        },
      },
    ],
  },
}

Другие параметры конфигурации, влияющие на доступность инструментов:

  • Разрешительные списки, содержащие только инструменты плагинов, рассматриваются как подключение плагинов; основные инструменты остаются включенными, если вы также не добавите основные инструменты или группы в разрешительный список.
  • tools.profile / agents.list[].tools.profile (базовый разрешительный список)
  • tools.byProvider / agents.list[].tools.byProvider (разрешение/запрет для конкретного провайдера)
  • tools.sandbox.tools.* (политика инструментов в песочнице при работе в изолированном режиме)

Правила и советы

  • Имена инструментов не должны совпадать с именами основных инструментов; конфликтующие инструменты пропускаются.
  • Идентификаторы плагинов, используемые в разрешительных списках, не должны совпадать с именами основных инструментов.
  • Предпочитайте optional: true для инструментов, которые вызывают побочные эффекты или требуют дополнительных бинарных файлов/учетных данных.

Манифест плагинаOpenProse