Yes, I see your analogy between fallible humans and fallible AI.
It's not the non-determinism that was bothering me, it was the decision making capability. I didn't understand what kinds of decisions I can rely on an LLM to make.
For example, with the resume screening application from the post, where would I draw the line between the agent and the human?
- If I gave the AI agent access to HR data and employee communications, would it be able decide when to create a job description?
- And design the job description itself?
- And email an opening round of questions for the candidate to get a better sense of the candidates who apply?
Do I treat an AI agent just like I would a human new to the job? Keep working on it until I can trust it to make domain-specific decisions?
The honest answer is that we are still figuring out where to draw the line between an agent and a human, because that line is constantly shifting.
Given your example of the resume screening application from the post and today's capabilities, I would say:
1) Should agents decide when to create a job post? Not without human oversight - proactive suggestion to a human is great.
2) Should agents design the job description itself? Yes, with the understanding that an experienced human, namely the hiring manager, will review and approve as well.
3) Should an agent email an opening round of questions to the candidates? Definitely allowed with oversight, and potentially even without a human approval depending on how well it does.
It's true that to improve all 3 of these it would take a lot of work with respect to building out the tasks, evaluations, and flows/tools/tuned models, etc. But, you can also see how much this empowers a single individual in their productivity. Imagine being one recruiter or HR employee with all of these agents completing these tasks for you effectively.
EDIT: Adding that this pattern of "agent does a bunch of stuff and asks for human review/approval" is, I think, one of the fundamental workflows we will have to adapt in dealing productively with non-determinism.
This applies to an AI radiologist asking a human to approve their suggested diagnosis, an AI trader asking a human to approve a trade with details and reasoning, etc. Just like small-scale AI like Copilot asking you to approve a line/several lines, or tools like Devin asking you to approve a PR.
I can see value in it, but I'm unsure how much more value it provides compared to building software with my own heuristics for solving these problems.
The LLM seems incredible at generating well-formatted text when I need it, like for the job description and emails.
But hardcoding which signals matter for a decision and what to do about them, seems faster, more understandable, and maybe not that far in effectiveness from a well trained AI agent.
> would it be able decide when to create a job description?
If you can encode how you/your company does that decision as a human with text, I don't see why not. But personally there is a lot of subjectivity (for better or worse) in hiring processes, I'm not sure I'd want a probabilistic rules engine to make those sort of calls.
My current system prompt for coding with LLMs basically look like I've written down what my own personal rules for programming is. And anytime I got some results I didn't like, I wrote down why I didn't like it, and codified it in my reusable system prompt, then it doesn't make those (imo) mistakes anymore.
I don't think I could realistically get an LLM to do something I don't understand the process of myself, and once you grok the process, you can understand if using an LLM here makes sense or not.
> Do I treat an AI agent just like I would a human new to the job?
No, you treat it as something much dumber. You can generally rely on some sort of "common sense" in a human that they built up during their time on this planet. But you cannot do that with LLMs, as while they're super-human in some ways, are still way "dumber" in other ways.
For example, a human new to a job would pick up things autonomously, while an LLM does not. You need to pay attention to what you need to "teach" the LLM by changing what Karpathy calls the "programming" of the LLM, which would be the prompts. Anything you miss to tell it, the LLM will do whatever with, and it only follows exactly what you say. A human you can usually tell "don't do that in the future" and they'll avoid that in the right context. A LLM you can scream at for 10 hours how they're doing something wrong, but unless you update the programming, they'll continue to make that mistake forever, and if you correct it but reuse it in other contexts, the LLM won't suddenly understand that it doesn't make sense in the context.
Just an example, I wanted to have some quick and dirty throw away code for generating a graph, and in my prompt I mixed X and Y axis, and of course got a function that didn't work as expected. If this was a human doing it, it would have been quite obvious I didn't want time on the Y axis and value on the X axis, because the graph wouldn't make any sense, but the LLM happily complied.
>Is the main benefit that we can do all of this in natural language?
Hit it right on the nail. That is pretty much the breakthrough with LLM has being. It does allow the class of non programmer developer to be able to tasks that once was only for developers and programmers. Seems like a great fit for CEO and management as well.
Generally whatever code is produced fails utterly to describe, at all, let alone concretely / repeatedly / verifiably, "what the exec had in mind", because the exec devotes all of 10 seconds of thought to communicating it.
The actual breakthrough might be social, in that "vibe coding" is exciting enough, and its schedule flexible enough, that it can actually coax high-level decision makers into putting real thought into what they want to happen.
It's not the non-determinism that was bothering me, it was the decision making capability. I didn't understand what kinds of decisions I can rely on an LLM to make.
For example, with the resume screening application from the post, where would I draw the line between the agent and the human?
- If I gave the AI agent access to HR data and employee communications, would it be able decide when to create a job description?
- And design the job description itself?
- And email an opening round of questions for the candidate to get a better sense of the candidates who apply?
Do I treat an AI agent just like I would a human new to the job? Keep working on it until I can trust it to make domain-specific decisions?