AlgoArena Team 4 min readQuestions That Hand Out an API Key
A question can now hand each participant a working API key, kept out of the question text and set up on a machine that can reach the internet.
A hackathon or club event often asks people to build something on a real AI service. Every participant then needs an API key that works from the first minute. Before, the organizer had to set up more than one thing by hand, and missing any of them broke the question in a way the participant could not diagnose.
What changed
Give the key to Assessment Copilot while you build the question. It puts the key in each participant's environment and in a .env file in their workspace. The question text tells participants where the key is without showing it. You can add a key to a question that already exists, and asking the copilot to reword a question later keeps the key it had.
Some providers issue keys that look alike, and filing a key under the wrong provider gives the participant an authorization error they cannot fix. When the copilot cannot tell which provider a key belongs to, it asks you in one short message instead of guessing. A key that names its own provider needs no question.
A question that carries a key now gets internet access without anyone turning it on. It runs on a real machine, the same kind that terminal questions already run on. Our default sandbox has no network at all, so a key there used to fail on the first call with an error about resolving a host name. Python packages now install on that machine, as JavaScript packages already did, so a participant can add the provider's library the way they would on their own laptop.
A web page that a participant builds can now call the provider from the live preview. Before, those calls failed without ever leaving the page.
Our own coding agent, the one a question can offer next to outside tools, is now told that the key is there to be used. Coding assistants tend to refuse a credential pasted into a conversation, and a participant who hits that refusal reads it as a broken assessment. When a question hands out a key, the agent may say once that it would rather read the key from the environment, and then it writes and debugs the calls the way the participant asks.
If you replace the key partway through an event, a participant who reloads the page gets the new one without starting a new attempt.
A question without internet access now says so. When a command in its terminal tries to reach the network, the terminal adds a line saying the question cannot reach the internet. Before, the participant saw only the host name error.
Why it matters
A participant cannot tell a missed setting from a broken product. An authorization error, a host name error, and an agent that will not touch the key look the same to them, and none of them says what to do next. An organizer should not need to know which of our sandboxes has a network, or which setting a key depends on, just to hand one out.
Where it points
Whatever a question hands out, the organizer should only have to say what it is, and the participant should find it ready to use.