跳转至

Runtime reference companion: configs

Статус: companion-материал к русской издательской рукописи.

Эта страница хранит механические формы, которые не должны перегружать печатную главу про песочницу выполнения, MCP boundary и runtime controls. В книге остается аргумент: зачем нужна граница выполнения, кто ей владеет и какие доказательства она должна оставить. Здесь остаются точные поля для ревью и повторяемой проверки.

Где смотреть исходники

  • Пакет: agent_runtime_ref/
  • Конфиги: agent_runtime_ref/configs/
  • Основной runtime-control файл: agent_runtime_ref/configs/runtime-controls.yaml
  • Тесты поверхности: tests/test_agent_runtime_ref.py, tests/test_docs_surface.py
  • Печатная привязка: глава 11, глава 21 и глава 23 русской рукописи

Execution boundary review

Минимальная карточка границы выполнения нужна до подключения write-capability. Она фиксирует не только имя capability, но и класс изоляции, владельцев, MCP boundary, риск и ожидаемый side effect.

execution_boundary_review:
  capability: create_ticket
  owner: support-ops
  runtime_owner: platform-runtime
  mcp_server_id: mcp.support.ticketing.v3
  boundary_class:
    logical_policy: required
    process_isolation: required
    runtime_sandbox: required_for_write_path
    network_boundary: internal_or_brokered
    identity_boundary: user_delegated_or_platform_owned
  risk_tier: high
  side_effect: external_ticket_write

Проверка на ревью:

  • capability не описана как "обычная функция", если она пишет во внешнюю систему;
  • runtime owner и владелец интеграции названы явно;
  • risk tier связан с политикой подтверждения и sandbox profile;
  • side effect можно найти в trace, approval и recovery packet.

Sandbox profile

Профиль песочницы должен быть исполняемым контрактом, а не общей фразой "запускается безопасно".

sandbox_profile:
  manifest_version: 1
  workspace:
    entries:
      - path: repo
        source: local_dir
        read_only: false
      - path: task.md
        source: inline_file
        read_only: true
  capabilities:
    filesystem: true
    shell: restricted
    memory: read_write
    skills: read_only
  permissions:
    network: denied
    secrets: none
    run_as: sandbox_user
  state:
    resume: allowed
    snapshot: required_on_completion
    persist_session_state: true

Для разных capabilities профиль должен отличаться. search_docs, create_ticket и run_shell не должны получать один широкий профиль "на всякий случай".

Workspace review

Рабочая область проверяется отдельно от флага filesystem: true.

sandbox_context:
  sandbox_profile_contract: sandbox-profile-v1
  workspace_entries_reviewed: true
  permissions_profile: restricted-shell-network-denied
  network_secrets_posture: network:denied,secrets:none
  snapshot_policy: required_on_completion

На ревью нужно пройти каждую запись workspace:

  • откуда она берется: локальная директория, архив, inline file, artifact или snapshot;
  • доступна ли она на чтение или запись;
  • содержит ли она tenant data, secrets, source code, logs или результаты прошлых запусков;
  • должна ли она попасть в snapshot;
  • можно ли использовать ее при resume без повторного ревью.

Network, secrets and identity

Сетевой режим и секреты не должны оставаться на усмотрение адаптера.

network_policy:
  denied: "нет исходящего сетевого доступа"
  internal_only: "доступ только к внутренним адресам платформы"
  allowlisted_external: "только заранее утвержденные внешние endpoints"
  brokered_via_gateway: "весь egress идет через контролируемый шлюз"

Стартовая позиция для рискованного выполнения: network: denied, secrets: none. Исключение должно быть записано как часть capability contract и runtime-control bundle.

MCP boundary

MCP-сервер публикует tools и resources, но это не делает его доверенной зоной.

mcp_boundary:
  server_id: mcp.support.ticketing.v3
  owner: platform-integrations
  registry_state: approved
  tool_contract_version: capability-contract-v5
  tool_definition_hash: sha256:...
  auth_mode: delegated_oauth
  token_scope:
    - ticket.read
    - ticket.write_limited
  token_ttl: 15m
  user_delegation_required: true
  server_isolation_profile: remote_ephemeral_sandbox
  schema_change_requires_review: true

Повторное ревью требуется при изменении:

  • tool description или tool schema;
  • token scope;
  • owner;
  • isolation profile;
  • auth mode;
  • registry state.

Tool content controls

Tool description и tool result нужно считать недоверенным содержимым.

tool_content_controls:
  tool_description_source: approved_registry
  description_hash_verified: true
  result_treated_as_untrusted_content: true
  return_value_filtering: strip_instructions_and_classify_data
  prompt_boundary_marker_required: true
  dlp_check_required_for_external_results: true

Практическое правило: результат инструмента - это свидетельство, а не инструкция. Он не должен менять system prompt, policy, список разрешенных tools или требования к approval.

Execution flow

Минимальный поток для write-capability:

execution_flow:
  - model_requests_capability
  - validate_arguments
  - resolve_capability_contract
  - resolve_sandbox_profile
  - review_mcp_boundary
  - tool_policy_decision
  - approval_requested
  - approval_resolved
  - execute_in_sandbox
  - emit_trace_events
  - verify_result

Этот поток должен быть виден в trace и проверяться eval/regression gate для рискованных capability.