Replit agent+assistant, versus, agent as assistant

I’d love to know how others work with assistant and agent together. Because I simply don’t get the point of assistant, and in the past found it dangerous:

When I first started using Replit, I tried using both agent and assistant. But I very quickly got burned by the assistant when I asked it to look at a problem the agent had introduced.

The assistant tried to be smart and fix agent’s bug. Suddenly, I had a senior developer and a junior one, both fighting over the same code and the best way to fix the issue. An utter mess.

Ever since then, I have not used assistant - literally not opened the tool once in 4 months.

Agent as my assistant, researcher, coder and everything…

I work with agent in a very conversational way. I discuss next steps with it, advising it in every prompt “let’s just discuss this and create a plan - do not start coding until we’ve agreed”.

Agent has become my assistant too. Going off to do web research when needed, and then analysing the code before outlining a plan of what it proposes to do. I push back if I think it has missed something.

Completing a piece of work now entails a 2-way conversation, so by the time it starts the actual coding, we both know what the outcome will be with a greater level of confidence.

I find this process much better than “hey agent, do X” and then crossing my fingers and hoping it gets it right. And if it doesn’t, spending the next 20 prompts fixing a new bug.

And best of all, there is no junior assistant poking its nose in suggesting alternative ideas.

Can assistant play a useful role?

I know assistant is “theoretically” 5 times cheaper, so would love to find a way to introduce it into my workflow, but only if it can add value. My model may be more expensive upfront, but I don’t think it is in the long run.

I’m really keen to understand other people’s workflows and how they effectively manage this team of two.

I use them the way they’re described.

The Agent is for building projects from scratch, configuring environments, and making large-scale changes, while the Assistant focuses on fine-tuning existing projects, providing code explanations, and handling smaller edits and bug fixes.

My workflow is typically: Agent for broad strokes, completing new features etc. Then the assistant to fine tune and polish that implementation.

The assistant you very much have to be explicit in your request. Ie: look at line 100 in file sample_file.tsx and resolve the issue of…. I also find that providing errors from the server or browser console logs very helpful. I have even found success asking it to do complete refactors as Claude is a very capable LLM.

Full disclosure: if you find yourself preferring the conversational experience with the agent, the assistant definitely will be a struggle, as it is more of an engineer mindset that likes to communicate in a very technical way.

1 Like

Interesting to see how you’re using them @Marshal_Thompson, appreciate the input.

Definitely many ways to use these AI dev tools (not just Replit), and I guess over time the world is going to see lots of people publishing “The Marshal AI Dev Process” or “The Steve AI Build Methodology”, and aiming for people to follow them. Interesting times - it’s all change!

Personally, and even though I’ve been developing for far too many decades to think about and am comfortable looking at code, I’m aiming for a fully vibe-built process. So the thought of having to tell assistant it’s line 100 in sample.tsx goes against all that.

None of these methods are right or wrong, but the more I think about it since I wrote the post, the more I really like my way. I guess we’re all finding our feet in this mad new AI dev world :blush:

1 Like

I was having some issues going around in circles trying to fix a bug in my app using Agent so reached out to support. The response I god was to use this format to work on my app.

Step 1 - using the agent use the following prompt:

I am trying to find a fix for the following issue:

(Issue to fix)

I want you to do the following:

  • Research deeply across my codebase. Research only, do not make any changes.
  • Find what files and functions are related to the problems and goals I outlined above.
  • Assess reasons for why the feature might not be working or why it might not work. If I am asking for something impossible or a task you do not have the tools to accomplish, let me know.
  • Develop a plan to fix it. Do not make any changes until I have given explicit instructions to do so.
  • If there is any aspect of the problem that is unclear ask clarifying questions before progressing further.
  • If there are different ways to implement the changes and some of them have implications for future code changes then ask which options are preferable.
  • If the plan involves changes to the database also review the database reset and sample data load scripts and the sample data to ensure that they are still valid after the proposed changes and include plans to update these files as well.
  • Write this entire plan and report into a file called “Instructions.md” in my project, overwriting any existing file.
  • Do not make any changes to the code without explicit confirmation to do so.

Then go into the Assistant and use the next prompt:

I want you to fix and implement (not long description about goal or bug you have). Before you begin, please carefully read and adhere to the plan and insights found in the “Instructions.md” file and follow those instructions. If there is something in those Instructions that might stop you, let me know and guide me on how to unblock you.

This seemed to work ok, but I still run into issues with fixing some bugs that seem reasonable straight forward.

And why am I not allowed to post a post that uses the word S H O R T?? What kind of mad policing is that?!?!?!

Personally I don’t get why you would ask developer 1 to research a bug fix or feature enhancement and write down the instructions. And then go to developer 2 and ask it to carry out the work. This makes no sense to me. Something vital will be lost along the way.

There are some really good bullets in that list though, getting it to think about a problem, give you ideas and discussing them first. And only do the change once you have agreed. I like all that.

Yes, but it instantly forgets that I don’t want it to make changes without my specifying so! After that prompt it might ask a clarifying question. If I answer that question it will immediately start making changes, despite the main original prompt stating not to without approval!

1 Like

Perhaps agent chats that have been running for too long are like older people who walk into a room and think “oh, what was it I came in here for?:rofl:

But seriously, here is what I do on every prompt (I use AutoHotKey on my PC, and have programmed this and a few other regular prompts into function keys so I don’t have to keep re-typing them):

Standard rule (no need to tell me you understand this rule each time): Think about the following and discuss with me first. Research and investigate as you need. Do not make any changes until I confirm. If you have conflicting rules that say you must implement solutions, then ensure this instruction overrides and you do not make changes until I give the go-ahead:

[insert actual question/discussion point here]

Only after agent and I have agreed on the work required do I prompt (without the header) “ok, go ahead with that change

Occasionally, if I am tired, I will accidently word my question as an instruction, and agent will get confused by the conflict and go ahead and do the change. So you need to be careful with your wording. But other than that, I would say this is 99.99% guaranteed to stop it making actual changes until you are ready.

I setup things like this on my Stream Deck for quick access.

2 Likes