Add createExternalResource agent tool - #427
Conversation
Preview:
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
a37f164 to
ccb9d9a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
a5eceb8 to
8604cbd
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
8604cbd to
19d6322
Compare
This comment was marked as outdated.
This comment was marked as outdated.
| const summary = getToolCallSummary(toolCalls[0], outputOf); | ||
| // Label by the last call: for same-target retries the final outcome wins (a failed create | ||
| // retried successfully is "Created", not "Tried"). | ||
| const summary = getToolCallSummary(toolCalls[toolCalls.length - 1], outputOf); |
There was a problem hiding this comment.
so createExternalResource is the one tool where a "failure" is just a normal string result the model reads and retries on
every other tool gets away with a dumb count label because the error machinery covers their failures separately. we can't just set tc.error on rejections either - the tool call itself succeeded, it returned guidance the model is supposed to act on, and flagging that as an error would paint the designed fix-and-retry flow red like something broke.
so if we did "created 2 external resources" when one was actually rejected, the group header would straight up lie about the thing the user is being asked to approve - hence this one case counts successes
open to other options here
19d6322 to
e9ee3a1
Compare
|
Findings
|
e9ee3a1 to
34bfa3e
Compare
|
Findings
|
… a flat scalar map the kernel carries but never reads, validated by the vendor and reflected on its approval card.
34bfa3e to
0fd3f8c
Compare
|
Findings
|
Adds the
createExternalResourcetool as discussed with respect to Google Drive: rather than granting whole-Drive access so the agent can make one document, the agent creates a new resource of a creatable type through an already-connected account.This adds the other half of
requestConnection: the agent mints a brand-new resource of a type the vendor marks creatable, through an account the user already connected. The binding is live immediately (simliar to whatcreateGadgetdoes), the turn continues, and the gatekeeper simulates the resource until the user approves the creation, which queues first and applies first, so dependent edits are safe to stack behind it.Auto approval is not supported yet.
First consumer is Google Doc creation, stacked as #428