Enterprise6 мин чтения7 языков

Пусть ИИ-агент предлагает инструмент на коде, а администратор его одобряет

Когда агент снова и снова решает одну и ту же многошаговую задачу, он может предложить переиспользуемый инструмент на коде через code_propose_tool. Предложение ничего не запускает и ничего не выдаёт; администратор проверяет программу в разделе AI Skills и создаёт инструмент одним кликом: только для чтения и с правами вызывающего. Как это работает в AnythingMCP, шаг за шагом.

HCАвтор: команда HelpCodeОбновлено 6 мин чтения Открытый код на GitHub

Без банковской карты · 7 дней пробного периода · Есть вариант self-host

  • 7 дней бесплатно
    Без банковской карты
  • GDPR и готовность к SOC 2
    Данные в ЕС, журналы аудита
  • Открытый код на GitHub
    Open source · AGPL-3.0
  • Работает с ChatGPT, Claude, Gemini
    Любой MCP-совместимый клиент

Кратко

Когда агент снова и снова решает одну и ту же многошаговую задачу, он может предложить переиспользуемый инструмент на коде через code_propose_tool. Предложение ничего не запускает и ничего не выдаёт; администратор проверяет программу в разделе AI Skills и создаёт инструмент одним кликом: только для чтения и с правами вызывающего. Как это работает в AnythingMCP, шаг за шагом.

Коротко: Агент, который отвечает на вопрос «ежемесячная выручка по каналам», каждую неделю заново пишет одну и ту же программу. Ему не нужно переписывать её каждый раз, но и создавать инструменты самостоятельно он тоже не должен. В режиме кода AnythingMCP работает золотая середина: агент вызывает code_propose_tool, передавая название, описание, программу и причину, по которой её стоит сохранить. Это лишь записывает предложение: код не выполняется, инструмент не появляется. Администратор находит предложение в разделе AI Skills → Suggested, читает программу и нажимает Create tool. Новый инструмент работает только на чтение и выполняется с правами каждого вызывающего; любые дополнительные права выдаются отдельной, осознанной правкой. Доступно в self-hosted AnythingMCP начиная с v0.52.0, скоро появится в AnythingMCP Cloud.

Почему предложения, а не самостоятельно созданные инструменты

Агенты хорошо замечают, что задача механическая: те же три вызова, то же объединение, та же сумма. Если превратить это в сохранённый инструмент, следующий ответ станет быстрее, дешевле и стабильнее. Но инструмент — это ещё и постоянная возможность в твоём рабочем пространстве, а программу за ним написала модель, которая могла читать недоверенный контент. Поэтому агент может предлагать, а решает человек. Тот же принцип AnythingMCP применяет к навыкам и корпоративной памяти, которые предлагают ИИ-клиенты: агент составляет черновик, администратор одобряет.

Что понадобится

  • Self-hosted AnythingMCP v0.52.1 или новее с настроенным исполнителем кода (настройка в шаге 1 здесь).
  • Режим кода inline на MCP-сервере. Именно inline предоставляет code_execute и code_propose_tool; tools отдаёт только сохранённые инструменты на коде. Задай его в настройках сервера (Code mode → Saved code tools + inline code), доступно с v0.52.1; см. шаг 2 руководства по инструменту на коде.
  • Право на встроенный код у роли пользователя. У администраторов рабочего пространства оно есть.
  • Как было объявлено вместе с v0.52, встроенный код и предложения входят в тарифы Team и Enterprise.

Шаг 1 — Агент решает задачу встроенным кодом

Пользователь задаёт вопрос, для ответа на который нужно несколько вызовов, например: «выручка за октябрь, магазин и B2B-счета». Когда встроенный код включён, агент пишет программу и запускает её через code_execute: только чтение, с правами самого пользователя, поверх коннекторов, доступных ему на этом сервере. Как выглядит такая программа, смотри в рецепте про выручку.

Шаг 2 — Агент предлагает сохранить программу

