Перейти к содержимому

Переменные окружения

Переменные из Sandbox.create доступны командам во всей песочнице. Переменные из commands.run действуют только для этой команды и переопределяют общее значение с тем же именем.

mjs
import { Sandbox } from "@abox-dev/sdk";

const sandbox = await Sandbox.create({
  envs: { APP_ENV: "development" },
});

try {
  const result = await sandbox.commands.run(
    'printf \'%s %s %s\' "$AGENTBOX_SANDBOX_ID" "$APP_ENV" "$REQUEST_ID"',
    { envs: { REQUEST_ID: "request-42" } },
  );
  console.log(result.stdout);
} finally {
  await sandbox.kill();
}

AgentBox также передаёт процессам, запущенным через SDK, системные переменные:

  • AGENTBOX_SANDBOX=true обозначает микровиртуальную машину AgentBox;
  • AGENTBOX_SANDBOX_ID содержит идентификатор песочницы;
  • AGENTBOX_TEMPLATE_ID содержит идентификатор шаблона.

Для инструментов, которые не наследуют окружение команды SDK, те же значения доступны в файлах каталога /run/agentbox.

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