TengineAI executes tool calls with built-in reliability behavior. This page explains what happens under the hood so you know what to expect — and what your API receives.
Every tool call gets a unique Request ID (UUID) that TengineAI injects as X-Tengine-Request-Id in the outbound request.
Use it to:
The Request ID is stable for the lifetime of a single execution attempt. If a retry is served from cache, the same Request ID is reused.
Agents retry. APIs fail. TengineAI handles retries safely so they don't cause duplicate side effects.
When the model or SDK retries a tool call (e.g. after a timeout or transient error), TengineAI:
Your API receives at most one real execution per logical request. Use X-Tengine-Request-Id on your side to deduplicate if you see the same ID twice (e.g. from a client retry before TengineAI responded).
Identity flows automatically to your API.
| Header | When Present | Description |
|---|---|---|
X-Tengine-Project-Id | Always | Your TengineAI project ID |
X-Tengine-Integration-Id | Always | The integration ID |
X-Tengine-Request-Id | Always | UUID per request |
X-Tengine-Timestamp | Always | Unix seconds |
When a member session is active:
| Header | When Present | Description |
|---|---|---|
X-Tengine-Member-Id | When inject_member_identity.id = true | Member's external ID |
X-Tengine-Member-Email | When inject_member_identity.email = true | Member's email |
X-Tengine-Member-Roles | When inject_member_identity.roles = true | Member's roles |
Your API receives the right identity (project, member) without extra configuration. See Identity Headers in the Custom Tools reference for details.
When you revoke an API key (by deleting the integration):
Revocation applies to subsequent requests. In-flight requests are allowed to complete. There is no grace period — revoked keys are unusable for any new request as soon as the deletion completes.
Every tool invocation is logged. You can: