dust-tt / dust

Amplify your team's potential with customizable and secure AI assistants.
https://dust.tt
MIT License
896 stars 99 forks source link

[Multi Actions] Feature flag and/or command to "switch" a workspace to multi-actions #5436

Closed fontanierh closed 3 weeks ago

fontanierh commented 3 weeks ago

"Switching" a workspace means all their assistants start behaving as multi-actions assistants. Their "single action" builder UI is no longer accessible. This has to be entirely reversible.

Transitioning workspaces from single action world to multi action world We won't keep the single action builder. Once you switch, you switch. All your assistants, including existing ones, start behaving as multi action agents. The migration is entirely reversible (we keep your forceUseAtIteration settings, so if we switch you back, all assistants that can be used as legacy agents will start behaving that way again)

fontanierh commented 3 weeks ago

I think the solution I want to go for is to have a simple feature flag on the workspace. For now, we'd drop / not use the "force use at iteration". Instead, if the workspace is in "single action", the multi action loop will just use the "first" action (i.e the one with the smallest id/created at) and maybe print a warning if there is more than one. It will force run that action. Otherwise it will run normally as multi actions.

This is actually fine since we're OK for existing single action assistants to start behaving a little bit more agentic-ly once the workspace is feature-flagged into multi actions.

forceUseAtIteration was maybe a mistake after all.

@spolu wdyt ?

fontanierh commented 3 weeks ago

Also "maxToolsUsePerRun" (which needs to be renamed into "maxStepsPerRun" or just "maxSteps") would simply not be used in single action mode. It will default to 3 for every assistant.

spolu commented 3 weeks ago

Meditating for a bit

spolu commented 3 weeks ago

Ok with your plan to kill it with fire and have the flag drive the code path we use.

Agreed we need to rename to maxSteps

One thing we could consider is replacing the forceUseAtIteration by a simple boolean forceUse which would force the use at Step 1. But I don't think it's worth it if we believe the agentic route to be the future here, and I think we do.

fontanierh commented 3 weeks ago

One thing we could consider is replacing the forceUseAtIteration by a simple boolean forceUse which would force the use at Step 1. But I don't think it's worth it if we believe the agentic route to be the future here, and I think we do.

I would be in favor of dropping for simplicity. I think we'll be fine, but we'll try on our own workspace first. If it turns out to not be fine, then we can re-introduce as a bool easily before shipping

spolu commented 3 weeks ago

Tots