Add execution engine and task lifecycle services
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# Idempotency And Retry
|
||||
|
||||
## Idempotency Principles
|
||||
|
||||
### Task Creation
|
||||
|
||||
- внешний `create task` запрос должен поддерживать idempotency key;
|
||||
- повтор одного и того же запроса не должен создавать дублирующиеся task records.
|
||||
|
||||
### Confirmation Resolution
|
||||
|
||||
- approve/reject одной confirmation должны быть идемпотентны;
|
||||
- повтор того же решения должен возвращать текущее состояние без повторного side effect.
|
||||
|
||||
### Worker Results
|
||||
|
||||
- `command_id` должен быть уникальным ключом идемпотентности для результата worker command;
|
||||
- повторно полученный result envelope не должен переисполнять финализацию шага.
|
||||
|
||||
### MCP / Model Invocations
|
||||
|
||||
- invocation records должны хранить correlation id;
|
||||
- retry создает новую попытку, но с ссылкой на первичную cause chain.
|
||||
|
||||
## Retry Matrix
|
||||
|
||||
### Retryable
|
||||
|
||||
- временные network errors;
|
||||
- upstream timeout;
|
||||
- parser failure weak model;
|
||||
- transient MCP transport error;
|
||||
- временный disconnect worker при разрешенном resume policy.
|
||||
|
||||
### Non-Retryable
|
||||
|
||||
- policy denial;
|
||||
- unsupported capability;
|
||||
- invalid request schema;
|
||||
- explicit user rejection;
|
||||
- deterministic contract mismatch in adapter configuration.
|
||||
|
||||
## Execution Rule
|
||||
|
||||
Retry инициируется только orchestrator.
|
||||
Ни MCP adapter, ни worker, ни nested runner не решают самостоятельно “попробовать еще раз” вне зафиксированной policy/runtime semantics.
|
||||
|
||||
Reference in New Issue
Block a user