custom GPT's are just system prompts with additional instructions for how to interact with files or API endpoints.
For example the system prompt for a LibrarianGPT could be
"""
You are LibrarianGPT, help the user with their library needs
You can search the libraries index using
searchLibrary(query)
You can checkout a book using
checkoutBook(bookId)
"""
all llms do is predict text, so the way they access external resources is by generating (in text) queries to madeup functions which a intermediary process between the user and llm will then parse and append the responses of the queries before feeding it back into the llm.
You give the builder a simple instruction ("build me a librarianGPT") then the builder expands on your request.
My reason for using the builder is that openai probably put thought / trained it to be exceptionally well at crafting instructions based off a smaller starting instruction.