Skip to main content

GatewayDrainPolicyProtocol

Defined in the protocols module.
AI Agent Protocol for graceful-drain decisions on gateway shutdown. Pure, import-free decision contract consumed by the wrapper’s BotOS shutdown path. On SIGTERM/SIGINT (rolling deploy, auto-update, host restart) the wrapper stops accepting new inbound and then repeatedly asks this policy whether to keep waiting for in-flight agent turns to finish, up to a bounded deadline. The wrapper supplies live facts (running turns, seconds elapsed); the policy decides whether the drain should continue. Concrete teardown (cancel tasks, stop transports, flush outbox) lives in the wrapper; this contract keeps the wait condition testable in isolation. A config-driven default (:class:DrainTimeoutPolicy) is provided for the common “wait for in-flight turns up to N seconds” case.

Methods

should_keep_draining()

Return a :class:DrainDecision for the supplied facts.

Source

View on GitHub

praisonaiagents/gateway/protocols.py at line 3066

Gateway Feature