Does anyone have experience or advice on reliably triggering the model to display a widget? I’m trying establish a golden prompt set according to the directions on the “Optimize Metadata” page in the Apps SDK guide.
I can make my widget appear by typing its name into the text box, or by clicking the ‘+’ button and adding it. The correct tool is called, with the correct arguments, and the widget renders correctly.
But I can rarely make it show just by describing what I want to do, e.g. “I want to book a trip”. My resource and tool metadata are explicit that I support those intents (e.g. “use this tool to book a trip”), but nothing happens.
When I test my app with a tool like MCPJam’s “Test Cases”, it works. Just not with ChatGPT directly.
Just wonder if anyone else has this problem, or if I’m doing something wrong somewhere?
**I think that’s expected behavior, especially in developer mode.
I think “Developer mode” doesn’t take into account some of the in-chat discoverability that they discuss in the docs around the model being able to recommend or use an app even when it’s not added.
A good way to check is by not adding it and saying something like “Use the {name of your app} to do {action your app does}.”
**
It should search for it and tell you it doesn’t have access. Then you can add your app to the chat and run the same thing, it should work.
Thanks, I really appreciate your help! I’ll give that a try.
It seems like there’s 3 levels:
- Connect to the app in developer mode, then add it to the chat with the + button or by name, then type. This should trigger a relevant tool call.
- Connect to the app in developer mode, then just type and the model will call the tool if it’s relevant.
- Just type, and the model will suggest connecting to your app if the intent is relevant.
Level 1 works fine for me, and I don’t think level 3 applies in developer mode (or has even been rolled out yet).
Level 2 doesn’t work for me, but the submission process seems to imply that it should- there is a page asking for 5 positive prompts (that should trigger your app), and 3 negative ones (that shouldn’t). What are you supposed to put here, and how are you supposed to test it?