LLM agent code is good if you don't try to one-shot things. Have it devise deterministic tests to test the code and give it the ability to check its own results via screenshots. Have it plan ahead, ask questions, work step by step in separate sessions. Give it enough context, always have it create a README.md explaining the structure and purpose of the project for other sessions. Fix some stuff yourself. It's not either or, it can be both.
American LLM companies are terrible for their copyright infringement, the environmental effects of their data centers and for several other valid reasons. I hated that Microsoft tried to push Copilot on every system because it sucked (mandatory "I use Arch, btw.").
So yes, LLM companies are terrible, people losing their jobs because of questionable business decisions is terrible. But LLMs are good tools. Like any tool, you can produce utter shit with it. You can use a screw driver to destroy the drive of an old screw and make it unusable. You can stick it in a wall and have a gaping hole. But you can also use it to remove and fasten screws regularly. The same applies to LLM agents. If you have got no idea what you're doing, you may produce shit. The thing with shitty AI code is, you only notice it when it is shitty. Because the output that's good is essentially invisible. The problem is not the tool, it's who's using it.
Use open-weight models locally and use a harness like Pi and expand it or modify it as you wish. Don't support the per token pricing/subscription companies.