Метаданные плагина в треде
Метаданные плагина в треде дают плагину JSON-неймспейс, который перемещается вместе с тредом и не отправляется модели автоматически. Здесь показано, как его читать и писать, а также описаны вопросы доверия, тайминги и лимиты.
const current = await bb.sdk.threads.getPluginMetadata({ threadId });const updated = await bb.sdk.threads.updatePluginMetadata({ threadId, set: { status: "reviewing", result: null }, // null is stored AS DATA remove: ["requestedBy"], // absent keys are ignored});
// a safe read inside configure — the value is quoted so it reads as data,// not as instructionsbb.agents.configure((context) => { const { issueKey } = context.pluginMetadata; // a deep-frozen snapshot; writing throws const hasIssue = typeof issueKey === "string" && /^[A-Z]+-\d+$/u.test(issueKey); return { tools: hasIssue ? ["review-result"] : [], skills: [], ...(hasIssue ? { instructions: `Linked issue key (data): ${JSON.stringify(issueKey)}` } : {}) };});Не граница доверия. «Any API client, another plugin or the thread’s own agent can write any namespace». Относитесь к этим значениям как к ненадёжному вводу: разрешайте через них только те инструменты, которые безопасны, даже если агент сам задаст значение. Не храните здесь секреты и не используйте этот механизм для авторизации.
Тайминги. Начальные значения при создании треда и его явном форке видны уже на первом проходе конфигурации. Обновления появляются на следующих проходах, при этом они не перезапускают и не меняют текущий ход.
Лимиты. До 256 КиБ UTF-8 JSON на неймспейс. Если начальное значение или set превышают лимит, они отклоняются ещё до выполнения запроса (HTTP 400 для сырых клиентов). Патч, из-за которого общий объём неймспейса превысит лимит, завершается ошибкой HTTP 413 и оставляет неймспейс без изменений. Форки никогда не наследуют метаданные исходного треда.
Потребители среди плагинов из поставки bb: нет.