What is agentic engineering? (simonwillison.net)

by lumpa 94 comments 165 points
Read article View on HN

94 comments

[−] maxbond 62d ago
I don't think we should be making this distinction. We're still engaged in software engineering. This isn't a new discipline, it's a new technique. We're still using testing, requirements gathering, etc. to ensure we've produced the correct product and that the product is correct. Just with more automation.
[−] ssgodderidge 62d ago
I agree, partly. I feel the main goal of the term “agentic engineering” is to distinguish the new technique of software engineering from “Vibe Coding.” Many felt vibe coding insinuated you didn’t know what you were doing; that you weren’t _engineering_.

In other words, “Agentic engineering” feels like the response of engineers who use AI to write code, but want to maintain the skill distinction to the pure “vibe coders.”

[−] zx8080 61d ago

> “Agentic engineering” feels like the response of engineers who use AI to write code, but want to maintain the skill distinction to the pure “vibe coders.”

If there's such. The border is vague at most.

There're "known unknowns" and "unknown unknowns" when working with systems. In this terms, there's no distinction between vibe-coding and agentic engineering.

[−] simonw 61d ago
My definition to "vibe coding" is the one where you prompt without ever looking at the code that's being produced.

The moment you start paying attention to the code it's not vibe coding any more.

Update: I added that definition to the article: https://simonwillison.net/guides/agentic-engineering-pattern...

[−] zx8080 61d ago
What if you review 50%? Or 10%? Or only 1%, is it not vibe coding yet?

Where is the borderline?

[−] simonw 61d ago
I think the borderline is when you take responsibility for the code, and stop blaming the LLM for any mistakes.

That's the level of responsibility I want to see from people using LLMs in a professional context. I want them to take full ownership of the changes they are producing.

[−] zx8080 61d ago
Sounds good, however the bar is probably too far and far too idealistic.

The effects of vibecoding destroys trust inside teams and orgs, between engineers.

[−] ssgodderidge 61d ago
As would the effects of shipping unverified, untested code pre-agents existing. Bad quality will always erode trust.

The problem with LLM-based coding is that the speed it can generate code (whether good or bad) is much faster than before.

[−] Toutouxc 61d ago
And are you not seeing that level of responsibility?
[−] simonw 61d ago
I'm trying to demonstrate that in my own work, but from the comments I see in places like Hacker News there are a lot of people who aren't.

I wrote a note about that here: https://simonwillison.net/guides/agentic-engineering-pattern...

[−] DonHopkins 61d ago
Ragentic Engineering is when you curse at the LLM.
[−] maxbond 61d ago
I don't blame the agent for mistakes in my vibe coded personal software, it's always my fault. To me it's like this:

80%+: You don't understand the codebase. Correctness is ensured through manual testing and asking the agent to find bugs. You're only concerned with outcomes, the code is sloppy.

50%: You understand the structure of the codebase, you are skimming changes in your session, but correctness is still ensured mostly through manual testing and asking the agent to review. Code quality is questionable but you're keeping it from spinning out of control. Critically, you are hands on enough to ensure security, data integrity, the stuff that really counts at the end of the day.

20%-: You've designed the structure of the codebase, you are writing most of the code, you are probably only copypasting code from a chatbot if you're generating code at all. The code is probably well made and maintainable.

[−] Toutouxc 61d ago
I feel like there’s one more dimension. For me, 95%+ of code that I ship has been written (i.e. typed out) by a LLM, but the architecture and structure, down to method and variable names, is mine, and completely my responsibility.
[−] 000ooo000 61d ago
Have to consult the Definition Engineers to find out
[−] skydhash 62d ago
My preferred definition of software engineering is found in the first chapter of Modern Software Engineering by David Farley

  Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.
As for the practitioner, he said that they:

  …must become experts at learning and experts at managing complexity
For the learning part, that means

  Iteration
  Feedback
  Incrementalism
  Experimentation
  Empiricism
For the complexity part, that means

  Modularity
  Cohesion
  Separation of Concerns
  Abstraction
  Loose Coupling
