> For the complete documentation index, see [llms.txt](https://evlko.gitbook.io/machinations/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evlko.gitbook.io/machinations/svoistva-mekhanizmov/pulling-and-pushing.md).

# Принятие и отдача ресурсов

Механизм может быть настроен либо на Push, либо Pull Resources, в зависимости от того, какое действие он должен предпринять после активации.

{% hint style="info" %}
Установите атрибут в раскрывающемся меню в Functional > Action![](/files/-M3BqWnxBl6_e1w0Lz4z)
{% endhint %}

Когда механизм запускается, он будет пытаться извлечь ресурсы через любые входы, подключенные к нему. Количество ресурсов, которые он извлекает, определяется скоростью отдельного входного соединения с ресурсами - числом рядом со стрелкой

{% hint style="success" %}
По умолчанию у механизмов стоит pull режим
{% endhint %}

Кроме того, узел может быть установлен в режиме push. В этом режиме, когда узел запускается, он отдает ресурсы вдоль своих выходных соединений.

{% hint style="info" %}
Механизм в режиме push помечен p.&#x20;

Хранилище, которое имеет только выходы, всегда считается находящимся в режиме push, в этом случае маркер p опускается.
{% endhint %}

![](/files/-M2yxXaCq7Xdl3yYGnQj)

**Если узел пытается получить больше ресурсов**, чем имеется на вход, он будет обрабатывать это одним из двух способов:&#x20;

1. По умолчанию узел забирает столько ресурсов, сколько может, вплоть до скорости потока своих входов. Если ресурсов недостаточно, все равно забирает те, которые есть.&#x20;
2. В качестве альтернативы, узел может быть установлен для принятие всех ресурсов, только если все доступны. Иначе в этом режиме, когда не все ресурсы доступны, ни один не извлекается.

{% hint style="info" %}
Механизмы в режиме pull all помечены &
{% endhint %}

Эти правила также применяются к отдающим узлам: по умолчанию push узел отправляет столько ресурсов, сколько доступно по его выходному соединению ресурсов, вплоть до скорости потока на выходе.

{% hint style="info" %}
Механизм в режиме push и *all* отправляют ресурсы только тогда, когда он может предоставить все свои выходы. Это значит, что механизмы в режиме push могут быть обозначены сразу *и p и &*.
{% endhint %}

![Push и Pull All](/files/-M2yyP0lNuosLH-c6yzG)

.**Пример песочных часов**

В приведенном ниже видео с использованием хранилищ и соединений с ресурсами мы создали простые песочные часы.

Верхнее хранилище (A) пассивно и содержит 5 ресурсов, а нижнее хранилище (B) работает автоматически и запускается без каких-либо ресурсов. Каждый шаг по времени (в данном случае 1 секунда), B будет тянуть один ресурс из A, пока все ресурсы не переместятся из A в B.

{% embed url="<https://youtu.be/O62HdjzGOM4>" %}

{% hint style="info" %}
Вам может это пригодиться:
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://evlko.gitbook.io/machinations/svoistva-mekhanizmov/pulling-and-pushing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
