limited-student-10747
03/17/2026, 12:59 PMlimited-student-10747
03/17/2026, 12:59 PMwooden-umbrella-84098
03/17/2026, 2:58 PMlimited-student-10747
03/17/2026, 3:03 PMlimited-student-10747
03/17/2026, 3:03 PMcalm-artist-7206
03/17/2026, 4:32 PMConversationStartRequest which serializes an 'agent' with a profile id, that is, a reference. And references one or more secret names, instead of full dicts.
—-
Secrets are not directly involved in this PR, though maybe the same concept applies, I feel. (I think Xingyao is meeting it in the automations PRs)
Maybe that’s like:
• client called /secrets to set them
• client chooses 2 secret names and sends a /start_conversation with them
Current shapes (OpenHands-GPT-5.4 trained its human to like the term 'shapes' 😅)
https://gist.github.com/enyst/76447ea0813d502a3c0c72dbc790a725limited-student-10747
03/17/2026, 7:51 PMlimited-student-10747
03/17/2026, 7:53 PMstraight-sundown-84319
03/17/2026, 7:55 PMlimited-student-10747
03/17/2026, 7:55 PMcalm-artist-7206
03/17/2026, 8:12 PMagent-server, has to do something like:
• send a profile from the user to the SDK profile store
◦ /llm-profiles endpoint
• let the user start a conversation with a profile id
So my question becomes, how do we let the user start a conversation with a profile id, in the SDK?
It seems that the ConversationStartRequest has to specify the profile id, instead of the full LLM dict.limited-student-10747
03/17/2026, 8:14 PMcalm-artist-7206
03/17/2026, 8:22 PM/model profile_id control command was merged in the SDK. It allows to switch profile by profile id.
I think maybe the CLI still has to expose it to the user.
Robert proposed in the other thread to expose LLM profiles via the REST interface too.limited-student-10747
03/17/2026, 8:31 PMcalm-artist-7206
03/17/2026, 9:24 PMcalm-artist-7206
03/18/2026, 5:38 PMconversation.switch_profile() Python API.
In order for GUI to be able to do the same, we need a REST API endpoint.
So client code, any UI for agent-server, would call
• /start_conversation with a profile reference
• /switch_profile to a profile
• /llm_profiles seems to fall naturally into place in this view.
Why are those interesting for this PR: I'd think that maybe we can break down the agent_settings assumed in the PR into something like agent_settings and llm_profiles. The above proposal, which redefined the toughest version of immutability into a bit softer one, implies that the LLM can vary in the course of a conversation.
I think that variance is easier for the user when all they need to do is call /switch_profile REST endpoint, with “gpt-5”.limited-student-10747
03/18/2026, 5:46 PMlimited-student-10747
03/22/2026, 9:09 PMLLM class in AgentSettings to be a union class of LLM | str
2. add an llm_profile_name: str | None member to LLM
as ways to do this for instance.limited-student-10747
03/22/2026, 9:11 PMlimited-student-10747
03/24/2026, 8:41 AM