Building Agents Is Trivial Now, Context Is the Next Frontier — Jeff Ng, Unblocked
AI Engineer · 13 min · 143 sentences · from YouTube's caption track
Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.
- 00:01[music]
- 00:13Hi all.
- 00:14Uh my name is Jeff.
- 00:15I'm a founding engineer at Unblock, and I'm here to talk to you about how building agents has actually gotten pretty easy.
- 00:22But unfortunately, they still get things confidently wrong.
- 00:26So, 6 months ago, it required a team's effort and basically a quarter to build out an agent.
- 00:33Um an agent is more than just models and tools.
- 00:37It's the models, the tools, and everything required to build out a production service.
- 00:43Here are some examples of the different systems that were necessary in order to build something out.
- 00:49Each one of these was basically its own company or at least a company function.
- 00:54Not going to go through each one of these, but you know, a few that stood out to me.
- 00:59First one, checkpoint and state persistence.
- 01:02Agent runs, they're typically long-lived and stateful.
- 01:06Um unfortunately, uh infrastructure itself though, those that's ephemeral.
- 01:12Crashing without durability can actually lead to a lot of state loss.
- 01:16And that state kind of includes things like message history, tool calls, as well as, you know, where you are in the loop.
- 01:26Without these things, you can't resume the session.
- 01:29Uh one option is, you know, maybe you want to restart the session.
- 01:32Unfortunately, that's actually quite expensive as well.
- 01:36Uh you lose out on all the tokens that you'd originally used, um as well as, you know, latency.
- 01:43Uh from a user experience standpoint, you've already triggered that session.
- 01:47Now you have to wait for the whole thing to go again.
- 01:50And lastly, side effects.
- 01:52Your agent might have performed some side effects, and now there's a chance of those doubling up.
- 01:58So, next thing, sandbox infrastructure, right?
- 02:01So, as we all know, we're running more and more agent-generated code as well as third-party code.
- 02:07This gets all run on your infrastructure, and due to that, there are some complexities.
- 02:13Uh because of that, we want to introduce isolated sandboxes, which help prevent uh unnecessary reads of environment secrets, unnecessary network access, you know, just in general, we don't want to take down the shared host.
- 02:29And then, observability.
- 02:31How do we answer the question, "Where did this fail?"
- 02:35Typically, this includes tracking logs and traces from across half a dozen systems.
- 02:43Everything I've mentioned here, none of this actually improves an agent's capabilities.
- 02:48They're all taxes one has to pay in order to get an agent out there to play the game.
- 02:56Thankfully, things have changed quite a bit.
- 02:59Um the whole ecosystem has matured quite a bit, and cloud infrastructure players such as Cloudflare, uh Vercel, AWS, they've gone and taken some of that complexity away and built primitives
- 03:13that these frameworks, Flu, Vercel E Maestra, with these together, you know, they've taken a lot of complexity away, and you can focus more on building the actual agent itself.
- 03:25The core logic that actually helps you and your team and your customers.
- 03:33So, here's an example of one.
- 03:36Uh I played around with Flu and Cloudflare, and as you can see on the left-hand side, you know, we basically handle everything as mentioned before.
- 03:45So, the primitives plus the framework lead to a situation where it's actually not that much code to define an agent.
- 03:53Uh one of the things I was shocked at when I first took a look at the documentation.
- 03:57To get in the details, all you really have to do when defining agent is A, deciding which model you want to use.
- 04:04B, the instructions or, you know, the system prompt.
- 04:07C, the tools that you want to ask the agent to have access to.
- 04:12Skills, the things I can do.
- 04:15As well as the sandbox location, where things are being run.
- 04:19So, uh to give you an example of this, I've actually gone and built out a issue enrichment system specifically for Linear.
- 04:31So, what this does is, given a Linear ticket and access to your code repository, it'll go out, you know, fetch the Linear ticket, determine whether or not it's a feature
- 04:41or a bug.
- 04:43From there, it'll do some code searching, provide all that context to the agent, and then come up with a plan of next steps.
- 04:51On the left-hand side here, this is a issue that one of my colleagues, uh smart engineer, had posted, I think, a month ago.
- 04:59Uh to summarize it, what had happened was, we had some pretty serious degradation in our agentic QA pipeline.
- 05:06Time to first character was taking 3 to 4 seconds when it should realistically be in the hundreds of milliseconds.
- 05:13So, let's see what happens when, you know, we put this through the system.
- 05:20So, as you'll see here, I've set up the agent to go fetch the agent.
- 05:24I've given it the skills and tools to actually go and fetch the code, search the code, and query against that.
- 05:31That's being passed back to the agent, which is doing some reasoning against that right now.
- 05:36And then, wait a little bit.
- 05:38At this point, we've updated the Linear issue ticket.
- 05:42The recommendation here is to re-enable our async dispatch, which makes sense.
- 05:47It allows us to run a lot more of our QE pipeline in parallel on a single machine.
- 05:52Sounds great, right?
- 05:54Unfortunately, uh this is wrong.
- 05:57This had actually caused an outage a few days ago in one of our uh support engineers had explicitly disabled this uh before this ticket was uh shown.
- 06:07So, where did things go wrong?
- 06:11Why was the uh you know, why did I get it wrong?
- 06:15The agent I had written, it didn't have a full picture.
- 06:18It was missing the context from the Slack discussion that happened after the issue where the engineers came together, uh went through the actual outage, what went wrong, what was the fix, and the next steps.
- 06:31It also was missing the postmortem uh linear ticket, which came as a result of that.
- 06:36In general, it had a narrow understanding of the problem.
- 06:41This concept of missing knowledge and intent that's stored across an organization and different systems is something that comes back and back again.
- 06:49And since this was deployed as a background agent, this is going to make that mistake silently in the background, misinforming both my teammates and potentially other agents.
- 07:00So, I guess the next question is, why don't we run into this locally?
- 07:03You know, we all use agents locally, we don't necessarily run into these issues.
- 07:08Well, you, the human, the engineers, we currently act as that context layer.
- 07:14When working with an agent, you know, you're there to ask questions, catch any errors, and supply the missing facts on every single turn.
- 07:23A person knew why the code is the way it is, what broke last time, and what we've decided to do about it.
- 07:30The agent, though, it only has what's on the right-hand side, right?
- 07:33It has instructions, the tools and skills we specifically gave it, the code, as well as the ticket in front of it.
- 07:40When an agent is in the loop, well, sorry, when a human is in the loop with the agent, we're there to catch the steer.
- 07:47Ultimately, we're there to babysit the agent.
- 07:50But as agents have gotten trivially easy to deploy as I showed earlier with Flu Cloudflare, the without the human in the loop, this issue becomes more and more prevalent.
- 08:02This missing context becomes a sign of failure.
- 08:05You know, all that intuition and knowledge that we've had as humans needs to be replaced.
- 08:10Something needs to carry the load.
- 08:14So, that thing, that's a context engine.
- 08:17A context engine is a system that provides task-relevant information based on who you are and what matters.
- 08:25It also resolves all the conflicts across multiple data sets.
- 08:29It understands your access rules or the agent's access rules and only uh respects that and only provides information that's relevant.
- 08:36And most importantly, it delivers a synthesized understanding that an agent can act on, not just a list of documents that I have to reason upon itself.
- 08:47So, how does this context engine work?
- 08:50Well, let's take a step back.
- 08:52What does an agent actually need?
- 08:55An agent needs Clearly, it needs context outside of just your source code.
- 09:00Think about everything that you need to work day-to-day.
- 09:03It's not just the code.
- 09:05It's, you know, the Slack discussions where decisions are made, the documentation where we show all the best practices.
- 09:13All that is important to your day-to-day process, and that's true for your agent as well.
- 09:17So, what we do here is we connect everything.
- 09:19The docs, code, tickets, conversations.
- 09:23We then build a model of your organization, of your system.
- 09:27And we piece how all these things work together and make it generally available to your agents.
- 09:32From that model, the agents are only provided a a of that data, which has been reconciled, ranked, and scoped to your permissions.
- 09:40Scattered context comes in, grounded context comes out.
- 09:45The obvious next question is, why can't we just do this with MCP, right?
- 09:49You could connect a Slack MCP, a Linear MCP, a GitHub MCP, and with that, all that data is accessible.
- 09:57MCP is great at access, but access isn't understanding.
- 10:02An MCP hands the agent the raw results, and you know, you're now dependent on that agent to actually decide what to believe in.
- 10:09You end up flooding the agent with irrelevant data, filling up the context window, and you know, overall context costs just go up.
- 10:17It also leaves the local agent to handle conflicts in data.
- 10:21You know, your Linear MCP and your Slack MCP may come back with different results.
- 10:25You're just leaving the agent to make that decision somewhat ad hoc at the moment.
- 10:32So, back to the original problem I had earlier.
- 10:35This is the same file, same engine, but now we've connected the context agent.
- 10:40Uh what we do here is is we're currently prompting Unblock to do some research on the ticket and provide that context to the agent.
- 10:49So, let's see that in action.
- 10:54Sorry about that.
- 11:01So, here we go.
- 11:02Uh we're doing the very similar thing.
- 11:04We're fetching the Linear ticket.
- 11:06But, you'll notice here that we're actually calling the Unblock context engine.
- 11:09And what's done here is actually it's found the relevant Linear postmortem, as well as a Slack conversation where we've had the entire discussion between the engineering teams.
- 11:18And as part of that, we've returned a understanding, and that's now been provided to the agent as a summary.
- 11:26So, the agent no longer has to actually reason from those documents.
- 11:31Uh at this point, you'll notice here the agent now has been updated.
- 11:41Uh the recommendation has gone from breaking and causing another issue to actually preventing a another outage.
- 11:53So, the example I've shown here is issue ticket management, but this context layer can actually go a lot further.
- 11:59Uh for example, coding.
- 12:02Everyone here does uh coding with uh cloud code or cortex.
- 12:05Using an Unblocked context engine to actually hydrate the agent plan goes a long way in terms of saving context and tokens.
- 12:13Uh code review.
- 12:15It makes the PRs look as if they've been reviewed by an expert on your team.
- 12:19Who doesn't like that?
- 12:21As well as surfacing the correct answers to your customer success team as well as sales.
- 12:27In general, there are many instances where you might want an agent to have institutional and tribal knowledge of your organization.
- 12:37Just want to leave you on this.
- 12:38I think this quote encapsulates what we're trying to solve at Unblocked.
- 12:42The gap isn't intelligence, it's context.
- 12:46So, thank you.
- 12:48Uh I'll be at booth P16 along with the rest of my team if you guys have any questions.
- 12:53There will be additional breakout sessions later tomorrow, I believe, that goes a lot more in depth about actually how the context engine works and you know, how you can benefit from that.
- 13:03Cheers.
- 13:04[applause]