Anyone that advocates for agentic engineering has been very silent about the above points. Even for the very first definition, it seems that we’re no longer seeking to solve practical problems, nor proposing economical solutions for them.
[−] neonbrain 62d ago
The term feels broken when adhering to standard naming conventions, such as Mechanical Engineering or Electrical Engineering, where "Agentic Engineering" would logically refer to the engineering of agents
[−] sigbottle 62d ago
There should be more willingness to have agents loudly fail with loud TODOs rather than try and 1 shot everything.

At the very least, agentic systems must have distinct coders and verifiers. Context rot is very real, and I've found with some modern prompting systems there are severe alignment failures (literally 2023 LLM RL levels of stubbing out and hacking tests just to get tests "passing"). It's kind of absurd.

I would rather an agent make 10 TODO's and loudly fail than make 1 silent fallback or sloppy architectural decision or outright malicious compliance.

This wouldn't work in a real company because this would devolve into office politics and drudgery. But agents don't have feelings and are excellent at synthesis. Have them generate their own (TEMPORARY) data.

Agents can be spun off to do so many experiments and create so many artifacts, and furthermore, a lot more (TEMPORARY) artifacts is ripe for analysis by other agents. Is the theory, anyways.

The effectively platonic view that we just need to keep specifying more and more formal requirements is not sustainable. Many top labs are already doing code review with AI because of code output.

[−] jbethune 62d ago
I think there is a meaningful distinction here. It's true that writing code has never been the sole work of a software engineer. However there is a qualitative difference between an engineer producing the code themselves and an engineer managing code generated by an LLM. When he writes there is "so much stuff" for humans to do outside of writing code I generally agree and would sum it up with one word: Accountability. Humans have to be accountable for that code in a lot of ways because ultimately accountability is something AI agents generally lack.
[−] aewens 62d ago
“It’s not vibe coding, it’s agentic engineering”

From Kai Lentit’s most recent video: https://youtu.be/xE9W9Ghe4Jk?t=260

[−] redhale 61d ago
As someone who works with real licensed engineers (electrical, civil), I wish we would use the term "agentic software engineering" to describe this. Omitting "software" here betrays a very SWE-centric mindset.

Agents are coming for the other engineering disciplines as well.

[−] danieltanfh95 62d ago
Agentic engineering is working from documentation -> code and automating the translation process via agents. This is distinct from the waterfall process which describes the program, but not the code itself, and waterfall documentation cannot be translated directly to code. Agent plans and session have way more context and details that are not captured in waterfall due to differences in scope.
[−] nclin_ 62d ago
I've discovered recently as code gets cheaper and more reliable to generate that having the LLM write code for new elements in response to particular queries, with context, is working well.

Kind of like these HTML demos, but more compact and card-like. Exciting the possibilities for responsive human-readable information display and wiki-like natural language exploration as models get cheaper.

[−] jdlyga 62d ago
Sure, you could argue it's like writing code that gets optimized by the compiler for whatever CPU architecture you're using. But the main difference between layers of abstraction and agentic development is the "fuzzyness" of it. It's not deterministic. It's a lot more like managing a person.
[−] pamelafox 62d ago
I’ve been using the term “agentic coding” more often, because I am always shy to claim that our field rises to the level of the engineers that build bridges and rockets. I’m happy to use “agentic engineering” however, and if Simon coins it, it just might stick. :) Thanks for sharing your best practices, Simon!
[−] iamcreasy 62d ago
Is there any article explaining how AI tools are evolving since the release of ChatGPT? Everything upto MCP makes sense to me - but since then it feels like there is not clear definition on new AI jergons.
[−] kevintomlee 62d ago
the practice of developing software with the assistance of coding agents.

Spot on.

[−] ChrisArchitect 62d ago
Previously on the guide Agentic Engineering Patterns:

https://news.ycombinator.com/item?id=47243272

[−] aryehof 61d ago
Agentic Coding or perhaps Agentic Software Development is far more real and appropriate . Calling it engineering is better left to those wanting to impress family and peers.
[−] Aafi04 61d ago
Curious how this evolves when agents start retaining memory across projects. Feels like that could change how we think about the tool loop.
[−] deadbabe 62d ago
I think we all know what Agentic engineering is, the question is when should it not be used instead of classical engineering?
[−] righthand 62d ago
How is this different than Prompt Engineering?