Skip to content

feat(api): the instructions and the playbook tools claim a request for a playbook - #288

Merged
rami-hatoum merged 1 commit into
mainfrom
feat/a-request-for-a-playbook-is-made-here
Oct 22, 2026
Merged

rami-hatoum merged 1 commit into
mainfrom
feat/a-request-for-a-playbook-is-made-here

Conversation

@rami-hatoum

Copy link
Copy Markdown
Contributor

What this changes

An agent with many tools at hand, asked to create a playbook, wrote a document with its documents tool and never called this server. The server's instructions opened by saying what a playbook is, and the playbook tools said "use it when the person wants a new playbook", but nothing said that such a request, in whatever words, is a request for this server.

The instructions open with the claim, in words that fit any line of business. "Whatever the person wants done that should keep working after this conversation, however they put it and in any line of business, is a playbook on this server, not a document, a plan, a note or a one-off answer. Auto Runtime makes and runs playbooks; Studio manages them; your agent is a separate client." Then what a playbook holds, as before. The OpenAPI document's description opens the same way.

Three sentences leave the instructions, so that a connection's instructions stay within the 2,000 characters a client shows: that a run of a workflow answers started and get_run shows how it ended, which run_definition says; the build clause of the prediction sentence, which the prediction guide says; and how a reasoning function names its model and tools, which list_models, search and the reasoning guide say. With every tool, the instructions take 1,987 characters on /mcp and on the org endpoint and 1,575 on a playbook's.

The playbook tools claim it too. create_playbook starts with "Start here when the person wants something done in their business that should keep working after this conversation, however they put it, and none of their playbooks covers it." list_playbooks starts with "Use it when the person speaks of their playbooks, or wants something done that one of them may cover." Each drops the clause that repeated it. The org endpoint's listing grows to 13,155 bytes, so its bound moves to 13,200, the least hundred that holds it, as the api README records.

Tests

  • The instructions of each endpoint open with the claim, their lengths are pinned, and the bound's check holds at 2,000 and 2,001 characters.
  • The two tools' descriptions and the listings' sizes, as the MCP listing and the OpenAPI document serve them.

Checklist

  • The PR title is a conventional commit with a workspace scope, such as feat(reasoning): .... It becomes the squash commit and the changelog entry.
  • pnpm check passes locally, with every file at 100% coverage.
  • I've signed the Contributor License Agreement (the CLA bot asks on your first PR).

…r a playbook

An agent asked for a playbook wrote a document and never called this server: the instructions
opened on what a playbook is, and nothing said that a request for one is made here.

The instructions now open, on every endpoint, with the claim: "Whatever the person wants done
that should keep working after this conversation, however they put it and in any line of
business, is a playbook on this server, not a document, a plan, a note or a one-off answer."
Then "Auto Runtime makes and runs playbooks; Studio manages them; your agent is a separate
client." and what a playbook holds, as before. `whatAPlaybookIs` is now `whatThisServerIsFor`,
which the OpenAPI document's description opens with too.

To keep a connection's instructions within their 2,000 characters, three sentences that a
tool's description or a format's guide already says leave them: that a run of a workflow
answers started and get_run shows how it ended (run_definition's description), the build clause
of the prediction sentence (the prediction-function guide), and how a reasoning function names
its model and tools (list_models, search and the reasoning-function guide). With every tool they
take 1,987 characters on /mcp, 1,987 on the org endpoint and 1,575 on the playbook endpoint.

create_playbook opens with "Start here when the person wants something done in their business
that should keep working after this conversation, however they put it, and none of their
playbooks covers it." and drops the clause that repeated it. list_playbooks opens with "Use it
when the person speaks of their playbooks, or wants something done that one of them may cover."
and drops the clause that repeated it. The org endpoint's listing takes 13,155 bytes on the
wire, so its bound moves to 13,200, the least hundred that holds it, as the API README records.

No sentence of the instructions names a definition type's noun any more, so the test of their
bound holds requireTextWithin at 2,000 and 2,001 characters instead of growing a noun.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@rami-hatoum
rami-hatoum merged commit e4e6f86 into main Oct 22, 2026
20 checks passed
@rami-hatoum
rami-hatoum deleted the feat/a-request-for-a-playbook-is-made-here branch October 22, 2026 11:02
rami-hatoum pushed a commit that referenced this pull request Oct 22, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.17.0](v0.16.0...v0.17.0)
(2026-10-22)


### Features

* **api:** the instructions and the playbook tools claim a request for a
playbook ([#288](#288))
([e4e6f86](e4e6f86))
* **connections:** a client names the scopes it may ask, and a way takes
the one covering its scope
([#289](#289))
([e05a127](e05a127))
* **connections:** a connect link names what its page cannot know, and
the agent shows it as a link
([#290](#290))
([8d1de91](8d1de91))
* **definitions:** the overview is its author's markdown, and a read
names what uses a definition
([#287](#287))
([7c1c637](7c1c637))
* **ledger:** a layout number, written at creation and checked at open,
replaces the shape checks
([#281](#281))
([a48be0e](a48be0e))


### Bug Fixes

* **operations:** a version 7 uuid made in the same millisecond as the
last sorts after it
([#285](#285))
([846a36d](846a36d))
* **prediction:** a model loads with the telemetry of onnxruntime off,
so its process leaves nothing
([#283](#283))
([ea1a6d8](ea1a6d8))
* **server:** the start's waits run on Effect's clock and the restart
mark names its port
([#282](#282))
([db6c858](db6c858))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: beonautobot[bot] <298957281+beonautobot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant