Goal: we want to allow agent profiles to specify w...
# proj-agent
s
Goal: we want to allow agent profiles to specify which tools the agent has access to. Consequently we remove the on/off
enable sub-agents
and
enable switch llm
since those features can be specified via tool selection. Question: if the canvas must be backward compatible with older sdks, should I keep a soon-to-be-deprecated branch with toggles for when a user links the latest canvas to an old SDK? I am asking because having newer canvas being compatible with older SDKs introduces lots of complexity in the code @modern-fireman-99755 @limited-student-10747
l
I'd say just increase the minimum SDK version variable in canvas and require people to upgrade the sdk
s
ok! better this than too complex code
m
> keep a soon-to-be-deprecated branch with toggles for when a user links the latest canvas to an old SDK? I think an agent-canvas version should be always used with the linked agent-server version. Otherwise it is really difficult to maintain. Perhaps, double-check if there is no a setting json somewhere which will not be backward compatible after the changes you mentioned. Best test is to deploy the branch on the VM and see if everything work smooth 🙂
s
I think an agent-canvas version should be always used with the linked agent-server version.
but we do have a
minimum SDK version available
field
m
ah ok sorry... i thought it was pinned... but it is using the linked version just if the FE spin up the BE
s
fe spin up the be?
m
Whenever canvas starts its own backend (
npx @openHands/agent-canvas
, the Docker image,
npm run dev
), it runs the pinned
versions.agentServer
, so the minimum never comes into play. But you can spin up canvas FE only with the flag
--frontend-only
and then connect to a BE somewhere on a cloud (for example). In this case the
versions.minimumAgentServer
plays a role. You can connect a FE to a BE (agent-canvas to agent-server) if and only if
versions.minimumAgentServer
is <= of the version of the agent-server you want to use as BE.
nod 1
Sorry if it is confusing. When I say FE i mean the code in OpenHands/OpenHands repo (old agent-canvas code) and when I say BE I mean the agent-server.
l
Yeah, that’s right. But there are cases where the BE is spun up separate from the frontend, and some are backward compatible some are not. That’s why we have minimumAgentServer
👍 1
So I think we’re all on the same page!