The way we solve it now is a "tree of llms.txt". An llms.txt normally references what info is available on a website or docs — we use the same idea internally to organize the info the agent needs. The agent starts from a folder and navigates down:
. ├── llms.txt # references each folder at this level ├── stripe/ # info.md: how our stripe account is structured ├── firestore/ # info.md: how the schema looks └── support/ ├── info.md # how to resolve support tasks ├── runbooks/ # one file per task, with its own llms.txt │ ├── cancel-subscription.md │ ├── export-gym-data.md │ └── fix-membership-mismatch.md └── logs/ # one file per day, every task the agent resolved Copy With this we can steer the agent much better and create a new runbook every time a new support task comes.
You can add in every integration what the agent should and should not touch. The gcontext prompts make sure any guardrail is meticulously followed.