ReactAgent: LLM Agent for React Coding
reactagent.io
reactagent.io
I tried asking it to build a basic state management component for a TypeScript/React app. It offered a class-based component. I asked to use a closure instead. It offered a closure but skipped some of my other requirements that it has previously added (like types). I asked to add in-memory caching. It added caching but removed something else. I asked to create a context provider based on this component, it created a context provider but skipped some parts from the state management implementation.
Basically, it sort of works if you can hand-hold it and pay attention to every detail. But that barely saves me any time. And the code it generates is definitely not production ready and requires refactoring in order to integrate it into an existing code base.
What do you mean by giving access? Is it possible to limit its access only to certain functions/files?
Also worth taking a look at Github Copilot Chat[1], it's a bit limited but in certain cases it works well for editing specific parts of files.
[0] https://github.com/lightrail-ai/lightrail
[1] https://marketplace.visualstudio.com/items?itemName=GitHub.c...
* full disclosure: I’m the author of Promptr
If you want to follow up, you can also edit that follow-up however many times and see all the answers it gives.
Sometimes no-edit regenerate can be useful too.
Mmm.. that's an awfully big generalization.
I'm going to go out here on a limb and say... maybe you're doing it wrong.
ChatGPT is very very good at what you're describing (integration between well defined interfaces and systems in code), especially GPT4.
If you get one bad result, does that mean it sucks? Or... does it mean you don't understand the tool you're using?
The power of AI is in automation.
What you need to do is take your requirements (however you get them) and generate 100s of solutions to the problem, then automatically pick the best solutions by like, checking if the code compiles, etc.
...
This is a probabilistic model.
You can't look at a single output and say 'this sucks'; you can only (confidently) say that if you look at a set of results and characterize the solution space the LLM is exploring as being incorrect.
...and in that case, the highest probability is that your prompt wasn't good enough to find the solution space you were looking for.
Like, I know this blows people's minds for some reason, but remember:
prompt + params + LLM != answer
prompt + params + LLM = (seed) => answer
You're evaluating the wrong thing if you only look at the answer. What you should be evaluating the is answer generator function, which can generate various results.
A good answering function generates many good solutions; but even a bad answering function can occasionally generate good solutions.
If you only sample once, you have no idea.
If you are generating code using chat-gpt and taking the first response it gives, you are not using anything remotely like the power offered to you by their model.
...
If you can't be bothered using the api (which is probably the most meaningful way of doing this), use that little 'Regenerate' button in the bottom right of the chat window and try a few times.
That's the power here; unlimited numbers of variations to a solution at your finger tips.
(and yes, the best way to explore this is via the api, and yes, you're absolutely correct that 'chatGPT' is rubbish at this, because it only offers a stupid chat interface that does its best to hide that functionality away from you; but the model, GPT4... hot damn! Do not fool yourself. It can do what you want. You just have to ask in a way that is meaningful)
Doing a good job is the subjective part, no? Especially with opinionated things like programming in general/React
- Style guidelines
- Unit tests
- Functional requirements
- System requirements
If the tool creates commits to pass all of them, then it is objectively doing a good job.
> ReactAgent is an experimental autonomous agent
It’s going to give you a code base that is filled with subtle bugs, no tests and no documentation. You won’t have a good understanding of your own product and you are going to almost certainly end up wasting more time over even a modest time window compared to the feeling of productivity you had at the start.
This is literally hoping that some linear algebra process is going to magically put all of the right things together in all the right ways while maintaining all of the correct syntax and the underlying logic will make sense. Sometimes I think people forget that it’s just a glorified guessing game of what letter most likely comes next.
Plus, OpenAI is making plenty of revenue[1]. Yes, they're operating at a loss to grow faster, but it sounds like their unit economics are positive meaning can likely become profitable in the future without price hikes or user-hostile changes.
1- https://www.maginative.com/article/openais-revenue-skyrocket...
Life will find a way.
I’d see it as AI as a Platform. The AI space will get hyper-competitive now with companies like Anthropic and open-source projects like Llama. LLMs will become a commodity
What we’re more likely to see is some sort of consolidation and collapse of layers of what used to be a viable business. Companies who are not actively working on differentiation and adding real value will simply start withering away, at the same time giving space to nimbler teams that operate what used to take hundreds of people to manage.
tl;dr: No direct competition but consolidation and disruption of current operators.
If your building something people want to use and willing to pay for you would raise prices.
could it crash and burn sure. but you can't remove all risk as a startup.
This is the type of agent that AutoGPT uses.
> Wars about software complexity and popularity despite its complexity are an eternal recurrence. In the 2010’s, it was with React; in 2023, it’s with ReAct.
<iframe width="100%" height="315" src="https://www.loom.com/embed/591fd03b54d04a74a15995815de47c76" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
Maybe they checked our gyroscopes and thought based on that we wanted to watch it at double speed.
Edit: weird, if I click that link, it plays at normal speed.