Get confident with Assistants API vocabulary — threads, run states, tool output submission, and event streaming.
0 / 5 completed
1 / 5
At standup, a junior engineer asks what a Thread is in the OpenAI Assistants API. What is the correct answer?
A Thread is a persistent conversation container. It stores Messages (user and assistant turns) and maintains context across multiple Run executions. You create a Thread once and reuse it, appending new user messages and triggering new Runs as the conversation progresses.
2 / 5
In a PR review, your team sees a Run with status requires_action. What does this mean?
A Run status of requires_action means the assistant has decided to call one or more tools and is waiting for your application to execute them and submit the results. You must call submit_tool_outputs with the matching tool_call_id values, otherwise the Run will eventually expire.
3 / 5
An incident occurs because tool outputs are not being submitted correctly. What is the right way to submit tool_outputs for a Run?
To resume a Run in requires_action state, call submit_tool_outputs providing the thread_id, run_id, and a tool_outputs array where each entry has a tool_call_id (matching the IDs from the required_action object) and the output string. Every pending tool call must be answered in a single submission.
4 / 5
During a design review, the team asks what vector_store attachments enable for an assistant. What is correct?
Vector store attachments power the file_search tool. Files are uploaded, processed into embeddings, and stored in a vector store. When attached to an assistant or thread, the assistant can retrieve semantically relevant chunks from those documents during a Run to answer questions grounded in the uploaded content.
5 / 5
A code review covers streaming with stream=True in the Assistants API. Which statement is correct?
When stream=True, the Assistants API emits server-sent events (SSE) such as thread.run.created, thread.message.delta (carrying incremental text), and thread.run.completed. This enables applications to render responses progressively. Tool use is still supported — you receive thread.run.requires_action events instead of polling.