Strumenti agente plugin
I plugin Mayros possono registrare strumenti agente (funzioni JSON-schema) che sono esposti al LLM durante le esecuzioni dell'agente. Gli strumenti possono essere obbligatori (sempre disponibili) o opzionali (opt-in).
Gli strumenti agente sono configurati in tools nella configurazione principale, o per agente in agents.list[].tools. La policy allowlist/denylist controlla quali strumenti l'agente può chiamare.
Strumento base
tsimport { Type } from "@sinclair/typebox"; export default function (api) { api.registerTool({ name: "my_tool", description: "Fa qualcosa", parameters: Type.Object({ input: Type.String(), }), async execute(_id, params) { return { content: [{ type: "text", text: params.input }] }; }, }); }
Strumento opzionale (opt-in)
Gli strumenti opzionali non sono mai auto-abilitati. Gli utenti devono aggiungerli a un allowlist agente.
tsexport default function (api) { api.registerTool( { name: "workflow_tool", description: "Esegue un workflow locale", parameters: { type: "object", properties: { pipeline: { type: "string" }, }, required: ["pipeline"], }, async execute(_id, params) { return { content: [{ type: "text", text: params.pipeline }] }; }, }, { optional: true }, ); }
Abilita strumenti opzionali in agents.list[].tools.allow (o globale tools.allow):
json5{ agents: { list: [ { id: "main", tools: { allow: [ "workflow_tool", // nome strumento specifico "workflow", // id plugin (abilita tutti gli strumenti da quel plugin) "group:plugins", // tutti gli strumenti plugin ], }, }, ], }, }
Altre manopole configurazione che influenzano la disponibilità degli strumenti:
- Le allowlist che nominano solo strumenti plugin sono trattate come opt-in plugin; gli strumenti core rimangono abilitati a meno che tu non includa anche strumenti core o gruppi nell'allowlist.
tools.profile/agents.list[].tools.profile(allowlist base)tools.byProvider/agents.list[].tools.byProvider(allow/deny specifico provider)tools.sandbox.tools.*(policy strumenti sandbox quando sandboxed)
Regole + suggerimenti
- I nomi strumento non devono collidere con nomi strumenti core; gli strumenti in conflitto vengono saltati.
- Gli id plugin usati nelle allowlist non devono collidere con nomi strumenti core.
- Preferisci
optional: trueper strumenti che attivano effetti collaterali o richiedono binari/credenziali extra.