We've discussed generating automation code internally a bunch, and what we decided on is to do action generation and memorization, instead of code generation and memorization. They're not that far apart conceptually, but there is one important distinction: The generated output would just be a list of actions and their associated data source.
For example, if Skyvern was asked to log-in to a website and do a search for product X, the generated action plan would include:
1. Click the log in button
2. Click "sign in with email"
3. Input the email address retrieved from source X
4. Input the password retrieved from source Y
5. Click log in
6. Click on the search bar
7. Input the search term from source Z
8. Click Search
Now, if the layout changed and suddenly the log-in button had a different XPath, you have two options:
1. Re-generate the entire action plan (or sub-action plan)
2. Re-generate the specific component that broke and assume everything else in the action plan still works
For example, if Skyvern was asked to log-in to a website and do a search for product X, the generated action plan would include: 1. Click the log in button 2. Click "sign in with email" 3. Input the email address retrieved from source X 4. Input the password retrieved from source Y 5. Click log in 6. Click on the search bar 7. Input the search term from source Z 8. Click Search
Now, if the layout changed and suddenly the log-in button had a different XPath, you have two options: 1. Re-generate the entire action plan (or sub-action plan) 2. Re-generate the specific component that broke and assume everything else in the action plan still works