modern-fireman-99755
06/29/2026, 1:12 PMmillions-afternoon-47582
06/29/2026, 2:20 PMbetter-monitor-61654
06/29/2026, 3:37 PMbetter-monitor-61654
06/29/2026, 3:38 PMbetter-monitor-61654
06/29/2026, 3:38 PMbetter-monitor-61654
06/29/2026, 3:39 PMmodern-fireman-99755
06/29/2026, 4:18 PMmodern-fireman-99755
06/30/2026, 9:42 AMmillions-afternoon-47582
06/30/2026, 9:45 AM1 PR: I think I fixed but still I cannot test as I'm an owner in the Org, i.e., I have right to change LLM profiles. Moreover, I cannot put myself just as a member, and test the changesI’ve added you as a member of the organization.
modern-fireman-99755
06/30/2026, 9:49 AMmodern-fireman-99755
06/30/2026, 10:15 AMmillions-afternoon-47582
06/30/2026, 1:02 PMmodern-fireman-99755
06/30/2026, 3:05 PMbetter-monitor-61654
07/01/2026, 3:06 PMDo you mean: agent-canvas + cloud as BE?In my agent-canvas version, I cannot setup multiple LLM profiles, but I can select the profiles imported from the OpenHands Backend.
About the other msgs: did you have already open issues for them?No (tings are changing fast and most of the issues are ignored). But I can confirm that changing the LLM profile does propagate changes to agent-server, but not for the condenser LLM and not for the ask_agent LLM. To reproduce, select another LLM profile and see if it is really used when sending a
/btwmodern-fireman-99755
07/01/2026, 3:29 PMnutritious-balloon-65098
07/01/2026, 3:29 PMnutritious-balloon-65098
07/01/2026, 3:33 PM/btw part is a real bug path.
What I found:
• Agent Canvas switches the main conversation LLM via switch_llm with the selected profile config.
• /btw calls ask_agent without passing any LLM/profile override.
• In the pinned agent-server behavior, ask_agent caches a separate LLM under the fixed usage id ask-agent-llm. If /btw was used before switching profiles, that cached LLM can keep using the old profile after the main conversation switches.
• The condenser part looks less clear/currently partly mitigated: the pinned agent-server appears to update the default LLMSummarizingCondenser when it was cloned from the previous agent LLM, but I included it as a regression-test concern.
I also checked for duplicates and didn’t find an existing matching agent-canvas issue.
Opened: github.com/OpenHands/agent-canvas/issues/1568better-monitor-61654
07/01/2026, 4:01 PMdiff --git a/openhands-sdk/openhands/sdk/conversation/impl/local_conversation.py b/openhands-sdk/openhands/sdk/conversation/impl/local_conversation.py
index 83901ce3..e70762aa 100644
--- a/openhands-sdk/openhands/sdk/conversation/impl/local_conversation.py
+++ b/openhands-sdk/openhands/sdk/conversation/impl/local_conversation.py
@@ -1801,17 +1801,17 @@ class LocalConversation(BaseConversation):
self.state.events, additional_messages=[user_message]
)
- # Get or create the specialized ask-agent LLM
- try:
- question_llm = self.llm_registry.get("ask-agent-llm")
- except KeyError:
- question_llm = self.agent.llm.model_copy(
- update={
- "usage_id": "ask-agent-llm",
- },
- deep=True,
- )
- self.llm_registry.add(question_llm)
+ # Always derive from the agent's current LLM so that profile
+ # switches (switch_llm) take effect on subsequent /btw messages.
+ # We intentionally skip the registry cache: caching was
+ # first-write-wins, so the copy was frozen at conversation start
+ # and stale after any profile change.
+ question_llm = self.agent.llm.model_copy(
+ update={
+ "usage_id": "ask-agent-llm",
+ },
+ deep=True,
+ )
# Pass agent tools so LLM can understand tool_calls in conversation history
response = make_llm_completion(better-monitor-61654
07/01/2026, 4:01 PMbetter-monitor-61654
07/01/2026, 4:02 PMmodern-fireman-99755
07/01/2026, 4:05 PMIn agent-serverSuch that you don't have to copy everytime the LLM when you use, refresh/remove the cachedswitch_llm()when the active conversation LLM changes.ask-agent-llm
/btw .
I think it is also a smaller change
Do you want to open a PR in the sdk?better-monitor-61654
07/01/2026, 4:09 PMbetter-monitor-61654
07/01/2026, 4:09 PMmodern-fireman-99755
07/02/2026, 8:04 AMmillions-afternoon-47582
07/02/2026, 9:32 AMmodern-fireman-99755
07/02/2026, 11:22 AMmillions-afternoon-47582
07/02/2026, 11:26 AMmodern-fireman-99755
07/02/2026, 11:42 AM/api/organizations/{orgId}/profiles, which enforces EDIT_ORG_SETTINGS on the app-server. Therefore, a Member gets a 403 even calling the API directly, not just a hidden button. The client (use-can-manage-llm-profiles) reads the same permission from /organizations/{orgId}/me, so client + server agree.
This last endpoint was added in the PR: https://github.com/OpenHands/OpenHands/pull/15048 (yesterday)millions-afternoon-47582
07/02/2026, 11:52 AMmodern-fireman-99755
07/02/2026, 11:53 AMbetter-monitor-61654
07/08/2026, 10:34 AMmodern-fireman-99755
07/08/2026, 10:49 AMbetter-monitor-61654
07/08/2026, 10:54 AMbetter-monitor-61654
07/08/2026, 12:44 PMbetter-monitor-61654
07/08/2026, 12:45 PMmodern-fireman-99755
07/08/2026, 12:56 PMbetter-monitor-61654
07/08/2026, 12:56 PMbetter-monitor-61654
07/08/2026, 12:56 PMmodern-fireman-99755
07/08/2026, 12:56 PMbetter-monitor-61654
07/08/2026, 12:56 PMbetter-monitor-61654
07/08/2026, 12:57 PMmodern-fireman-99755
07/08/2026, 12:57 PMmodern-fireman-99755
07/08/2026, 12:57 PMbetter-monitor-61654
07/08/2026, 12:57 PMbetter-monitor-61654
07/08/2026, 12:57 PMbetter-monitor-61654
07/08/2026, 12:59 PMbetter-monitor-61654
07/08/2026, 12:59 PMmodern-fireman-99755
07/08/2026, 1:00 PMbetter-monitor-61654
07/08/2026, 1:00 PMbetter-monitor-61654
07/08/2026, 1:07 PMmodern-fireman-99755
07/08/2026, 1:07 PMbetter-monitor-61654
07/08/2026, 1:07 PMmodern-fireman-99755
07/08/2026, 1:08 PMmodern-fireman-99755
07/08/2026, 1:08 PMbetter-monitor-61654
07/08/2026, 1:08 PMbetter-monitor-61654
07/08/2026, 1:09 PMmodern-fireman-99755
07/08/2026, 1:09 PMmodern-fireman-99755
07/08/2026, 1:10 PMbetter-monitor-61654
07/08/2026, 1:10 PMmodern-fireman-99755
07/08/2026, 1:10 PMbetter-monitor-61654
07/08/2026, 1:10 PMbetter-monitor-61654
07/08/2026, 1:24 PMbetter-monitor-61654
07/08/2026, 1:24 PMbetter-monitor-61654
07/08/2026, 1:25 PMbetter-monitor-61654
07/08/2026, 2:18 PMbetter-monitor-61654
07/08/2026, 2:56 PMbetter-monitor-61654
07/08/2026, 3:36 PM