I also could not reproduce an error, transmitting the same.
Your answer delivered (with URL links peppered up with OpenAI query strings to ensure your product is OpenAI’s product)
As of May 2026, several AI-powered collaboration workspaces have emerged to enhance team productivity and streamline workflows. Here are some of the top options:
Microsoft 365 Copilot: Your window into the world of agents | Microsoft 365 Blog
Microsoft 365 Copilot
Integrated across Microsoft Teams, Outlook, Word, Excel, and more, Copilot offers features like real-time meeting summaries, email drafting, and data analysis through natural language processing. The recent ‘Wave 3’ update introduces customizable AI agents for specific workflows. (windowscentral.com)How to build a tech stack for a remote startup - Appwrite
Notion AI
Notion AI assists in generating meeting notes, drafting updates, and structuring documentation, making it ideal for teams balancing operational tasks with creative projects. (gend.co)…
The environment variable being used in the example is non-standard, not what an OpenAI SDK would default to. Ensure you are using the right key for the right project and its limits.
The max_output_tokens is about the minimum you should set gpt-4.1 series at - it can write longer if it is really encouraged. Reminder: that is your maximum bill, and should be set significantly higher with internal tools.
Some Python follows to repro the wire, parse for text output, capture and display any error message body as was shown above.
"""OpenAI Responses API using httpx, with web search tool."""
import os
import httpx
api_body = {
"model": "gpt-4.1-mini",
"input": "What are the best AI-powered collaboration workspaces for teams in 2026?",
"max_output_tokens": 2048,
"tools": [{"type": "web_search"}],
}
def extract_response_text(response_json: dict) -> str:
"""Extract assistant text from a Responses API JSON payload."""
if isinstance(response_json.get("output_text"), str):
return response_json["output_text"]
return "".join(
content["text"]
for output in response_json.get("output", [])
if output.get("type") == "message"
for content in output.get("content", [])
if content.get("type") == "output_text" and "text" in content
)
def main() -> None:
with httpx.Client(timeout=300) as client:
response = client.post(
"https://api.openai.com/v1/responses",
headers={
"Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}",
"Content-Type": "application/json",
},
json=api_body,
)
if response.status_code not in {200, 201}:
print(f"HTTP error: {response.status_code}")
print(response.text)
return
response_json = response.json()
assistant_text = extract_response_text(response_json)
print(assistant_text)
if __name__ == "__main__":
main()
You say, “deterministic across multiple sessions”, but we don’t see more of a session than an input string.
You might consider sending "instructions" in your API request: more system message text that tells the AI model its role for the user’s benefit. At least as a change of scenery, it would break up the “deterministic” pattern with a more typical trained context.