Repository navigation
feat(agents): agent execute signs with the agent's delegated key; actions expire - #1184
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 3 Skipped Deployments
|
ed2fa3c to
fab77a0
Compare
| | `QUOTE_EXPIRED` | The action's quote expired before execution | | ||
| | `POLICY_DENIED` | The agent policy no longer allowed the action | | ||
| | `AGENT_INACTIVE` | The agent was paused or deleted before execution | | ||
| | `EXECUTION_FAILED` | Grid could not execute the approved action | |
There was a problem hiding this comment.
backend only uses this when the delegated key is missing at approve time. when the send itself errors, the action sits APPROVED while the reconciler retries, then fails as QUOTE_EXPIRED about 15 min later. EXECUTION_FAILED reads like the right reason for that case, maybe have the reconciler use it?
| description: >- | ||
| Forbidden. The Agents API is not enabled for the platform, the agent policy does | ||
| not permit this operation, a spending limit was exceeded, or an `EMBEDDED_WALLET` | ||
| source has no active delegated key for this agent. |
There was a problem hiding this comment.
this 403 only happens in AUTO. with approval required, execute succeeds, someone gets asked to approve, and then it fails with EXECUTION_FAILED. could execute check that the key exists up front in both modes, so nobody approves something that can't send?
|
🦣 Congratulations @k15z - your substantive review earned a Aurochs! (common)
View your Frost-dex: https://zeus.dev.dev.sparkinfra.net/#/dinodex/k15z?section=ice-age |
fab77a0 to
cf77a3a
Compare
cf77a3a to
ec6ca46
Compare
|
ec6ca46 to
bfacb8a
Compare
POST /agents/me/quotes takes an AgentQuoteRequest, whose destination is an ACCOUNT (another embedded wallet on the platform), and both quote operations return AgentQuote, a Quote that later agent destinations extend. Both answer 403 when the Agents API is not enabled for the platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TeBuC5ym3AR1ZJ6eocSFGT
…ions expire
POST /agents/me/quotes/{quoteId}/execute no longer takes Grid-Wallet-Signature:
for an EMBEDDED_WALLET source Grid signs with the agent's active delegated key.
AgentAction gains a required expiresAt (the quote's expiry) and a failureReason
(AgentActionFailureReason) for FAILED actions, and its quote is an AgentQuote.
The execute and action reads answer 403 when the Agents API is not enabled for
the platform.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TeBuC5ym3AR1ZJ6eocSFGT
bfacb8a to
5f621b6
Compare
[Medium impact] This PR appears safe to merge. SummaryUpdates agent quote execution to use the agent's active delegated key for an
|
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
Agent quote operations and `AgentAction.quote` return plain `Quote` again, and `AgentQuote` is removed. #1183 dropped `AgentQuote` because it added nothing to `Quote`, but #1184 and #1185 merged from branches made before that change and brought it back. This only reverts those three references and deletes the schema; there is no other change. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Agent execute signs with the agent's delegated key, and actions expire.
POST /agents/me/quotes/{quoteId}/executeno longer takesGrid-Wallet-Signature: for anEMBEDDED_WALLETsource Grid signs with the agent's active delegated key.AgentActiongains a requiredexpiresAt(the quote's expiry) and afailureReason(AgentActionFailureReason) forFAILEDactions, and itsquoteis anAgentQuote.