Skip to content

플러그인 에이전트 도구

OpenClaw 플러그인은 노출된 에이전트 도구(JSON-스키마 기능)를 등록할 수 있습니다. 에이전트가 실행되는 동안 LLM에. 도구는 필수(항상 사용 가능) 또는 선택 사항(선택).

에이전트 도구는 기본 구성의 tools에서 구성되거나 아래의 에이전트별로 구성됩니다. agents.list[].tools. 허용 목록/거부 목록 정책은 에이전트가 사용할 도구를 제어합니다. 전화할 수 있습니다.

기본 도구

ts
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 }] };
    },
  });
}

선택적 도구(선택)

선택적 도구는 절대 자동으로 활성화되지 않습니다. 사용자는 이를 에이전트에 추가해야 합니다. 허용 목록.

ts
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)에서 선택적 도구를 활성화합니다.

json5
{
  agents: {
    list: [
      {
        id: "main",
        tools: {
          allow: [
            "workflow_tool", // specific tool name
            "workflow", // plugin id (enables all tools from that plugin)
            "group:plugins", // all plugin tools
          ],
        },
      },
    ],
  },
}

도구 가용성에 영향을 미치는 기타 구성 손잡이:

  • 플러그인 도구 이름만 지정하는 허용 목록은 플러그인 선택으로 처리됩니다. 핵심 도구는 남아있다 허용 목록에 핵심 도구나 그룹도 포함하지 않는 한 활성화됩니다.
  • tools.profile / agents.list[].tools.profile (기본 허용 목록)
  • tools.byProvider / agents.list[].tools.byProvider (공급자별 허용/거부)
  • tools.sandbox.tools.* (샌드박스 처리 시 샌드박스 도구 정책)

규칙 + 팁

  • 도구 이름은 핵심 도구 이름과 충돌해서는 안 됩니다. 충돌하는 도구는 건너뜁니다.
  • 허용 목록에 사용되는 플러그인 ID는 핵심 도구 이름과 충돌해서는 안 됩니다.
  • 부작용을 유발하거나 추가가 필요한 도구에는 optional: true를 선호합니다. 바이너리/자격 증명.

비공식 커뮤니티 번역 · 공식 영문 문서