Fragments: October 21

Gergely Orosz is frustrated at those that entered his explicitly “No AI” essay competition and used AI. He goes on to say:

When I start to suspect some part is AI about someone I don’t know: how can I tell how much of it is? And how much time and effort do I want to invest to figure out? I fear most people do not realize this last part: that when it takes time and effort from others to figure out what % is AI, and what % is YOU, then I will simply assume it’s probably 100% AI and 0% you So when producing anything that is meant for other humans, if you use even a little AI, you risk the assumption that it is all AI and pointless to pay attention to

In general, I agree with him, and react much the same. Once I hear LLM Voice, I flip the bozo bit and check out of the post.

But as I do this I have caveats. How accurate is my neural net at AI-detection, are humans taking on AI-ish elements in their normal communication? And more seriously there are some valid uses for AI. Jim Highsmith’s story of his second brain helping him deal with Parkinson’s is one. Another is folks who don’t know English well, using AI to translate. Am I being unfair when I flip the AI voice bit when I read/listen to them?

❄ ❄ ❄ ❄ ❄

I was sad to hear that the Grace Hopper Celebration is canceled this year. It’s an event run by Anitab.org to promote women and non-binary technologists in the software industry. Many of my colleagues have been encouraged and inspired by going to this event, which makes a refreshing change to what is often a male-dominated world. It seems the current crusade against diversity initiatives has had a big impact on funding. We are still a long way from where we should be on gender diversity in our profession, and losing an event like this only makes things more difficult.

❄ ❄ ❄ ❄ ❄

I’ve always found Cindy Sridharan’s writing to be worth reading, and she’s broken a quiet period with a monster of an article: How to effectively debug when you no longer understand the code. Since Medium estimates it as a 64 minute read, I didn’t jump in lightly, but settled down on a flight from Amsterdam to Stuttgart. I’m glad I did, because there’s lot of good material in there, and I’d struggle to find anything to cut.

In the article she uses three recent bug hunts to surface principles for how to best use an AI tool for debugging. Much of this is governed by this wise observation:

Agents are not humans. They’re far more capable than humans when it comes to many things, and we should be leaning into these strengths, rather than trying to get agents to replicate human patterns of problem solving which might be suboptimal in agentic contexts.

One conclusion from her experiences is that the code often isn’t the best thing for agents to look at

having an agent start an investigation by first reading the code is an anti-pattern. In fact, reading the code first to formulate hypotheses about a bug should always be the very last resort of the agentic investigation process, not the starting point. An agent should first collect all available evidence about the bug, and only then formulate the hypotheses from the code that might best explain what’s being observed.

She distinguishes between a bottom tier of facts: raw data that agent can find about the behavior of the system - and an upper tier of hypotheses: inferences that the agents make based on that data.

Diagnosing a bug now becomes a problem of finding the hypothesis in the top tier that satisfies every fact from the bottom tier.

The agents need to be steered towards the hypotheses that are the likest cause of the bug and then subject these hypotheses to validation. She has a three-step process to do this. First she identifies the most important facts, the signals that might explain or identify the bug.

The factual tier has many data points. Not all of them are equally valuable. In fact, some of it might be active noise that doesn’t help an agent to be steered towards most promising hypothesis. The agent first needs to identify the data points in the factual tier that are actually related to the bug. Agents do this best when they are given a high-quality control

A control is a behavior of the system that doesn’t exhibit the bug. This may be requests that trigger the bug compared to those that don’t, or different builds of the product, or the same build in different environments.

With signals highlighted, she then focuses on the hypotheses that are most promising, because they fit best with the signals. A hypothesis should satisfy all the facts, the most valuable signals are those that are only satisfied by a few hypotheses. A table of hypotheses and signals helps visualize the strength of the signals and the likelihood of the hypotheses.

The third step is then validating the promising hypotheses against every fact, treating each fact as constraint on the solution.

Across the three bugs chronicled in this post, my most valuable contributions weren’t knowledge of the code. They were picking a control, choosing a constraint, and rejecting a hypothesis that hadn’t been validated. The engineers who thrive in an agent-native world will be the ones who are good at designing such verification loops, whether or not they understand the code it verifies.

This directing has to remember the opening point that agents have different capabilities to humans.

A human wants to deal with less data. All abstractions we currently have (aggregation, visualizations etc) are designed to help humans deal with less data. An agent, however, needs more raw data; its strength lies in processing huge volumes of data at a rapid clip. Aggregation — the thing that makes a dashboard useful to a human — is often the thing that destroys the value of the signal for an agent

Agents’ ability to consume lots of raw data also affects how we build systems. More logging gives agents more data to chew on.

And thus far, the human is still necessary to direct the agent

In each of the three bugs chronicled in this post, the agent was more than capable of getting to the root cause by itself, but it didn’t do so. It didn’t set up a control in the “latency bug” until I asked it to

While it’s a long post, it’s engagingly written and full of useful details. I hope my little summary encourages you to give it the read it deserves.

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论