Machine transcription with reviewed terminology and names. Some recognition errors may remain. Timestamps refer to the original livestream.
8:09:22Hello, hello.
8:09:31Hello, New York.
8:09:36Hi, Mitch. I'm one of the two co-founders of Basis.
8:09:39We are based right here in New York City.
8:09:42And the thing that we focus on is how can we get agents to do production scale work reliably enough
8:09:52so that we are trusted and used end-to-end by accounting firms across the country.
8:09:59So
8:10:00a lot of our research really focuses on this.
8:10:02How can you get these agents to do real work in the real economy?
8:10:06So I want to start with a question, which is, if you're at this conference,
8:10:13honestly, if you're watching this talk, you probably
8:10:16increased your own productivity a lot.
8:10:18You're using Co-Work, or Codex, or Claude Code, whatever it is.
8:10:23And yet, if you go look at the average company, the average enterprise, the average firm,
8:10:30their productivity hasn't gone up 10x, 100x.
8:10:34I know my productivity has gone up maybe 100x.
8:10:38But if I were working inside of a company, it wouldn't be anywhere near that order of magnitude.
8:10:43And so why is that?
8:10:46At basis, one of the sayings we have is that humans are already used to working with non-deterministic systems.
8:10:52It's just those systems are normally their co-workers, not their computers.
8:10:56And so I actually think to answer this question,
8:10:59it's useful to maybe look at the existing way we organize intelligent systems,
8:11:03which are companies.
8:11:05So how do organizations scale their own productivity, right?
8:11:13Organizations need to trust that the people doing the work at every level
8:11:18are doing it in a way that is going to produce good outputs consistently at scale, right?
8:11:25If you look at this image here, here I'm showing an accounting firm,
8:11:28but this could honestly be any company, traditional company.
8:11:31The person who is the head of the firm,
8:11:34they have literally no idea about the exact day-to-day of the people at the very bottom.
8:11:40And yet, somehow, they trust the work is going to be done.
8:11:43How does that happen?
8:11:45it doesn't happen through deterministic systems right people are not deterministic
8:11:50they're intelligent entities and instead there are processes that are put in place and those
8:11:55processes if we believe the people who you know put them in place think that those processes will
8:12:01generalize to good outcomes then they can be comfortable that even though the people executing
8:12:07the processes are not deterministic you will generally get to good outcomes if you follow
8:12:11the process. This is true, by the way, even in the smallest step. So in this example,
8:12:17earlier I was showing the process of maybe doing the monthly accounting work for a client at an
8:12:22accounting firm. But even within that process, say you wanted to see how do I reconcile the cash?
8:12:28Well, I need to get the bank data. And even that has a process. The process could be really basic.
8:12:35It could just be use the approved software to extract the data. But there's still some process
8:12:40that is put in place.
8:12:41You wouldn't expect the firm to just let anyone Google,
8:12:45you know, extract PDF and then just use whatever they want
8:12:47to go extract it, because now you wouldn't have process.
8:12:53Now let's talk about agents.
8:12:58As I said earlier, everyone already has
8:13:00Cowork, ChatGPT, Codex, Claude Code,
8:13:03but where is that productivity?
8:13:06Our opinion is there are two main problems
8:13:09that come with what I'll call coding-style agent products,
8:13:13where you're working with an agent
8:13:14and you just tell it to go and do something.
8:13:17The first problem is that there is a competency gap.
8:13:21Because agents, as you think of them today,
8:13:24they outsource the complexity to the user.
8:13:28If I'm the user, I now have to manage my skill and memories
8:13:34and think about when I should use the agent.
8:13:39I have to have theory of mind over it.
8:13:40This is really hard.
8:13:42And for those who are here, maybe you guys find it easy.
8:13:45But I promise, for the wide majority of knowledge workers,
8:13:49they have no idea how to do any of this.
8:13:53And there's a second problem, which is there is a process gap.
8:13:57If you are saying, hey, user, here's your agent.
8:14:02Do what you want.
8:14:03Well, now suddenly, the way the work is being done
8:14:06is essentially up to whoever the user is
8:14:08to customize the way the agent is behaving,
8:14:11which goes entirely against the way that organizations scale.
8:14:16The process should be coming from senior leadership down,
8:14:19not from any individual employee
8:14:22deciding how they're going to do their job.
8:14:24Going back to my example,
8:14:26if every employee just made up their own way of extracting data,
8:14:30even back in 2018, that wouldn't be a good outcome.
8:14:34And so we believe strongly
8:14:36that the key to building production agents
8:14:39that actually do work end-to-end
8:14:40is solving these two problems.
8:14:42You have to solve the competency gap
8:14:43by making it simple.
8:14:46To the user, you shouldn't even have to know
8:14:48it's an agent, or you probably know,
8:14:50but you don't have to really feel it.
8:14:53It should be as simple as just working with a coworker.
8:14:56You just tell it what you want it to do,
8:14:57and all the things you expect to work should work.
8:15:00And the second is the process gap.
8:15:01You need agents to be reliable.
8:15:05Not having a stroke of genius one day and forgetting something the other day.
8:15:08It's not about being perfect.
8:15:11Humans are not perfect.
8:15:13Nobody is looking for perfect.
8:15:15What you're looking for is reliability and consistency and trustworthiness.
8:15:21So what does that actually look like?
8:15:24We think that to be simple and reliable,
8:15:28where you don't have to think about what to do,
8:15:33the agent can just do it for you without the user knowing the internals.
8:15:37To do it the same way consistently, you have to be opinionated.
8:15:45Just to show you actually one slide back here,
8:15:48I want to point out that getting it right isn't actually the main task.
8:15:52Because again, humans are imperfect themselves.
8:15:54The point is to do it in the similar way.
8:15:57It's okay if you can't do something.
8:15:59But you should be consistently able to not do something.
8:16:02And then you get better, just like a person does.
8:16:04If you suddenly one day are an expert at something,
8:16:07and then you miss something very basic that would be expected,
8:16:10now you're not reliable.
8:16:13So you have to be opinionated.
8:16:15What's an example of an opinion?
8:16:18Let's say we have an agent, and we need to go and read a PDF.
8:16:23So in this case, what is the best way to read a PDF?
8:16:26There's many ways.
8:16:27You can throw it into a VLM.
8:16:29You can go write some Python code and use an open source OCR library.
8:16:32You can work with one of the many OCR-specific model providers.
8:16:37You could do an OCR, and then you could have the VLM check its work.
8:16:42You could have five VLMs check its work.
8:16:44You could do 100 VLMs and take the best event.
8:16:46There's literally infinite possibilities here.
8:16:49And so if you just said, agent, extract PDF, you might get good outcomes, but they're not
8:16:56going to be reliable.
8:16:58Not because the process it did was bad,
8:17:00but because the process it did was not opinionated.
8:17:08So the way we develop opinions
8:17:11is you use initial intuition.
8:17:15Some things, you know what the opinions are from expertise.
8:17:17For example, if I'm trying to get an agent to do tax work well,
8:17:23I know that if the agent goes and reads the primary source
8:17:27before returning to the user,
8:17:28it is more likely to be accurate.
8:17:31I don't need a set of evals to tell me that.
8:17:33I don't need to divine that from first principles.
8:17:36We know that, right?
8:17:38I know that if I have an agent make a PowerPoint,
8:17:40if it takes a picture of the PowerPoint
8:17:41before it returns to the user,
8:17:43it is less likely to have a formatting issue.
8:17:46That is obvious.
8:17:49And so there are lots of different ways to develop opinions.
8:17:52And one of the key points here I'll just make before I move on to talking about how to use the opinions is that the opinions are not just about accuracy.
8:17:58We just talked about the example of taking a picture of a PowerPoint.
8:18:02Well, that adds latency.
8:18:04You may not want that.
8:18:05Maybe the agent only makes formatting mistakes one out of 100 times, and you're okay with that.
8:18:11And so, therefore, you don't have to take a picture of the PowerPoint.
8:18:14The point isn't exactly what the opinion is.
8:18:17And this talk, we're going to focus not on how to develop opinions, but why opinions matter.
8:18:21and then how to leverage those opinions as you scale in production.
8:18:29So say you have a bunch of outcome-based evals.
8:18:33And when I say outcome-based evals,
8:18:35I mean what we traditionally think of as evals.
8:18:37It has a right answer.
8:18:39We have some rubric.
8:18:40We're trying to judge what the agent did.
8:18:42How do you know that the evals generalize to production?
8:18:47You might have 1,000 cases or 100 cases.
8:18:50But in production, if you're doing real work,
8:18:51you're going to have hundreds of thousands of situations.
8:18:54And that's only going to increase as the trajectories get much longer
8:18:59because the amount of decisions that are made in a trajectory
8:19:04just grow exponentially as the long horizon abilities of agents increase.
8:19:11And so I can't prove, if you look at all these distribution of trajectories,
8:19:16you can't prove every one of them is correct.
8:19:19You don't have a ground truth for every trajectory.
8:19:22But you can potentially look at the trajectories to decide if the behavior, the opinion that
8:19:27you have, is actually happening.
8:19:30And you can then infer that if it's actually happening, it's more likely to generalize
8:19:35to production.
8:19:36It's not perfect.
8:19:37You don't know for sure.
8:19:38But at least you are having an opinion.
8:19:42Let's run through a real example.
8:19:44So let's say that I, for a behavior, this is an accounting example, where if there is a mistake in the bank reconciliation, I
8:20:00don't want the agent to post an entry to make a tie.
8:20:04I want it to explain the difference instead of putting a plug.
8:20:09Again, this is subjective.
8:20:10You might want the other way.
8:20:12But what you don't want is a customer getting one way one time and another way the other time.
8:20:17And so what would you do?
8:20:18Well, first, let's understand what governs the behavior.
8:20:22The behavior is not just you write the two sentences into your system prompt and it just works.
8:20:27That might work for very simple, narrow agents.
8:20:29But when you're building these big agent systems, the behavior is actually a combination of the system prompt,
8:20:35your progressive disclosures, potentially tool descriptions, obviously the training of the model.
8:20:41There's a lot of things that govern the behavior.
8:20:44And one tip, by the way, I have for when you think about building production agents is
8:20:47really think of the context the agent is going to see as it's working
8:20:51as runtime training data.
8:20:54The word prompt, I think, trivializes it a bit.
8:20:57At the end of the day, this is the data that the agent is being trained on at runtime.
8:21:01Not literally trained on, but effectively trained on.
8:21:04And so you want to care about every single token
8:21:06and understand how that data causes the agent to behave in certain ways.
8:21:13So when you're putting behaviors into production,
8:21:17It might be very difficult for one behavior to put it in exactly one paragraph that you
8:21:22know exactly because, again, the behavior is all of the data at once, not just one thing.
8:21:28And one of the things that we developed at Basis was this concept of a behavior spec.
8:21:35And the idea of a behavior spec is essentially saying, before we update the context or write
8:21:41the context, what do we actually want?
8:21:45What is our intent?
8:21:46You can kind of think of this a little bit
8:21:48as like a product spec for the agent era.
8:21:51And you can't write, you shouldn't be writing every detail down.
8:21:53You should be taking the most important opinions and putting it.
8:21:56Because if you put everything, you'll
8:21:57be duplicating a lot of states.
8:21:59So you define the ones that matter the most.
8:22:01And then you can use them as a way to align your team
8:22:07from a spec perspective.
8:22:08But then you can also use them as a rubric.
8:22:10And you can say, in this particular trajectory,
8:22:13whether that is in any trajectory that doesn't have a ground truth.
8:22:18Did the agent get into a situation in which this behavior was relevant?
8:22:22And then if so, did it actually exhibit the behavior?
8:22:27And this way you can scale the amount of signal that you get
8:22:30on your trajectories far larger than trying to increase
8:22:34the amount of outcome-based evals, ground truths, and rubrics that you have.
8:22:37Those are really important.
8:22:38But you cannot scale those anywhere near as fast
8:22:42is you can scale the ability to supervise what the behaviors
8:22:45of the agent are.
8:22:48Let's just take a quick example here.
8:22:52This is actually the second concept,
8:22:55which is called forking, which we can combine here
8:22:57with behavior specs to think about.
8:23:00Forking, if you've ever used Claude Code or Codex, the web
8:23:04apps, there's this little fork icon under each message
8:23:07where you can essentially create a copy of the agent
8:23:10using the same thing, which works really well
8:23:12on your local computer.
8:23:12It's hard to build a system that does this in the cloud
8:23:15perfectly with recreating the database environment
8:23:18and recreating the prompts, all the different environments.
8:23:23But forking is another tool that we use to check the behavior.
8:23:27So a flow that you can imagine is saying,
8:23:30we had a trajectory.
8:23:32Could be in an eval set.
8:23:33It could be in testing or in production.
8:23:36And it failed the behavior eval.
8:23:38And now you're trying to understand why.
8:23:40Why did it fail the behavior eval?
8:23:43Why did it not exhibit the behavior?
8:23:45And then you can go into the trajectory,
8:23:47go right before the point in which the agent made the decision
8:23:50that was in contrast to the behavior,
8:23:52assuming, again, your behavior is good
8:23:54and it's actually producing signal,
8:23:57and then you can fork it.
8:24:00And when you fork it, you can ask the agent,
8:24:04or you would fork it right after it made the decision.
8:24:06You could ask it, why did you do that?
8:24:08or you can go and update the context of the agent
8:24:12and see if that improves the behavior.
8:24:15And so with forking, you can start to actually take the signal
8:24:18and start to figure out, okay, how can we then improve the harness
8:24:21to now leverage the signal?
8:24:24Versus if you're just looking at a signal from an outcome-based eval,
8:24:28you can't do that anywhere near as easily
8:24:30because it failed the outcome.
8:24:31How do you know why?
8:24:33You have potentially 1,000 inference calls
8:24:35in your five-hour-long agent trajectory run.
8:24:39And then we have a last tool that I like to talk about.
8:24:41This is actually my favorite, which is called simulations.
8:24:45It's going to sound silly, but I promise it's very effective,
8:24:48which is that you can, when working with coding agents,
8:24:51ask the coding agent to make a subagent
8:24:54that pretends to be your production agent.
8:24:57And you have to tell it to not cheat,
8:24:59and you give it the system prompt and the skills,
8:25:01and you render everything perfectly.
8:25:02And what you can do is you can ask it
8:25:04what it would do in some scenario.
8:25:06You can give it the situation.
8:25:07And see if you can recreate the situation
8:25:09that you saw in your eval or in production.
8:25:11And if you can recreate it,
8:25:12now you can tweak your context
8:25:14to see if the subagent would change its behavior
8:25:17based on your tweaks.
8:25:19And the reason to do this,
8:25:20it's obviously far worse than forking,
8:25:22but you do this because this is much cheaper,
8:25:25much faster,
8:25:25and allows you as an agent builder
8:25:27to really easily iterate on ideas
8:25:30without needing to go through the expensive process
8:25:32of actually forking an entire environment.
8:25:36And you can do this today without building anything.
8:25:39I did this for literally a year and a half plus
8:25:43before we built forking into our internal systems.
8:25:47And the main idea here is understanding
8:25:50that if you look at the distribution from earlier,
8:25:54you're trying to understand,
8:25:55is the agent generalizing to that distribution?
8:26:00And so you don't know purely based on the outcome evals.
8:26:03You can try to choose the best outcome evals
8:26:05that should represent the curve, but you don't really know.
8:26:08And so supervising the process through some of these methods
8:26:11gives you some additional signal in order to understand
8:26:14if it's generalizing properly.
8:26:17And what's really cool is as you start to get more signal,
8:26:22you can actually start to close the loop.
8:26:26And an opinion is what lets you do that, right?
8:26:28If you don't have opinions about your system,
8:26:30you're not going to be able to develop that signal.
8:26:34And now if we go back to the firm,
8:26:36we talked about supervision,
8:26:38we talked about how the agent,
8:26:41if he's opinionated, can be more reliable
8:26:43and actually can be simpler.
8:26:46What that means is the agent,
8:26:47maybe it starts doing something narrow,
8:26:49but because people will work with it,
8:26:52they see that it's easy to use,
8:26:54and they see that it's reliable.
8:26:55As it gets better and better, they will trust it more.
8:26:57It's just like a co-worker.
8:27:00You have a coworker, day one.
8:27:01Imagine someone sends you a PR.
8:27:04You're not going to, if it's, you're looking at two axes whenever someone sends you a PR.
8:27:08It's these two axes.
8:27:09What's the blast radius of the PR?
8:27:11And what is your perception of how competent that person is?
8:27:14Right?
8:27:15If the least competent person at your company is sending you a PR that's editing a core service,
8:27:20you're going to look at it.
8:27:22If the most competent person is sending you a PR that's editing an internal document,
8:27:26you may not look at it as much.
8:27:28and so this idea is true with humans working with agents just like it is with humans working with
8:27:32humans and i think i just want to make one last point to close here which is that one of the
8:27:39things that people say when they hear this is well wait a second if you let the agents just do what
8:27:43they want won't they find a better way won't they move 37 your work and the answer is they might
8:27:50But that's not how you scale GDP and scale output.
8:27:55Nobody wants their agent to move 37 their tax return.
8:27:59They want it done reliably at scale in a way that they can trust
8:28:04and in a way that their people know how to work with.
8:28:06And so the thing I will leave you with is for agents to diffuse,
8:28:10they need to be simple.
8:28:11For teams to trust them, they need to be reliable.
8:28:15The way you get to simple and reliable is you develop opinions
8:28:18on how the agent behaves,
8:28:20and then opinions allow you to build that additional signal
8:28:23that helps you start to close the loop
8:28:25so that you can achieve self-improving agents in production.
8:28:28Thank you very much.