Workspace Agents, ChatKit, or Your Own Stack
Review Northstar’s logs to resolve duplicate submissions and timeouts. Evaluate ChatGPT, ChatKit, and Agents SDK deployment options, considering data handling, monitoring, and service ownership. Establish clear accountability, ensure reliable request management, and plan migrations in accordance with OpenAI’s guidelines.
We'll cover the following...
Northstar’s console log for the first week showed 24 draft submissions, six client timeouts each followed by a retry, and three duplicate drafts shown to operators. No customer message went out, but operators were looking at the same draft twice, and nobody could say which team owned the service that produced them.
Once an agent works, someone has to decide where it lives. OpenAI gives you three homes: inside ChatGPT, behind a ChatKit chat interface embedded in the customer’s product, or in a service the customer runs with the Agents SDK. Each moves the interface, the agent loop, the stored data, and the on-call duty to a different owner. An interviewer will ask you to pick one and then ask who gets paged when a request times out.
The case stays the same. Northstar wants the NS-318 dispatch draft (the October 29, 08:00–12:00 UTC replacement-pump window from dispatch/NS-318/v3) to appear in its existing operator console. An operator reviews every draft, and the workflow can’t send a message or modify a ticket.
When does an agent belong inside ChatGPT?
The first option skips building an interface. A customer can connect its own MCP server to ChatGPT as a plugin with read and write tools, and a team can package a repeatable job as a Workspace Agent: a shared ChatGPT agent that can use connected apps, run on a schedule, and be shared within a workspace. Whether Northstar can use one depends on its administrator settings and who may build, run, and share agents.
An external system can trigger a saved Workspace Agent, and four details decide whether that integration behaves. HTTP 202 Accepted means the trigger was queued, not completed. The response body holds a conversation_url for the ChatGPT conversation, and the agent’s response can’t currently be retrieved through the API. To track the run, send the beta header OpenAI-Beta: workspace_agent_runs=v1, store the agent_trigger_run_id it adds to the response, and poll that run until it reaches completed or failed. The trigger uses a Workspace Agent access token for the ChatGPT endpoint, not an OpenAI Platform API key. Retries keep Idempotency-Key and conversation_key stable for the same source event, with a new idempotency key per new event, and recording the run ID next to the source event lets you reconcile later. And an agent-owned connected account can expose everything it can reach to everyone the agent is shared with, so review the connection’s scope and the sharing audience together.
This route fits a business-owned job that delivers a draft somewhere and doesn’t need an answer on screen ...