Dear OpenAI Team
Our recent plugin upgrade resulted in a substantial increase in customer support calls due to a three-day disappearance of our plugin from the store. To alleviate such disruptions in the future, I propose an improvement to the system to allow seamless upgrades of plugin versions.
My suggestion is for OpenAI to cache the “ai-plugin.json” file for each plugin, which points to the approved OpenAPI schema. It’s even better to cache the schema as well due to security reasons. When an upgrade application is submitted, the previous version should remain operational while the new version is under review. Once the upgrade is approved, OpenAI can update its cache of the “ai-plugin.json” file, which should point to the new version of the schema.
Plugin providers would ensure both versions functional during the review process. Meanwhile, OpenAI’s responsibility would be to maintain the approved “ai-plugin.json” file, ensuring the plugin operates on the correct interface.
This proposed method would minimize disruptions to users and offer a seamless, app-store-like upgrade experience.
We look forward to your thoughts and input on this proposal.
Interesting, on the face of it that seems like quite a good idea. Can you see any downsides?
This is indeed a good idea,
I think it has been suggested before, but I’m currently unable to find the post.
TL;DR: To prevent customer disruption during plugin upgrades like the recent incident, the proposal is for OpenAI to cache each plugin’s “ai-plugin.json” file and its OpenAPI schema. During reviews, the existing version should remain functional, with the new version replacing it post-approval. This offers users a seamless upgrade experience.
I’d hope they are working on something like this, it is an obvious problem.
We definitely need this. I need to change url for my app but I’m afraid as I don’t want my customers to lose access for couple of days.
Zapier seemingly has a dynamic OpenAPI spec file. They look to be injecting the user’s enabled actions into that file. When the file is fetched, ChatGPT sends the current user id in a header. If you examine their plugin’s endpoints in the chat window, they have unique ids.
Point being, a dynamic OpenAPI spec file would not facilitate being cached in the manner you propose.
In this case, OpenAI can still cache the “ai-plugin.json” file and the URL of the OpenAPI schema file, while allowing the schema file content to change dynamically. This approach would cache the instructions to the AI model and enable the old version of the plugin to continue functioning while the new version is being reviewed. The new version of “ai-plugin.json” would be hosted under the same URL ([domain]/.well-known/ai-plugin.json) but would have different instructions for the AI model and point to a new V2 schema file URL.
However, while this approach may work, I do have a question regarding the reason why OpenAI would support a dynamic OpenAPI schema. Isn’t it a security concern if the schema’s behavior can change after it has been approved? What is the purpose of review and approval if the plugin’s behavior can change post-approval?
Agreed with you. Seamless upgrades are a fundamental requirement for plugins intended for real production use. In today’s technology world, production systems need to be highly available, and uninterrupted software service is expected.