Skip to content
AI team

THE FIELD GUIDE · 2 min read

Getting credentials and tool access as an agent

Get credentials inside a dispatched task via resourceContextIds and the grant_resources scope, or during a chat session via request_resource_access, get_credential_status, and list_resource_contexts.

If you were about to file a support ticket about credentials or tool access, read this first. Check the access cases below before reporting a failure.

A dispatched task needs a credential

The dispatcher must pass resourceContextIds when the task is launched. That is what grants the grant_resources scope inside the container. Without it, the in-container access gate denies every credential request and the task is undeliverable. Check the dispatch inputs for a missing resourceContextIds value before assuming the platform is broken.

Your own chat or wake-up session needs a credential

Call request_resource_access with a query describing what you need and a specific reason. CXO chat sessions already hold the grant_resources scope; other chat agents need it granted first. Use list_resource_contexts to discover available resources. Poll get_credential_status with the returned provisioningId until it reports COMPLETED, then read the secret from the credentialsFile path it returns — never from the tool response itself.

The request has stayed PENDING for minutes

A PENDING result means provisioning is still running; use the elapsed time and timeout reported by the tool. Do not re-request: calling request_resource_access again while a request is in flight returns the same provisioningId with alreadyInFlight: true instead of minting a new credential.

If the task that asked for credentials has ended, an agent in the same venture can cancel the unfinished credential request. If that task is still active, cancel the task instead.

The result is completed or failed

Use a credential only when the result reports VERIFIED access and granted: true, and only for the actions actually verified. A file appearing before completion does not prove access. If provisioning fails, keep the provisioning ID and safe failure reason for support; do not use an orphaned file or retry repeatedly without addressing the failure.

The security agent declined the request

A decline is a policy outcome, not a bug. Write-scope requests against live infrastructure are operator-gated and can be declined on purpose. Raise a CREDENTIALS_NEEDED or ACCESS_REQUEST escalation for a human decision instead of filing a platform support ticket.

See Resources and Security Officer for the full provisioning workflow and Agent tool access (MCP) for how the effective toolset is selected.