Когда агент находит закономерность, которую стоит сохранить (сам или потому, что пользователь говорит «сохрани это как инструмент»), он вызывает code_propose_tool со следующими полями:

ПолеЧто заполняет агент
nameКороткое имя инструмента, например monthly_revenue_by_channel
descriptionЧто инструмент делает и что возвращает, для администратора и будущих вызывающих
codeПрограмма, того же вида, что и тело для code_execute
rationaleПочему её стоит сохранить, например: «спрашивали четыре раза в этом месяце; заменяет около 20 вызовов инструментов»
inputSchemaНеобязательно: собственные параметры инструмента, например month в формате YYYY-MM

Ответ агенту простой: предложение записано на проверку и не будет выполняться или становиться инструментом, пока администратор его не одобрит. То же можно сообщить и пользователю.

Шаг 3 — Администратор проверяет предложение

Открой AI Skills в боковой панели (раздел Intelligence) и переключись на Suggested. Предложение отображается как карточка с пометкой Code tool proposal и содержит:

  • область действия и пометку, что предложение внёс агент, а инструмент только для чтения и выполняется с правами вызывающего;
  • Why: обоснование агента;
  • Does: описание;
  • Program с длиной в символах, чтобы прочитать её целиком;
  • примечание о том, на каком коннекторе будет создан инструмент, и о том, что права на запись или права автора можно добавить только позже на странице инструментов коннектора.
anythingmcp.internal/knowledge-graph
Страница AI Skills, вкладка All с одним предложенным элементом revenue_by_month с пометкой Code tool proposal: коннектор Accounting, предложено агентом, только чтение, выполняется с правами вызывающего; тексты Why и Does, развёрнутая Program из 419 символов, примечание о том, что создание добавит инструмент на коде только для чтения на Accounting, и кнопки Create tool и Dismiss
Предложение инструмента на коде в демо-пространстве: причина от агента, что делает инструмент и полная программа, с кнопками Create tool и Dismiss.

Читай программу так же, как проверял бы небольшой pull request:

  1. Какие инструменты она вызывает? Каждый amcp.run('…'). Те ли это инструменты, которые обещает описание, и все ли они на чтение?
  2. Что она возвращает? Только то, что нужно для вопроса, или целые записи с персональными данными?
  3. Разумно ли устроены циклы? Постраничная выборка заканчивается, пакеты параллельных вызовов, нет вызова на каждую строку большой таблицы без необходимости. Запуск останавливается через 10 секунд и 500 вызовов инструментов.
  4. Достаточно ли понятны имя и описание, чтобы ИИ вызвал инструмент в нужный момент и правильно объяснил результат (брутто или нетто, какой период, какие системы)?

Шаг 4 — Создай инструмент или отклони предложение

Create tool выполняет обычные проверки при создании инструмента: коннекторы должны принадлежать одному рабочему пространству, а также действует лимит тарифа на число сохранённых инструментов на коде. Инструмент создаётся на коннекторе, указанном в карточке:

  • только чтение (он может вызывать лишь инструменты, которые не изменяют данные);
  • выполнение от имени вызывающего (каждый внутренний вызов проверяется по собственной роли вызывающего);
  • с коннекторами автора предложения на этом сервере. После создания открой инструмент и сузь Uses до коннекторов и инструментов, которые он действительно вызывает.

Dismiss переносит предложение на вкладку Dismissed. Если агент продолжает предлагать то, что тебе не нужно, укажи это в инструкциях сервера.

Шаг 5 — Только при необходимости: дополнительные права, осознанно

Созданный инструмент можно редактировать, как любой инструмент на коде, на странице MCP Tools коннектора. Две настройки через предложение недоступны вообще:

  • Allow write tools: программа сможет вызывать инструменты, изменяющие данные. Требуется Enterprise.
  • Run as definer: программа выполняется с настройками автора вместо прав вызывающего. Только для администраторов.

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

Почему это безопасно

  • Предложение инертно. code_propose_tool не выполняет код и ничего не создаёт.
  • Нет повышения привилегий. Предложенный инструмент может ссылаться только на собственные коннекторы автора предложения и стартует в режиме только чтения, от имени вызывающего.
  • Решает человек. Только администратор может превратить предложение в инструмент, и для этого проходят те же проверки, что и для инструмента, написанного вручную.
  • Запуски остаются изолированными и аудируются. После создания каждый запуск проходит через изолированный исполнитель кода и записывается вместе с каждым внутренним вызовом инструмента. См. Безопасное выполнение кода для ИИ-агентов.

FAQ

Может ли обычный пользователь предлагать инструменты? Любой пользователь, у роли которого есть право на встроенный код, на сервере с режимом кода inline. Без этого права пользователь не видит ни code_execute, ни code_propose_tool.

Видит ли агент, было ли его предложение принято? Агент увидит новый инструмент в списке инструментов сервера после его создания, как и любой другой, и сможет вызывать его в дальнейшем.

Можно ли отредактировать программу перед созданием инструмента? Создай инструмент, а затем отредактируй его на странице MCP Tools коннектора, как любой инструмент на коде: программу, описание, параметры, Uses.

Это руководство помогло?

MCP для вашего стека за 60 секунд.

Запустите AnythingMCP в управляемом облаке или разместите на своей инфраструктуре. 7 дней бесплатно, без банковской карты.

Похожие руководства

Корпоративные

Права на папки по ролям для AI-поиска по файлам: кто какие папки видит в Claude и ChatGPT

Дай отделам продаж, закупок и сервиса один AI-поиск по корпоративному файловому ресурсу и позволь каждой роли видеть только её папки. Как работают права на папки в AnythingMCP Enterprise (allow, deny, deny побеждает), как спланировать правила и какая есть альтернатива без Enterprise.

EN
Корпоративные

Чат с документами, RAG или файловый поиск: что лучше подходит для корпоративного файлового сервера?

Загрузка файлов в Claude Projects или ChatGPT, построение RAG на векторной базе данных или предоставление ИИ полнотекстового индекса файлового сервера в виде MCP-инструментов: чем эти три подхода отличаются по точности поиска кодов и чисел, структуре папок, актуальности данных, правам доступа и трудозатратам, и когда каждый из них оправдан.

Корпоративные

Поиск артикула в PDF- и Excel-прайс-листах с помощью ИИ (побеждает самый свежий прайс)

Спроси Claude или ChatGPT про артикул и получи строку с ценой, имя файла поставщика и дату прайс-листа — из сотен PDF- и Excel-прайсов на твоём файловом сервере. Как точный поиск, строки Excel с названиями столбцов и даты удерживают ИИ на актуальном прайс-листе.

Корпоративные

Поиск технических чертежей по номеру детали с помощью ИИ: поиск по архиву PDF-чертежей

Пусть Claude или ChatGPT находит технический чертёж по номеру детали, номеру чертежа или материалу в архиве из тысяч PDF-чертежей, читает основную надпись и называет актуальную ревизию. Что работает с PDF-чертежами, что находится только по имени (DWG, DXF, STEP) и как всё настроить с помощью AnythingMCP File Search.

Корпоративные

Поиск по файловому серверу компании с помощью ИИ: PDF, Excel и файлы Outlook

Сделай сетевую папку, NAS или файловый сервер доступными для поиска из Claude, ChatGPT, Microsoft Copilot и Gemini: полнотекстовый поиск по PDF, таблицам Excel, файлам Word и Outlook .msg, синхронизация и права доступа по ролям. Self-hosted или в AnythingMCP Cloud.

Корпоративные

Поиск по архиву электронной почты с помощью ИИ: файлы Outlook .msg и .eml и их вложения

Сохранённые письма на файловом сервере или NAS, доступные для поиска из Claude и ChatGPT: отправитель, дата, тема, текст письма и содержимое вложений PDF, Excel и Word. Какие форматы читает AnythingMCP File Search (.msg, .eml), какие нет (.pst, .mbox) и как всё настроить.