AI Assist extremely slow - can't perform simple tasks & seems to corrupt the code?

When using the AI Assist I’ve been getting radically different results. Sometimes its able to complete complex tasks, other times simple tasks bog it down. In general its painfully slow often taking 30 minutes or more to complete simple tasks. Sometimes it seems to crash my browser.

I tried to get it to arrange a set of collapsible containers in a drawer and it has not been able to do that. It potentially corrupt the code since not I can’t position them manually anymore. I’m trying to work with the ai and using prompting to guide it but since the Retool system is using a proprietary .rsx file I don’t know how to guide it. I can’t see the rsx or edit it, I don’t know what it is and what props are causing the issue. Is there a way to debug and see the code?

Since rsx is proprietary it seems like the ai model was not properly trained on this language. Its not being able to come up with solutions like re-ordering a set of component. It tries to delete and recreate, so I have to prompt not to delete. When deleting and recreating its not able to recreate what was there correctly. Item that were on the left are on the right, data is missing etc.

Here is an example of the corrupted layout code. I’m trying to get AI to fix it. I don’t know what caused it, it might have been AI or something else.

I can now see the issue! Looking at the positions file, the containers in drawerInteractionDetails have wildly invalid position data, while drawerOpportunityDetails has clean, simple positioning:

drawerOpportunityDetails (working):

  • collapsibleContainer17: row 0, height 1

  • collapsibleContainer16: row 1, height 1

  • collapsibleContainer19: row 2, height 1

  • collapsibleContainer18: row 3, height 1

drawerInteractionDetails (broken):

  • collapsibleContainerSmsMessage: row 0, height 1287 :cross_mark:

  • collapsibleContainerNotes: row 1287, height 54

  • collapsibleContainerEmailMessage: row 1473, height -195 :cross_mark:

  • collapsibleContainerContactDetails: row 2647, height -147 :cross_mark:

  • collapsibleContainerTaskDetails: row 3217, height -311 :cross_mark:

The RSX file shows the containers are ordered differently than the positions! Let me check the RSX ordering:

RSX ordering (drawerInteractionDetails.rsx):

  1. collapsibleContainerSmsMessage

  2. collapsibleContainerNotes

  3. collapsibleContainerEmailMessage

  4. collapsibleContainerContactDetails

  5. collapsibleContainerTaskDetails

But you want them in THIS order:

  1. Task Details (collapsibleContainerTaskDetails)

  2. Contact Details (collapsibleContainerContactDetails)

  3. Email Message Details (collapsibleContainerEmailMessage)

  4. SMS Message Details (collapsibleContainerSmsMessage)

  5. Interaction Notes (collapsibleContainerNotes)

The issue is that both the RSX order AND the position data need to be fixed. Let me use the UI layout tool to properly arrange these

I have the same experience with AI assist, it’s unusable, slow, and faster to do by hand

Sometimes it does work pretty well. Othertimes its just doesn’t understand retool! It is altogether pretty slow but what I’ve been doing is just running multiple instances of the ai so that it builds something slowly in the background and then i just switch between tasks.

Thanks so much for the detailed write-up, this is really helpful context. :folded_hands: A few things here:

On the slowness: This is something we're aware of and actively working on. Assist loads your entire app into its context window, so the larger and more complex the app, the slower and less consistent it can be. For now, breaking tasks into smaller, more targeted prompts tends to help. Here is a similar suggestion I gave in another thread.

On the corrupted layout with the collapsible containers: This is something we've seen reported before and are looking into. It's possible that Assist's handling of layout positioning in complex nested setups like this can sometimes lead to unexpected results. For now, the safest workaround is to handle layout changes on nested containers manually rather than through Assist.

The .rsx file stands for Retool Scripting XML, part of Retool's internal framework called ToolScript. It's not directly editable by builders. Since it's proprietary to Retool, it isn't well understood enough by LLMs to be reliably authored or modified yet. It's something the team is actively working to improve.

On the delete/recreate pattern: Totally valid frustration! Complex reorganization tasks can still be hit or miss, it's something the team continues to work on.

Again, thanks so much for the feedback, really appreciate you sharing it! Assist is still in beta, so we're actively iterating and input like yours goes a long way. I'll make sure to pass this along to the team. :+1:

In the meantime, check out our latest announcement on recent Assist updates. There might be some improvements there that are relevant to what you ran into!

Thank you for the quick and detailed reply! The AI landscape is changing quickly and we are actively experimenting with different tools to see what is the best fit.

We actively use cursor and one one of the tools that are super helpfull is the ability to plan and to chose the model you want to use. Generally I’ve found claude to be better than codex for front end tasks and for tasks that involve a bit more reasoning. If I want to do something surgical I usechat gpt.

I think the main question here is also how retool expedites the workflow. That will improve as the ai improves, but really I find that AI is replacing a lot of manually wiring. Unfortunately if you have the .rsx file as a wrapper over react then that makes it harder to train the AI and what was once an enabler, a proprietary format that makes it easier to execute typical design pattern, now is something that slows you down.

Maybe this is a seperate thread, but I’m trying to figure out how Retool is making it easier to

  1. put together basic CRUD tables
  2. work with more complex nested data that requires complex domain logic

For problem 1, its taking a lot of work to wire up a table. I would have to create custom sql queries for create, update and add row. I tried working with the AI to get this done but it gets confused and I’m not sure what the retool pattern for this is. Right now each table requires a lot of work, which if I was using an agentic workflow would be something I can just designate to an agent and let it rip.

For problem 2 you really need to put together an api, and then wire this up to the table. Again that really needs to be done manually and then for functionality like back-end filtering, moving rows up and down, working with nested tables, I had to create a lot of custom front end scripts.

Because you can’t put together a rules file the ai can’t really go through and recreate the pattern. I’ve been using claude to help with some of this front end work so ai don’t need to do it manually, but then if i need to do for table B what I did for table A I need to do a lot of manually wiring.

If you can add a rules file I think that would be a big plus so the AI can rip and execute a complex design pattern.

Some sort of planning feature would also be a big help. Sometimes AI, in particular the retool ai does stupid stuff. For example you want to fix something and it decides, this isn’t working let me delete everything and try rebuilding it from scratch. Which by the way it is not capable of doing. Its a bit “lazy” It can’t really complete a task. It should be able to diff an rsx file and recreate it but it always misses something.

A plan file would help you review what is it going to do and chat through it so you can set clear guidelines and prevent it from solving the problem by doing something stupid like deleting everything.