构建可信财务分析智能体测试框架 AI Engineer 2026-10-17

构建可信财务分析智能体测试框架

关键字 financial-analysis agent-harness trust-building determinism spec-driven-development
46 节

开场与讲师背景介绍

Francesco:大家早上好。非常感谢各位的光临,欢迎来到 AIE。我想这对大家以及我们俩来说,都是今天的第一场技术分享。

英文原文

Francesco: Morning. Thanks everyone for being here and welcome to AIE. I guess first session for everyone and for us as well.

Francesco:所以,我们想先做个自我介绍,并向大家说明我们今天将要探讨的内容。我们认为,是时候停止仅仅用电子表格来对话了。因此,今天的主题完全是关于构建一个真正值得你信赖的财务分析智能体测试框架(harness)。我们是 Francesco 和 Felipe。

英文原文

Francesco: So we wanted to introduce ourselves and tell you about what we're going to discuss. We think we need to stop talking with spreadsheets. So, this is all going to be about building a financial analyst harness that you can actually trust. We are Francesco and Felipe.

Francesco:先简单做个自我介绍。我来自委内瑞拉,在英国生活了大约七年,最近搬到了马德里。我从事数据领域的工作,同时和 Felipe 一样在一家银行工作。我最大的爱好就是在造访的每座城市寻找最棒的餐馆。所以如果各位对纽约有什么美食推荐,我非常乐意倾听,顺便到处走走逛逛。我的业余爱好听起来之所以这么普通乏味,是因为我把绝大部分时间都花在钻研技术、动手构建各种项目上,完全牺牲了个人时间。所以这就是为什么我的爱好清单会是这样。好的,非常棒。

英文原文

Francesco: A little bit of a quick introduction about me. I'm originally from Venezuela. I lived in the UK for about seven years and recently moved to Madrid. I work at data and I work at a bank as well with Felipe. I like just finding the best eateries in any city that I visit. So if you have any recommendations for New York, I'm more than happy to take them and just travel around. And the reason my hobbies sound so vanilla is because I just spend most of my time building stuff and nerding out at the expense of my personal time. So that's how you end up with a list like that. And then nice. All right.

Felipe:很高兴认识大家。我也来做个简短的自我介绍。我是 Felipe,来自巴西。我也搬到了英国,到现在已经有一年半的时间了,这是一段非常有趣的旅程。生活节奏可以说被彻底颠倒改变了,但能来到这里真的很棒。我经常讲一个故事:在决定大学读什么专业之前,我曾经每天雷打不动地弹上整整七个小时的钢琴。而当时随之而来的“自然决定”竟然是去攻读电气工程专业——毕竟谁能拒绝这样的选择呢,对吧?后来在某个机缘巧合下我进入了数据领域,因为当时有人向我展示了一个东西,那时候它还叫做 Google Data Studio。后来它改名叫 Looker Studio,但现在他们好像又改回去了,我甚至都搞不清楚到底是怎么回事了。我当时制作的第一个仪表盘简直就像一卷长长的莎草纸,它纵向拉得无比漫长,你必须不断向下滚动、滚动、滚动、再滚动才能看到内容。不过,往事就不再赘述了。

英文原文

Felipe: Happy to meet everyone. Also quick intro. I'm Felipe. I'm originally Brazilian. I also moved to the UK. It's been a year and a half now. So, it's been a fun journey. Life turned pretty much upside down. But, yeah, it's good to be there. I like to tell a story that before going to decide whether I wanted to do it in university, I used to play piano for like literally seven hours a day. And the natural decision there was to then study electrical engineering because who wouldn't, right? I ended up at some point landing in data because someone showed me something that at the time called Google Data Studio. Now it's Looker Studio, but now they went back. I don't even know what's going on. And then my first dashboard looked like a papyrus of how vertical it was. You had to scroll scroll scroll scroll scroll down to see something. But yeah, the rest is history.

Felipe:后来我在许多初创公司、敏捷小团队以及成长期企业工作过。之后我进入了一家大公司 Nubank——也许在座的有些人听说过。再后来我加入了 Monzo。在我看来,Monzo 介于高成长期独角兽与大型成熟企业之间,目前正处于极其迅速的扩张期。目前我的大部分精力都在 Monzo 负责构建内部 AI 驱动的提效方案,主要面向我们的数据团队。换句话说,我们的核心目标就是通过借助 AI 构建工具,让我们自己的数据团队变得更加高效强大。而在我不跟机器人和智能体打交道的时候,大家大概可以在某处攀岩的地方找到我,要么在户外大自然中,要么在攀岩馆里。

英文原文

Felipe: So I worked at a lot of startups and small teams and scaleups. And then eventually went to a big company at Nubank. Maybe some of you do know and then before going back to Monzo which is I would say a middle term between a scale up and a big enterprise company but it's growing so fast for now. And yeah most of my time currently has been working at Monzo with building internal AI-driven solutions for internal productivity primarily for the data team. So, we basically want to get our data team better by building with AI. And yeah, when I'm not talking to robots and agents, you can probably find me climbing somewhere either in nature or in a gym.

金融场景下的 AI 落地理念与实践经验

Felipe:关于我们今天为什么要把这个主题带给大家,还有一些出发点需要说明。我和 Francesco 都在金融服务机构的数据团队工作过,正如刚才提到的 Monzo、Nubank 以及该行业内的其他几家公司。我们现在正在这些业务场景中全力拓展 AI 的能力边界。在 Monzo,我们团队一直在从实际业务成效的角度深度推进 AI 的落地应用。我们不想为了刷 token 数量而盲目调用,如果不能带来切实的业务价值,我们绝不愿意把大量的资金挥霍在无意义的消耗上。因此,我们的技术采用是非常非常审慎而克制的,而且在这方面已经取得了非常出色的落地成果。

英文原文

Felipe: And some starting points of why are we bringing this for you today? I think both Francesco and I worked in data teams in financial services. So again, Monzo, Nubank and a few other companies in the sector. We're now pushing what AI can do there. Our team at Monzo has been working a lot with adopting AI from an impact perspective. We don't want to be like token maxing. We don't want to be spending a lot of money if that doesn't bring us concrete business value. So the adoption is very, very deliberate and we've been seeing very good results on that.

Felipe:另一方面,这也是我们一直在付诸实践的事情——特别是 Francesco,他一直在运用 AI 来让我们的生活变得更加轻松。同样地,这并不是通过那种简单粗暴的方式——比如直接架设一个开放式客户端实例(这没有任何不好),然后把所有接口一股脑连接进去;而是真正去思考:在日常生活中我究竟关心哪些事情,并且能够借助 AI 的能力来化繁为简?正因如此,我们今天在这里并不代表 Monzo 官方,因为虽然我们会运用来自 Monzo 的实践经验与认知,但今天与大家共同构建的示例是为了能够在不卷入过多专有业务背景知识的前提下,让大家在实践中切实感受这些理念。不过,如果大家对我们在 Monzo 正在构建的技术感兴趣,明天我们有一场分论坛专场,届时我们将深入分享 Agent Chip,也就是我们自主研发的内部远程智能体基础设施。那么接下来,话筒交还给 Francesco。

英文原文

Felipe: And on the flip side, this is also something we've been doing, Francesco particularly is applying AI to make our lives easier. And again not through the approach of I'm going to set up an open client instance, nothing against it, and just give it connections to everything, but actually what are the things that I care about in my life that I can get the help of AI to make easier. So this is why we say we're not representing Monzo in this example because we're going to use the knowledge we bring from Monzo but build with you an example where we can actually see that in practice without having to discuss a lot of domain knowledge. But if you are curious about the things we are building at Monzo we have a breakout session tomorrow where we're going to talk about agent chip which is our in-house remote agent capability. So with that, Francesco, back to you.

构建可信财务分析框架的核心挑战与瓶颈

Francesco:太棒了。那么再次提醒大家,我们今天整个研讨会的核心目标就是“建立信任”。这听起来可能有点反直觉,因为“信任”这个词感觉非常抽象、务虚,而这是一个技术工作坊,大家本应该坐在这里疯狂敲代码敲上两个小时。但大家会逐渐看到,我们今天会换一种全新的视角来看待这件事。因为我认为,我们已经度过了那种必须在键盘前苦干数小时才能拼凑出值得信赖之物的阶段了。

英文原文

Francesco: Cool. So, as a reminder, today the goal is trust and it may seem a little bit counterintuitive because it feels very wishy-washy and this is a workshop and you're supposed to be coding really hard for two hours. But you're going to see we're going to give it a little bit of a spin. Because I think we're past the point of having to spend hours like grinding through your keyboard to get something that you can trust.

Francesco:首先让我们从业务领域谈起。金融是一门高度定制化的领域。你有你的具体财务数据,你有你自己的投资策略,甚至有时候你根本没有任何明确的策略。此外,还有你个人对金融常识的掌握程度、你自身的具体财务境况,以及普遍存在的认知误区。当我们谈到“财务分析师”时,通常对应着一个非常明确的岗位职责定义。而我们今天对这个职业定义的涵盖范围相对宽泛——从为投资机构、投资银行等做深度研究分析的专业人士,一路延伸到个人日常的财务管理场景。但归根结底,金融的本质都是相通的。在当下,要产出一份分析报告、掌控自己的财务状况、做出一套深度分析,真正的阻碍其实已经不再是生成速度了。我敢肯定在座的很多人此刻后台可能正挂着 Claude 或 ChatGPT 在处理任务。因此,速度早就不再是瓶颈所在了。根据我们过去几个月的深入实践经验,我们坚信真正的瓶颈在于 AI 产出的结果如何与我们自身建立连接。

英文原文

Francesco: So, let's start with the domain. Finance is tailored. You have your numbers. You have your strategy. Sometimes you don't really have a strategy. And there is the knowledge that you have on finance, on your personal situation and so on or generally misconceptions. When we talk about a financial analyst, there is a very specific job description. We are being a little bit generous with that job description. So it's going all the way from doing research for investments, investment firms, banks and so on all the way to like personal use cases as well. But finance is finance, right? So right now the gap on producing something, getting hold of your finances, doing an analysis is not really speed. I'm pretty sure some of you may have some background tasks running with like Claude or ChatGPT getting some stuff done. So that's not the bottleneck. We believe that based on the experience we had over the last few months, the bottleneck now is how it connects with us.

Francesco:因此,“信任”绝对是一件我们不能想当然的事情,坦白讲,尤其是因为我们讨论的是真金白银。这是风险极高、代价最大的领域之一,我们必须投入巨大的精力来确保系统本身内置了足够的信任。坦率地说,如果金钱对你来说都不算高风险的事情,如果你觉得你可以对自己的财务难题、预算规划、资产配置等一切问题轻松一键搞定,那么欢迎你在工作坊结束后找我,我很乐意向你请教并拉你一起投资,所以稍后咱们一定要好好聊聊。话说回来,一切的起点都在于这个核心目标——赢得信任。只有真正建立了信任,你才能放心地将那些繁琐枯燥的苦力活委托给多智能体系统、智能体集群或者是智能体工厂。然而,你到底该如何去信任你所得到的结果呢?

英文原文

Francesco: So trust is the thing we cannot take for granted and transparently because we're talking about money specifically. This is one of the highest stakes topics. We need to invest in making sure that there is trust built into the system. And transparently, if money is not high stakes enough for you and you can like one-shot your money problems, your budgeting, your financing, everything else, find me after the workshop, I will buy you in into some investment ideas, so yeah, let's chat later please. So where everything starts is from the goal which is earning the trust. So then you can truly delegate the boring work to multiple agents, your swarms, your factories, whatever. But how do you trust the results that you're getting?

从底层组件到设计原则:如何自底向上建立信任

Francesco:接下来我会列举一些耳熟能详的名词,但坦白讲,这些概念其实一个都不新鲜。你们可能已经在脑子里打转,心想:“想要换取信任,不就是靠配置链路追踪(traces),或者跑循环(loops),以及各种我们经常听到的行业热词吗?” 确实,单元测试早就屡见不鲜了;让智能体先做规划(planning),我们深知这很有用;做模型评测(evals)当然必不可少;追踪可观测性链路,构建循环结构和执行图……我可以一口气列举出无数个大家认为能构建信任的组件,但它们在本质上仅仅是一些具体的底层构件而已。我们今天真正想要深入探讨的,是如何达成这种信任的顶层设计原则。要构建一个能够真正稳健处理金钱事务的执行框架,需要极其巨大的信任。因此,我们今天不会停留在讨论某项具体的特定技术上,我们不会带大家生搬硬套读某款产品的 Readme,而且我们默认大家对目前所列出的这些基础概念都已经有所了解。

英文原文

Francesco: I'm going to name-drop a few things because honestly none of them are new. You're probably already grinding thinking well you buy trust by setting up traces or doing loops or any of the other keywords we have. So unit testing, that gets old; planning with your agent, we know that that's good; doing evals for sure; traces and observability; loops and graphs. Like, I can keep naming components of how you think you can start building trust, but they are basically components. What we want to discuss today is actually the design principles on how to achieve that trust. So building a harness that actually works for money matters requires an immense amount of trust. So we're not going to be discussing specific technologies. We're not going to read you the readme of a particular product and we will assume you know some of the concepts that have been listed so far.

Francesco:最主要的是,这将是一场形式略有不同的工作坊,因为我们希望大家能够真切体会到这些设计原则在现实场景中是如何发挥作用的。因此,我们今天围绕一个非常简单的示例构建了一个测试框架,希望大家能够亲自上手体验。但是,请不要把注意力放在“哦,如果我输入这个提示词,响应速度有多么神速,UI 界面有多么丝滑炫酷”上——提前剧透一下,界面并不会很炫酷。更重要的是,我们希望大家能够切身体会到:当一个智能体被置于一个精心设计的专属测试框架下运行时,对其产生信任究竟是一种怎样的体验。再次强调,这只是一个非常简单的落地实现与演示示例。如果你们觉得这讲得太宏观、太偏顶层设计,稍后尽管当面批评我,我们完全可以在答疑环节深入讨论。回到信任这个话题——我今天提到“信任”这个词的次数可能多到我自己都要抓狂了,但我们坚信,信任必须自底向上逐步构筑。首先,你们需要拥有一个统一的共享领域模型(shared domain),包括完整的规划流程,确保你和模型始终在相同的术语与语境下对话——这听起来很简单,但做起来远比想象的要复杂困难得多。接下来是一致性(consistency),我敢肯定在座的每一位都会在这一点上达成共识,然而……

英文原文

Francesco: And mainly this is going to be a slightly different workshop because we want you to feel how the principles work in reality. So we have built a harness today around a very simple example and we want you to try it out, but don't focus on "oh if I type this then I get the response so much quicker and the UI is so slick". Spoiler: it won't be. But more importantly, we want you to feel how it may feel like having trust in an agent that has been built with a very specific harness. So again, this is just one very simple implementation, an example. You can roast me later if you think this is too top level, but we can discuss that later. So trust, and I'm probably going to run out of times I can say trust without going insane, but we think you need to build it from the ground up, right? So you have a shared domain, the whole thing about a plan, making sure that you and the model are talking in the same terms. And it sounds more trivial than it actually is. Then consistency, and pretty sure everyone in the room will be on the same page, but it's

构建可靠 Agent 系统的核心原则:证据、问责与验证

Francesco:……确保数据来源正确。因此,与其让大语言模型去硬算大量的算术题,它会执行一些工具调用(tool calling)。它会帮我们编写一些脚本,并努力找到一种能够保证输出结果一致的方法。我们同样也需要证据,基本上就是要“出示凭证”,对吧?你可以沿着链路回溯,追踪所有的决策以及导致这些决策的原因。

英文原文

Francesco: ...making sure that the numbers come from a correct place. So rather than a language model trying to process a lot of arithmetic, it will do some tool calling. It will write us some scripts. It will try to come up with a way that the results are consistent. We also want evidence where basically show the receipts, right? You can follow back and trace back the decisions and what led to them.

Francesco:问责制(Accountability)可能是一个非常敏感的话题,也许也是这些原则中最抽象的一个。但归根结底,即便你同时运行着 100 个 Agent,它们所产生的最终结果,依然必须由你来承担责任。这是我们在工作中非常严肃对待的一点。我们认为这是一种思维方式的转变:一旦人们完成了这种转变,他们所构建的系统就会随着自身一同演进,而不是把系统当成一个黑盒,只是一股脑把问题扔过去,然后寄希望于碰巧能成。

英文原文

Francesco: Accountability is probably a very spicy one and maybe the most abstract of them, but ultimately even if you're running a 100 agents, the results of what they do, you're still accountable for them. So that's something we take very seriously at work. And we think it's a mindset shift that when people make it, they start building systems that evolve with them and not black boxes that they just throw problems at, hoping that something sticks.

Francesco:最后是验证(Verification)。我们希望确保存在一个独立的视角,也就是另一种维度的审视。老实说,我经常觉得自己每年大概有三次会冒出“全世界最棒的点子”,但紧接着 Filipe 就会对我说:“求求你千万别把那个做出来,千万、千万别做。”

英文原文

Francesco: And finally, verification. So, we want to make sure that there is a separate point of view, another perspective. I would say I'm guilty of thinking I have the best idea in the world probably like three times a year and then only to have Filipe tell me, please don't implement that. Please, please, please.

工作坊初衷与真实挑战:帮我筹划婚礼预算

Filipe:我……哎呀,稍等一下。关于这一点我想补充两件事。首先,我们今天有一段非常充裕的时间可以一起合作。因此,在我们逐步梳理这些原则的过程中,能够倾听各位的经验也非常棒。如果这些原则与你们做过的任何工作产生共鸣,特别是如果它切中了你们在与 Agent 协作时遇到的任何挑战,请完全不要拘束,随时提出来,我们可以一起探讨和构建。

英文原文

Filipe: And I... Oops, one second. And I would just compliment on this bit that I think two things. The first one is we have a very generous window here to work together. So it will be very nice to learn from your folks's experience as well as we build through these principles. So if this resonates with any work you've done or particularly any challenges you've faced when working with agents, feel absolutely free to raise that and then we can build it together.

Filipe:另外,顺着 Francesco 刚才强调的观点进一步说,我们绝不是在宣称“这就是唯一的模型”。大家不会看到我们走上大舞台然后大喊:“忘掉你们过去所知道的一切吧,这才是唯一正确的做法!”这只是一个模型,一种解决问题的途径,并且它在我们的许多实际场景中都行之有效。稍后我会分享一些我们在 Monzo 银行内部的案例,Francesco 也会带来其他的具体示例。但必须再次强调,并不存在能解决所有问题的万能灵药。大家也大可以随时质疑我们——如果你觉得信任被高估了,只要把 100 个 Agent 扔给一个问题,问题最终自然就会迎刃而解,我们也十分乐意听到这样的成功案例。然而,从大量的重复实践、工作以及外部的多种应用场景来看,我们坚信:你必须构建起一个能够赋予你信心的系统,让你确信事情正在朝正确的方向推进,而不仅仅是表面上看起来正确。所以,信任至关重要。

英文原文

Filipe: And just doubling down on something that Francesco said, we're not saying this is the model. You won't see us going to the big stage and saying, "Forget everything you know, this is how to do it." This is a model, a way to approach it that has been working for us in a number of use cases. I'll share a few examples at Monzo later and Francesco has a few other examples as well. But yeah, again, there's not a single silver bullet to solve every single problem. And also feel free to challenge us. If you think actually trust is overrated, just throw a 100 agents at a problem, eventually it will get solved—happy to hear the success stories. But from repetition, from experience, and a lot of different use cases at work and outside, we do think you need to build a system that gives you the confidence that things are going in the right direction and not just that things look correct. So yeah, trust. Happy days.

Filipe:说到信任,我今天来其实要坦白一件事,我对今天的工作坊怀揣着一点“私心”。才过去不到五分钟,我就要立刻打破大家对我的信任了。那到底是什么呢?你们今天是来帮我——也就是帮 Francesco——筹划我的婚礼的。虽然听起来没人为此超级兴奋,但你们待会儿会兴奋起来的。具体来说,就是帮我理清楚支付一场婚礼涉及的财务预算问题。既然这是一场技术大会,我就想把它搞得尽可能充满“社死感”一点。所以,大家举个手吧:有谁办过婚礼?结过婚的请举手?太棒了。参加的宾客人数在 50 人以下的举手?

英文原文

Filipe: Speaking of trust, I'm here to confess that I have an ulterior motive with today's workshop. So breaking your trust immediately—what is it, less than five minutes? You are here to help me, Francesco, to plan my wedding. So nobody's super excited, but you will get excited, specifically just to figure out some stuff around the finances of paying for a wedding. And because it's a conference, I want to make it as cringey as possible. So, show of hands: who has had a wedding? Who's gotten married? Okay, awesome. Number of guests under 50?

Francesco:是的。好,还是要举下手,现在依然处于尴尬社死模式。行,很好。

英文原文

Francesco: Yeah. Okay. No, still show of hands. It's still like cringey mode. Okay, cool.

Filipe:大约 100 人的?很好。那 150 人的呢?

英文原文

Filipe: About 100. Yeah. Nice. How about 150?

Francesco:好的。

英文原文

Francesco: Okay.

Filipe:不错。200 人的呢?

英文原文

Filipe: Nice. 200.

Francesco:还有更多的,行。

英文原文

Francesco: More. All right.

Filipe:哇,大规模婚礼,厉害!这可能很容易引起共鸣:表面听起来这似乎只是一次非常简单的计算、一个十分单纯的流程,婚礼也会顺顺当当、顺理成章地办完。但是对于结过婚的人来说,你们心里大概都清楚,事实完全不是那么回事。光是做各种开销测算、搞明白账单怎么会一下子变得这么昂贵,就绝对不是一件容易的事。这里可以分享一点小故事,希望我的未婚妻千万别看到这一段——当时我们俩在算账,她说:“不对呀,每顿晚餐的人均成本也就这么多而已。”我说:“对,但除了那个之外,你上面还要额外叠加两项浮动成本呢!所以最终绝对不是那个数字。”总之,做这场婚礼的预算真是一场极具挑战性的硬仗,这么说甚至都有点轻描淡写了。我可不建议大家轻易尝试,不过话说回来,我自己反正已经上了这趟贼船了。所以今天,大家要不就是充当无偿劳动力帮我筹备婚礼,要不你们也可以自己选择做自己的专属方案。我们在一个代码仓库里放了一些内容,大家很快就能访问到它。如果你想自主选择不同的探索路径,尽管去做就好。我个人并不太推荐单打独斗,因为我确实急需大家的帮助,但最终完全取决于你的选择。

英文原文

Filipe: Yeah. Yeah. Big wedding. Nice. This is probably going to resonate, but it sounds like it's going to be a very simple calculation, very simple process, and the wedding is going to go by nicely and smoothly. And for the people who got married, probably you know that is not the case. And even running the calculations and figuring out how things got so expensive so quickly—it's not trivial. This is a little bit of storytelling, and hopefully my fiance doesn't see this, but we were doing some calculations and she was like, "No, yeah, but the cost per like dinner is this much." And I'm like, "Yeah, and you have another two variable costs on top of that. So that's not the number." And anyway, budgeting for this has been a challenge, to undersell it a little bit. I wouldn't recommend doing it, but you know, I'm already on the train. So today you're going to give me a hand with the wedding—unpaid labor—or you can do your own plan. So we put a few things in a repo that you're going to get access to. So if you want to pick your own adventure, do that. Wouldn't recommend because I do need help, but whatever you choose.

代码仓库配置与执行指引

Francesco:我们会给大家留几分钟时间来进行环境配置。大家可以直接扫描屏幕上的二维码,或者访问我的 GitHub 仓库,仓库里有具体的设置说明。很遗憾,我们在这一刻并没有提前准备电梯背景音乐。

英文原文

Francesco: So, we'll give you a few minutes for you to set this up. Just either scan the QR code or go to my repo and there will be some instructions on how to set it up. We did not plan a background music like an elevator music for this moment.

Filipe:是的,如果在环境搭建过程中遇到任何问题,请随时告诉我们。

英文原文

Filipe: Yeah, let us know if you have any trouble setting up.

Francesco:此外,如果现场有人会唱歌,现在绝对是一个绝佳的时机……

英文原文

Francesco: Also, if anyone sings, it would be a good time to...

Filipe:来一段现场卡拉 OK。

英文原文

Filipe: ...karaoke live.

Francesco:顺便提一句,大家现在暂时还不需要执行任何命令。只要确保把代码仓库克隆到你偏好的工作环境中即可,随后我们会一步步引导大家进行执行。

英文原文

Francesco: By the way, you don't need to execute anything just yet. Just make sure you have the repo in your preferred setup and then we'll guide you through the execution.

实验框架结构与方法论思考

Filipe:太棒了。好了,大家刚刚成功克隆了一个病毒——开个玩笑而已!里面虽然放了不少乱七八糟的东西,但整体目录结构其实非常清晰合理。首先,我们准备了一份指南,说明今天的工作坊该如何起步;其次,里面包含了今天这场分享最核心的示例,也就是帮我解决婚礼预算问题;第三部分是测试框架(harness)本身,这是我们亲手构建的工具,专门用来向大家展示这些原则是如何被落地的;最后,还有一个专门的文件夹,如果你今天构建的任何东西脱离了我们预设的主线任务,它们都会被保存在那个目录中。所以再次说明,这有点像是一场“自选冒险历险记”,唯一的额外风险就是万一你卡住了,我们可能无法第一时间救你,但你完全有自由发挥的空间。今天大家所做的一切都可以带回家慢慢研究,复盘哪些做法你喜欢、哪些你不赞同。特别是这个测试框架本身——呼应我们刚才开的玩笑,这个项目其实也就是搭到了目前这个程度。我们在昨天讨论时还在说,这里分享的理念以及在此构建的原则,听起来可能有点像是“我们通过给你展示一张做好的桌子,来教你如何亲手做一张桌子”。但我们真心坚信,动手去写代码或构建工程并不是最艰难的部分,最难的永远是弄清楚我们究竟该以何种底层思路去切入并解决这个问题。这就是为什么我们选择用这种方式呈现给大家。不过在接下来的过程中,我们也会时不时带大家深入到底层,掀开引擎盖看一看在我们应用的这套原则背后到底发生了什么。

英文原文

Filipe: Cool. So you just cloned a virus. No, just kidding. But a lot of weird stuff in there. The structure does make sense. So we have a guide on how we start for today's workshop. We have the example—most important thing of the talk today, helping me figure out my wedding. Also the harness itself, the thing we built to show you how the principles are applied. And then finally, there is a folder where everything you build that drifts away from what we're doing is going to get stored in. So again, it's a little bit of a pick your own adventure, with the added risk that we may not be able to help you if you get stuck, but you can. And everything you do today, you can take it home and you can check what you did and what you liked, what you didn't. And particularly the harness itself, talking to the jokes we were just making about how this is as far as this was built. Again, the principles we're sharing here, the principles that are built here—we were discussing just yesterday—can feel like we are showing you a table to teach you how to build a table, if that makes sense. But we really do believe that building is not the hard thing. The hard thing is knowing how we want to approach the problem. So that's why we're bringing it like this. But we're going to look under the hood a bit at times just to show you what's going on behind the principles we're applying.

Francesco:正如 Filipe 所说,如果缺乏这些原则,这就好比你直接对 Claude 说:“嘿,Claude,请帮我打造一家估值 100 万美元的公司。”如果你并不清楚为了达成目标所必须恪守的核心原则和决策依据,那么无论你尝试多少次,本质上都只是将结果完全寄托在凭运气偶然发生一件好事上。因此,我们想要再次把这些原则作为基石确立下来,因为它们是环环相扣、层层递进的,彼此之间具有非常严密的逻辑顺承关系:首先是建立共享的领域模型(Shared Domain),或者叫计划模式(Plan Mode),随你怎么称呼它;接着是建立一致性(Consistency),确保凡是能够或者应该稳定可靠运行的部分,都必须具备确定性;随后是拿出证据(Evidence)来支撑所有的决策来源,明确信息从何而来、相关环节是否经过了完备的测试等等,并将证据摆在最核心的位置;再然后是问责机制(Accountability),你该如何对机器正在进行的操作保持足够深入且恰到好处的把控?你绝不能完全陷入彻底的“黑盒模式”,因为那样一来你的责任担当就彻底荡然无存了——我相信在座的许多人肯定都遭遇过这种情况。但走向另一个极端也同样不切实际,比如“只要模型改动了代码,就把每一次 diff 变动都发给我,我保证会逐行进行代码审查”,现实中绝对没有任何人能做到这一点;最后则是验证(Verification)。在数据和金融领域,你往往需要一个独立的参照基准,一个可以用来核对的反事实(counterfactual)参考点。如果忽略了等式中的这一环,就意味着你完全是在凭借自己的主观偏差去运行系统,你的结果注定会出现偏差,短视往往就由此滋生。因此,梳理这些原则的目的,就是为了把我们的精力聚焦并收敛到……

英文原文

Francesco: And pretty much like Filipe was saying, it can feel akin to saying like, "Hey Claude, please build me a $1 million company." If you don't know exactly what are the principles and the decisions you're making in order to make something happen, doesn't matter how many times do you try, you're likely going to be just leaving yourself up for the randomness of something good happening by accident. So we want to anchor the principles again because they build on top of each other and we think there is a nice sequence that kind of makes logical sense. So building that shared domain, plan mode, however you want to call it. Then setting up consistency, making sure that whatever can run or should run reliably does. Then having the evidence to back up where the decisions are coming from, what information is coming through, if things are being tested and so on, and putting that front and center. Then the accountability: how do you keep a good enough grasp of what the machine is doing? You don't want to go full blackbox mode because then your accountability is gone. And that has happened to many of us in this room, I'm sure. But the other side is also not very realistic where, "Oh, for every change you make, send me the diff. I'm going to review it line by line for sure." Nobody has done that ever. And then finally, verification. So in data and in finance you often need to have a separate point of reference, a counterfactual that you can check against, and ignoring that part of the equation just leads to you running things on your own biases. So your results are always going to be skewed. There's some shortsightedness that plays into that. So these principles are just to try to funnel our efforts into...

上手实践与界面启动

讲者 A:在哪些场景下,构建一个我们能真正信任的系统才最有用?先提醒大家一下,今天肯定会有地方出 bug,遇到问题直接叫我们过去就行,我们会协助大家一起排查解决。另外,这里的某些部分有点过度设计了,今天的重点并不是传授优秀的 UI/UX 设计。

英文原文

Speaker A: Where is most useful to get something that we can actually trust? Heads up again, something will break today surely. Just call us to you, we will try to fix it with you. Some of it is also overengineered; this is not a session on good UI/UX design.

讲者 A:所以,这只是为了让大家感受一下交互流程,展示其中的潜力,我们绝不是在打造一个成熟的产品。如果哪里运行不顺,或者有任何困惑,随时举手,我们会在房间里巡回协助。大家可以先检查一下是否能够正常运行,尝试执行那条命令。

英文原文

Speaker A: Okay, so this is just to show you how it could feel, show you the potential. By no means we're building a product. And yeah, just raise your hand. Something's not working out, you're a little bit confused, raise your hand. We're going to float around the room. So you may want to check if this works. Try and run that command.

讲者 A:对。我想此时我们可以先转转看,确保大家的环境没卡住,给大家五分钟时间把这部分跑通。如果一切安装顺利,终端显示成功,你应该就能看到 UI 界面弹出来了。

英文原文

Speaker A: Yeah. And I think at this point we can just go around if things are not working for anyone and give everyone five minutes to get going with this bit. You should see the UI opening if everything goes successful with the setup works success in the terminal as well.

测试桩与分层探索

讲者 A:太棒了。那里的第二条命令会打开一个设计得非常规整的界面,供大家操作。接下来我们要演示的例子是层层递进的,就像洋葱或者怪物史莱克一样,有多层结构。我们将向大家展示一个在示例场景下运行的测试桩(harness)。

英文原文

Speaker A: Cool. And that second command there will open a very well-designed UI for you to do some stuff. Here is the example we're going to show you because this is kind of like layered, you know, like an onion or an ogre. We're going to show you an example harness being run on an example use case.

讲者 A:如果你想运行底部的命令,会看到一个更加丰满完整的示例。但如果你只运行第二条命令并停留在 UI 界面上,可能会觉得有点奇怪——为什么我让你通过 UI 来观察测试桩的行为?但这正是核心所在:它是为了向你展示在现实世界中应当如何感知和使用它。我是先在这里停一下吗?

英文原文

Speaker A: If you want to run that command at the bottom, you will see kind of like a more fleshed out example. But if you stay on the just running the second thing and just use the UI, it may feel weird that I'm asking you to use an UI to see how a harness behaves, but that's the point. The point is to show you how it feels and should feel in the real world. Should I leave it here for a moment?

讲者 B:对,我觉得可以。

英文原文

Speaker B: Yeah, I think so.

讲者 A:好的。敲键盘的声音渐渐少了,我猜大家已经执行完了想跑的命令。那我们来看看具体的步骤和测试桩的原则,其中第一条就是建立“共享领域上下文”(shared domain)。我想看一下,有多少人打开了 UI 但还没有做其他操作的,能举下手吗?

英文原文

Speaker A: Yeah. Okay. Okay, I hear less typing. I'm going to assume you've typed whichever command you wanted to type. So let's go through the actual steps and the principles of the harness, and the shared domain is the first one. Can I see little show of hands of who opened the UI and hasn't done anything else with it?

讲者 B:很好,很好,不错。

英文原文

Speaker B: Cool, cool, cool, cool, cool.

建立共享领域上下文与认知对齐

讲者 A:好的。简而言之,你的右侧有一个聊天窗口,目前基本是空白的。如果你想跟着做,比如分析某项财务担忧,这里就是切入点。本质上,我们要从想要达成的目标出发,尽可能详细地给出解释。平时大家用 Agent 可能每天都在这么做,但重点是要意识到:你和 Agent 大概率并不具备相同的上下文。

英文原文

Speaker A: All right, so long story short, you have a chat window on your right-hand side and it has nothing essentially. If you want to follow through an example of a financial worry, some analysis you want to do, that's the place to start. And basically, we want to walk from the goal we want to achieve and just try our best to give an explanation. You're probably doing this daily with your agents anyway, but focus on understanding that you're likely not going to have the same context as the agent.

讲者 A:稍等,我能前后切一下屏幕以防万一吗?好,演示。我想说明一点,多数人可能没有意识到:模型所理解的,并不一定就是你心里所想的。除非你财力雄厚,专门为你定制训练了大量专属模型,否则你对某些概念的定义,大概率和大众统计意义上的通用定义存在偏差。

英文原文

Speaker A: Wait, can I go back and forward just in case? Okay, yeah, yeah. Demo. So I wanted to explain something and I think most people don't realize the fact that what the model knows is not necessarily what you think. So unless you're very rich and you have a lot of models trained for you, likely your definition of certain things are not going to be the exact as what the majority of the population defines.

讲者 A:因此,当你查询某个术语时,模型可能足够聪明地知道该术语属于哪个领域,但这并不一定就是你的本意。所以,与模型进行来回推敲确认至关重要。如果你自己尝试的话,这个测试桩的目的就是促使你深入挖掘,挑战你的一些先验假设,提出那些你可能之前根本不知道需要问自己的问题。

英文原文

Speaker A: So if you're looking up for a certain term, the model may be smart enough to know, well, this sits in this space, but it's not necessarily the thing that you meant. So going back and forth with your model really makes a difference. And the harness is supposed to encourage you, if you're trying it out yourself, to dig deeper, to challenge some of your assumptions, to ask you questions you may not knew you needed to ask yourself.

讲者 A:我也来同步做大家正在做的事,不过我要运行的是 harness example。让我回到这里确认一下环境。有没有人完全跟不上的,还是大家都还好?好吧,也许你能帮他一下……

英文原文

Speaker A: So if you want to do... Yeah, so let me do the same thing that you folks are doing, but I'm going to do harness example. Let me go back here for a second, just make sure I have everything. Is anyone completely lost or are good? Okay, maybe could you give him a hand...

讲者 B:……趁着你跑流程的时候我来帮。后来的朋友们,我也给你们准备了二维码,没扫到的可以重新扫码获取。

英文原文

Speaker B: ...while I run everything. And for the folks that arrived later, I will give you the QR code as well, so if anyone lost that you can pick it up again.

自定义方向与重置本地状态

讲者 A:好的,在大家跟着操作的同时,我先展示两件事。当你使用婚礼示例(wedding example)运行时,应该看到的就是这个界面。我们稍后会解释这里的运作逻辑。如果你想探索自己的方向,也可以选择展示另一侧的内容。

英文原文

Speaker A: Okay, let me show you two things while we let you go with it. So this is what you should be seeing when you run with a wedding example, right? We're going to explain in a bit what's going on here. If you are choosing, just to show you as well, if you are choosing to pick your own direction...

讲者 A:那样的话,你会看到一个空白界面。在 Francesca 演示婚礼示例的过程中,你也可以输入自己想要测试桩处理的场景,比如规划自己的婚礼、筹划一次旅行、或者在公司或个人生活中做一笔新投资等等,都无所谓。只要是与财务决策相关的场景,我们都能套用同样的原则。

英文原文

Speaker A: ...you're going to see something like this where it's empty. And then what you can do is, as Francesca is going to run through the wedding example, you can say something you want to use a harness for as well. So things like, I don't know, plan your own wedding, plan a trip, plan a new investment in your company or in your personal life, doesn't matter. Anything that relates to the financial life that we can implement the same principles.

讲者 A:再稍微剖析一下底层细节:如果你需要在婚礼示例和自定义场景之间切换,只需清空 my 和 var 目录下的数据库文件即可,那里面保存着当前状态。直接删掉那个文件,然后再次使用先前的命令重新打开 UI,就能重新载入示例状态。

英文原文

Speaker A: If you ever need, again just opening the hood a bit, if you ever need to switch between one and another, like the wedding example or your own, you can just delete the... in the my and var folder you're going to have a database that's basically what's storing this. So you can just delete it. Oops. And then once you open the UI again with the previous command, you're going to get the example.

Francesca:你想打开那个干净的空白界面吗?

英文原文

Francesca: Do you want to open the clean one?

讲者 A:好的,我可以打开,没问题。

英文原文

Speaker A: Yes, I can. Sure.

输入问题与测试桩的护栏机制

Francesca:考虑到大家面对的完全是一块白板,我们先来消除一些歧义。如果你打开婚礼示例,那是一个包含所有要素的演练案例。但假设我们现在是从零开始,对吧?这里我输入一个面临的问题。你有听写输入工具吗?

英文原文

Francesca: Yeah. So, appreciating that you're literally being given a blank canvas, we want to disambiguate a little bit. So, if you open the wedding example, that's a worked-through example that has all the elements. But let's say this is where we're starting, right? And I have a problem. Do you have a dictation thing there?

讲者 A:有的。

英文原文

Speaker A: Um, I do.

Francesca:好的,我们来看看是否好用。稍等一下。基本上,右侧的聊天窗口是大家非常熟悉的界面风格,对吧?那么,面对具体问题时,你会如何向 AI Agent 寻求帮助呢?从聊天开始,提出你的问题,并开始描述你想要达成的目标。

英文原文

Francesca: Okay. Let's see if this is working. Wait a second. So, basically on that chat window on the right-hand side, it's a familiar interface, right? So, how would you go about getting some help from an AI agent for whatever specific problem? Just start with a chat. You start with a problem and you start to describe what you want to achieve.

Francesca:如果是我来做,我会说:“我有一场婚礼要办,需要支付三笔款项。一笔是 6,000 美元,另一笔金额待定,还有一笔是尾款。此外,我的一部分成本是固定开销:我知道要付给 DJ 多少钱,可能还有鲜花装饰费用,但我目前不知道会有多少宾客出席。这是我预计每位宾客每餐需支付的单价。所以我甚至不知道该怎么规划,才能确保自己能够按时足额付款。”我把最开头那段删掉。搞定。

英文原文

Francesca: So, if I were to do it, I'll say, "I have a wedding and I need to make three payments. One for $6,000, another one for an unknown amount, and another one for the rest of the money. And also, some of my costs are fixed. I know what I'm going to spend on a DJ and I don't know decorations, but I don't know how many people are going to attend the wedding. And that's the amount of money I'm going to pay per dinner per seat. So, I don't even know how to go about making sure that I can pay on time, on time, on time." I'll say let me just cut the first bit. Cool.

Francesca:所以,如果你想针对自己真正在意的问题来测试,就可以从这种描述入手。我目前所做的,只是和 Agent 一起梳理规划。如今大多数测试桩内部都会集成一种分诊机制,判断出你正在为一个问题做规划,随后它会尝试构思合理的框架,并提出一系列澄清问题来补全细节。

英文原文

Francesca: So if you want to run it for a problem that you actually care a little bit more about, you will start there, and all I'm doing is planning with the agent. Most of the harnesses today come with some notion that triages that you're trying to plan for a problem and it will try to come up with a reasonable idea, some set of questions to give some more clarity.

Francesca:测试桩本身负责决定向你抛出什么样的问题,并规范方案在付诸实施前必须具备的严谨程度。其核心思想在于:它绝不能立即沦为一个盲目附和的“唯唯诺诺者”(yes-man),全盘照搬你那些模糊不清甚至离谱的想法;相反,它要引导你深入本质,细化真正需要执行的任务。这就是构建共享上下文的核心原则。

英文原文

Francesca: The harness itself is what guides the sort of questions that you will get asked and the sort of rigor that the plan needs to have before implementing anything. The idea is that it doesn't go immediately into a yes-man mode and just implements whatever crazy idea you came up with that is very unclear, but that helps you drill down and dig into what it needs to do. So that's the principle of getting a shared context.

应对模糊输入与强制规划护栏

讲者 A:在你继续之前插一句:后排的观众看屏幕上的字号大小合适吗?文字大小可以吗?好的,多谢。不好意思,因为这是现场投屏,我得确认一下。

英文原文

Speaker A: Quick one before you continue. Is the size okay for the back of the room? The size of the text. Yes. Okay, cool. Thank you. Yeah. Sorry, I'm reading because this is like live. Okay. From the one I have.

Francesca:好的。那我可以在这里继续追加补充信息。我先跳过一些琐碎的推导,直接输入比如:“我完全没有存款,所有开销都得自掏腰包。我妈妈可能会资助我 5,000 美元。我知道每位出席婚礼的宾客成本大约在 150 美元左右,我还得花 500 美元买花,另外还得自己置办一套西装。”

英文原文

Francesca: Okay. So maybe I can keep adding clarifying information here. And I'm going to skip ahead, but something like, "I have no savings. It will come from my pocket. My mom may give me like 5k. I know the price per a person going to the wedding is around 150 and I'm paying 500 for the flowers. I need to buy my suit."

Francesca:我故意在这里塞进大量杂乱的复杂信息,并保持表述的凌乱。因为 Agent 存在的意义,就是不允许你蒙混过关、纵容你前期含糊其辞而不提供关键信息。这套机制的根本价值,就在于为你设立一道坚固的护栏,强迫你逐一梳理出制定可行方案所需的每一个关键数据点。对于下一步,我们直接采用它生成的任何内容继续推进。

英文原文

Francesca: I'm just adding a bunch of like complexity and being disorganized on purpose because the point of the agent is that it doesn't let go the fact that you're being vague in not providing the information ahead of time. The whole point of this is that it's really guardrail for you to forcing yourself to actually go through every single data point that it needs to come up with a plan. I think for the next one we just build whatever comes up to try and move on.

讲者 A:现在提出方案。

英文原文

Speaker A: Propose the plan. Now...

Francesca:好的。

英文原文

Francesca: ...is...

对齐领域知识与 Harness 的引导作用

Francesco: 有没有人正在用自己实际遇到的具体问题来尝试运行它?

英文原文

Francesco: anyone trying it out with a problem you have personally?

Audience Member: 有的。

英文原文

Audience Member: Yes.

Francesco: 好的,太棒了。你愿意跟我们稍微聊一聊你的情况吗?

英文原文

Francesco: Okay, cool. Do you want to tell us a little bit about it?

Audience Member: 哦,好的,好的,没问题。挺不错的。它问了很多问题,然后我正在……

英文原文

Audience Member: Oh, fair, fair, fair. Nice. Okay. It's asking a lot of questions and I'm

Audience Member: 没有。是的,我已经接受了它生成的方案。是的。

英文原文

Audience Member: No. Yeah. I I accepted the plan. Yeah.

Speaker B: 那么,你能切回到那个预置好的示例吗?

英文原文

Speaker B: So, can you go back to the seated example?

Francesco: 可以的,没问题。呃……

英文原文

Francesco: Yes, I can. Um,

Francesco: 为了帮大家省去在这里来来回回的大量拉扯,因为对在座的各位来说那些琐碎的反复沟通信息量并不高。这里有几个核心要点。第一点是具备那种自我认知,并迫使 harness 牢记一点:你所具备的领域知识与 Agent 所掌握的信息是不可能完全等同的。你需要尽可能去寻找这两者之间的交集与重合状态。但是,达成这种共识往往需要耗费大量来回讨论的时间,而这通常也正是消耗绝大部分精力的地方。

如果你设计了一个非常出色的 harness,它就会手把手地引导你,帮你制定出高质量的方案,把各项工作实现到位,并清楚哪些组件是关键的、哪些并不重要。反之,如果你的 harness 基本上只是“你说什么它就答应什么,然后尽其所能硬去实现”,那么你最终得到的结果就会极其不稳定、充满变数。

现在屏幕上展示的就是预先准备好的示例。顶部显示的“方案已接受”(plan accepted),本质上意味着我此前已经跟它进行了大约十分钟左右的来回沟通与讨论。此时 Agent 认为它对我提出的问题已经掌握了足够多的背景,可以将其拆解为具体步骤。因此,大家在右侧图表中看到的,就是它认为在实际做决策时所需要经过的全部决策点——或者可以说是决策树中的各个节点。

英文原文

Francesco: so to save you a lot of the back and forth back and forth here because it's not very high signal for any of you. There's a couple of takeaways. One is having that self-awareness and forcing the hardness to remember that your domain knowledge and whatever the agent knows is not going to be the same. You want to find that kind of like vin diagram superposition as much as you can. H but it takes a lot of back and forth and that's often where most of the time is spent. If you design a really good harness, it will guide you by the hand on coming up with a really good plan, implementing things well, uh, and knowing what components are important and which ones aren't. Uh, if your harness is basically like, yeah, say yes to everything I say and do your best to implement it, then you're going to get variable results.

So, this is the seated example. The plan accepted thing at the top means essentially that I already went through the back and forth for around 10 minutes or whatever. Uh and the agent feel it knows enough about my problem to break it down in steps. So what you have in the diagram over there is the all the steps that it considers as decision points in a decision tree if you may to actually make a decision

Speaker B: 如果允许我插一句的话,正如我们一开始所提到的,稍微探究一下底层原理其实很有帮助,能让大家对整体运作机制心里有数。当然,大家随后完全可以自己去深入探索,或者借助自己习惯的 Agent 来辅助了解。但是,当我们探讨 Francesco 刚才所描述的这一切时,它们其实都源自我们写在 harness 内部的系统指令。正是我们在 harness 中定义了 Agent 执行访谈交互的指令,以及它最终必须交付的产物规范。换言之,这就是把设计原则真正固化并内置在 harness 内部的具体体现。

英文原文

Speaker B: and if I if I may um I think it's it's as we said in the beginning it's nice to look under the hood a bit just to give you an idea and you can of course explore this by yourself or with your preferred agents help. Um but when we are when we are talking about everything that Franchesco is describing um this also comes from the instructions that we have inside the harness right so this is where we have the instructions of the agent performing the interview and what it must end up with so this is the materialization of the principle built beyond the harness right like built inside the harness I mean

UI 界面解析与来源追踪

Francesco: 如果你想切回到界面操作的话,随着我们在这个示例中不断推进,这里的逻辑理应会变得更加清晰直观。我们在界面中加入了一些提升体验的设计:如果你想弄清楚这个设计得如此精良的整体 UI 中,哪些元素对应着我们正在讨论的哪项原则,你只需要把光标悬停在底部,系统就会为你清晰地拆解出来。例如大家可以看到,当我们进行方案规划、共享领域上下文时,系统生成的总体方案就会在右上角高亮显示;随后它又生成了所有节点以及各个决策之间的逻辑连线,指明了我们从这一步起需要展开梳理的边界范围。那么,我们接着往下看吗?好的。台下还有人在通过对话框继续做方案规划吗?

英文原文

Francesco: if you want to go back to um to the UI. So this is hopefully going to start making more sense as we as we progress in the example. But we added a couple of quality of life things where if you want to know what elements of this whole UI that is so beautifully designed h makes sense for whatever uh principle we're discussing. You just need to hover down at the bottom and it will be broken down. So you see when we did the planning the planning the sharing the domain context it came up with a plan is highlighted at the top on the right and then it came up with all the nodes and the connections in between the other decisions and what we need to start scoping from here. So should we move on? Yes. Is anyone still doing any planning with the chat?

Speaker B: 挺好。

英文原文

Speaker B: Cool.

Francesco: 好的。我们这里有几项功能。如果你想自己动手把玩和仔细研读这个 harness,比如可以点击界面左侧小图表中的第三步(Step 3)。

英文原文

Francesco: Okay. Yeah. So, we had a few things here. If you wanted to uh play around and peruse the uh harness yourself, you could for instance go on the step three in the UI like in the little diagram on the left hand side.

Speaker B: 哎呀,抱歉,我本来想展示……

英文原文

Speaker B: Oops, sorry. I was going to show

Francesco: 打开的标签页太多了。

英文原文

Francesco: too many tabs.

Speaker B: 你可以直接点击像步骤……不……

英文原文

Speaker B: You could click on like step no

Francesco: 没错,就是图表中的第三步。点击后它会为你详细拆解这些信息的来源:模型为什么认为这是一个你需要做出决策的节点,包括它是否根据你在之前规划阶段所使用的措辞作出了某些预先假设。例如,Agent 这里提示说“你刚才是否表达过这个意思”,我可以用这个指一下……

英文原文

Francesco: step three in the Yeah. And it will give you a little bit of a breakdown of where the information came from where why the model thinks this is the node you need to make a decision of uh including if it's making any assumptions based on the language you were using during your planning with it. So for instance the agent did you say this I could point with this

Speaker B: 呃,长按住那个按钮,对。

英文原文

Speaker B: uh if you press and hold that yeah

Francesco: 太棒了。

英文原文

Francesco: awesome

Speaker B: 这可不是 AI 自动生成的。

英文原文

Speaker B: not AI

Francesco: 所以在方案中,有相当一部分内容是由 Agent 主动提出并梳理出来的。通过这种方式,你可以开始对其进行解构和辨析:明确哪些信息其实完全来自我本人、哪些是我自认为掌握的事实,而哪些则是 Agent 根据我的语言推断出来的。

如果你在同一个面板中稍微往上滚一点……对,再往上一点,还要再往上……停在那儿,好的。在这里之前发生过几轮来回拉扯,起因是我当时的表达比较模糊,而 Agent 因为抓取到了我用到的某个特定关键词,便作出了推测,认为我指的是这个意思。同样地,这虽然是一个显而易见的例子,但你可以通过点击探索,查看周边的各项关联信息。

如果我们切回演示文稿,会看到上面有一些标注信息。因为归根结底,这一切的核心目的都在于将各项原则落地转化为某种专门为“建立信任”而设计的交互形态。因此界面上会有清晰的标记说明——虽然这称不上全世界最惊艳的 UI 设计,但它能让你清楚地辨别:某项内容到底来自于你、来自于 Agent,抑或依然是一个悬而未决、需要你来拍板决策的开放问题。这样一来,你就能完全看懂整份方案是如何一步步构建成型的。

此外你还可以尝试另一项操作:返回到第二步(Step 2),直接去告诉 Agent——如果我们点击那里的节点的话。没错。在方案形成之后,你可以直接对 Agent 说:“其实你对这一步所做的假设是不准确的”,然后就此展开小范围的来回澄清。

在此我想再次让大家举手表决一下,这也算是为了强化理解和互动:谁在日常使用中有过超过 10 轮以上深层拉扯的对话经历?也就是来来回回至少对话了 10 次,直到某一刻你终于崩溃地说:“算了,让我从头来过吧,这已经完全乱套了;之前讨论过的一些关键上下文早就彻底丢光了”。经常产生这种无力感的人请举手?

看吧,大家都有。这正是我们如今使用的各类 harness 在设计上的固有缺陷导致的。现有的工具往往将一切限制在单线条的线性讨论模式中,把所有的内容都强行塞进同一个庞大的单体上下文里。而在我们这里的架构设计中,任务被解构成各个独立的细分要素,你可以针对单独的模块展开针对性探讨,完全不会因此让全局架构变得更加复杂和失控。

英文原文

Francesco: so there's there's quite a few things in the plan h that the agent put together that were proposed by it so you can start dissecting a little bit and understanding like actually this came from me this is a fact that I think I know or this is something the agent inferred based on my language. If you scroll up a little bit just on the same Yeah. more more more more there. Yeah, sure. Uh here there was some back and forth because I was being vague with the language I was using and it made an assumption that because I was using this keyword here, I meant this. Again, this is a pretty obvious example, but you can play around with clicking through, seeing things around.

If we go back to the presentation, there's some annotation because again, this is all about grounding the principles into something that feels like it was designed for building trust. So you have some notation. Again, not the best UI design in the world, but knowing if things came from you, from the agent, or is it still an open point and you need to make a decision on and you can tell how the plan has been built. You have another thing you can try. You can go back into step two uh and actually tell the agent if we click on the node there. Yeah. And you can actually tell the agent after you have sorry uh you can just tell the agent like well actually you're making some assumptions about this step that are not correct and then go a little bit back and forth.

Erh, I will still do the show of hands thing, but because of reinforcement and engagement, uh, who has been in a chat session with over like well over 10 turns, so back and forth and back and forth at least 10 times where at some point you said, let let me start from the beginning like this is not making any sense. Some stuff we already discussed like it's well gone. Who has had that feeling on a regular basis? Yeah. So, that is a consequence of the design of the harnesses we have today where they're designed for a linear discussion and to keep everything in the context as one big conversation. Whereas here the way we designed it is supposed to break it down so you can discuss individual elements without necessarily making things you know more complicated in the grander scheme of things.

Speaker B: 确实是这样。

英文原文

Speaker B: Yeah.

一致性原则与确定性执行

Francesco: 太好了。我会留出一点时间让大家亲自体验一下,但我也想把内容再往前推进一步。接下来我想要介绍“一致性原则”(Consistency Principle),它是建立在前面的“共享领域知识”之上的。因为当你已经有了一份成型的方案,Agent 完全具备足够的能力去识别:“这一部分方案本质上只是一段纯代码逻辑,或者是一张单纯的计算表格”,这意味着它在任何时候都应该输出完全一致的结果,它是你整个方案中纯粹确定性的模块。

针对这种确定性模块,你需要做的是通过代码去固化实现它,编写出一套每次运行都能稳定输出相同结果的实现。

类似地,我们再举手调查一下:有没有人尝试过直接在对话框中让 AI 做预算编制或者任何复杂的财务测算?实际体验如何?你对算出来的数值真的有把握、敢完全相信吗?看起来有些同学觉得还行。

英文原文

Francesco: Erh cool. So I will let you play around with it a little bit but I do want to maybe go a little bit further. So I will introduce the consistency principle and this build on the shared domain erh because you already have a plan and the agent is very capable to understand well these pieces of your plan are just a piece of code or just a calculation spreadsheet like it will always give you a consistent result is a deterministic element of your whole plan. Erh and based on that you need to implement code. You need to implement something that will give you the same result every time. Erh similar show of hands thing. Has anyone tried to do like budgeting or any financial calculation in the chat and how did that go? Like are you confident on the results? You Yeah, a little bit.

Speaker B: 摸个底探探温,大家感觉如何?是非常准确、不太行、还是糟糕透顶?

英文原文

Speaker B: Temperature maybe like very well um not too well. pretty bad.

Francesco: 好的。

英文原文

Francesco: Okay.

Francesco: 好的,那太有意思了。我非常想听听在座各位是否愿意主动分享自己的经历,讲讲你们看到了什么现象、以及为什么会发生这种情况。

就拿我自己的亲身经历来说,有好几次我以为自己已经把所有必要的条件和背景信息都给全了。Agent 回复给我一个数学公式,排版甚至精美得不得了——就是那种带有优雅斜体排版的专业公式样式,看起来极其规范高端。我当时心想:“这家伙懂得很啊,真专业!”结果仔细一看最终计算结果,哪怕我不是算盘计算器,我也一眼就看出那个数字绝对算错了。于是从那一刻起我就意识到:不行,这套办法根本靠不住,必须推倒重来。

现场其他人还有类似的经历吗?

英文原文

Francesco: So, so all right. So, I would love to know if anyone wants to volunteer their story, but what they saw and why they think it happened. But to me, a couple of times I thought I was giving all the necessary information. The the agent gave me back a formula. It was even formatted as a formula. You know, the kind of like italics formula thing that looks really nice. I was like knows what he's talking about. And then the result was like I'm not a calculator and I know that result is wrong. So from the get-go I was like nah start from scratch. H anyone has any other like examples

Audience Member: 关键在于一致性对吧?很多时候初次输出的结果看起来挺不错、挺合情合理的,但你只要把完全相同的 Prompt 再跑一遍,跑出来的东西就完全变样了。

英文原文

Audience Member: consistency right? So a lot of times the results look good reasonable but you run the same thing again that's something.

Francesco: 没错!这就是提出这一设计原则的核心灵感与初衷。抱歉,那位朋友你想分享什么?

英文原文

Francesco: Yeah. So that's basically the inspiration on the principle. Sorry, what do you want to share?

Audience Member: 对的,关键问题就在于每次运行它都可能……

英文原文

Audience Member: Yeah. So it goes to the point that every time it might

Speaker B: 是的。这正是一个极具说服力的极佳范例,足以阐明我们为什么必须着眼于构建一套完整的 harness,而不是仅仅把这些设计原则当作一组松散的技能或指令塞给现有的现成 harness(比如 Codex、Claude Code 或其他框架)。

因为当我们采用非确定性的方式——仅仅给 Agent 塞进一大堆看似正确的指令,却仍然把希望完全寄托在 Agent 本身身上时,我们本质上只是在乞求:“Agent 啊 Agent,千万别犯错,求求你一定要把事情做对”。这就是问题的症结所在:我们是在盲目赌一系列偶然事件都能在……

英文原文

Speaker B: Yeah. Uh and and that's a great a great um example to say part of the benefit why we are talking about building a harness and not just plugging these principles in a set of skills or instructions to an existing harness such as like codeex cloud code or anything else like when we when we do it the non-deterministic way which is to give the agent a bunch of instructions that um say the right things but still rely on the agent agent. Uh, make no mistakes, please do the right thing. Um, that's that's the point. We're relying on a bunch of things happening in the

混合非确定性与确定性行为:Agent Harness 的核心设计原则

主讲人:……背景信息,基本上每次都会得到一个非确定性的结果。因此,我认为在这里构建 Harness(控制框架)的价值——再次说明,这稍微深入到底层机制来看,并且源于我们在 Monzo 所应用的原则——在于将模型的非确定性与我们在相关场景下希望控制的某些确定性行为结合起来。

英文原文

Speaker: ...background and basically getting a nondeterministic result every time. So, I think the value here from building the harness—again, this is looking a bit into the under the hood, and like from principles we applied at Monzo as well—is mixing the non-determinism with some deterministic behavior that we want to control when relevant.

主讲人:我想你之前提到过,对于这次演示来说,这个 Harness 的很大一部分是……我理解这一点,但是对于生产环境而言,你在聊天框里直接让模型进行计算,与要求模型在代码中为你编写计算逻辑,这两者之间究竟有什么区别?以我个人做预测分析(forecast)的几个例子来说:你可以尝试自己动手计算,或者做一张包含大量复杂计算的电子表格,你大概率会算对几项,得到一个还算凑合的预测结果;你也可以直接从可信的代码仓库中引入一个库,里面已经内置封装好了一切;你还可以用更加模块化的方式编写代码,进行充分的单元测试、端到端测试,应用我们熟知的所有良好软件工程实践,以确保那段代码能够给你输出可靠的结果。所以,我认为不同之处在于……抱歉,区别在于:如果你完全任由智能体(Agent)自行决定如何实现、何时需要用代码处理,而不是在旁边构建好现成的东西,你的失败率可能会相当高,完全取决于运气。

英文原文

Speaker: I think you mentioned that for this demo a lot of this harness was quite... I get this point right for production stuff, like what's the difference between you making calculations in chat versus you asking the model to code up calculations for you in code. So I have a couple of personal examples on doing forecast where you can try and do forecast yourself by hand or come up with a spreadsheet with a lot of fancy calculations and you will likely get a few things right and get a decent forecast. You can also just get a library from a trusted repo and that has everything baked in. You can also write some code in a more modular fashion that is well unit tested, you're doing end to end testing, you're doing all the like good software engineering practices that we know how to do to ensure that that piece of code is going to give you a good result. So I think the different... Oh, sorry. The difference lies a little bit on the fact that if you're just leaving it to the agent to decide how to implement things and when they need to do it in code versus when it like you should just build something on the side, you're going to have a little bit of a big miss ratio like hit or miss.

参会者:是的,没错。我想问的是,这是否就是所谓“没有应用良好的工程实践”的原因?这一部分我明白了。你们是否有经过测试的实际落地产品呢?

英文原文

Attendee: Yeah. Yeah. I guess what I'm asking is if this is why quoted no good engineering practices were applied. I get this part. Do you have like a product that was tested?

主讲人:我们……我又要打个小广告了。明天上午我们有一场分组讨论会议(breakout session),届时会深入聊聊我们在 Monzo 构建的具体产品,以及它是如何应用其中部分原则的。不过,回到我们刚才说的 Harness 代码层面,我认为这更多涉及具体的实现细节,比如抽象层、方法设计和实际代码。但不论具体形式如何,将确定性与非确定性相结合的原则是完全一致的,如果大家能理解这一点的话。

英文原文

Speaker: We... I'm going to do the ad again. Tomorrow we're going to have a breakout session in the morning where we're going to talk about what we build at Monzo that applies some of these principles. But yeah, I think what is behind when we say like the harness being coded, I think it's more about the implementation detail of like abstractions, methods, the actual code. But the principles of mixing the determinism and the non-determinism are the same regardless, if that makes sense.

参会者:谢谢。

英文原文

Attendee: Thank you.

为什么不能放任模型即兴生成代码:一次编写,多次执行

主讲人:另外还有一件事,同样表明这是一个非常值得考量的优秀原则:在过去大约一年时间里,大多数智能体都开始更加激进地进行工具调用(tool calling),并构建自己的工具,以更确定性的方式来解决计算问题。坦白讲,智能体确实正在变得越来越强,对吧?所以我们大可以袖手旁观,等着所有问题自然迎刃而解。但我对这种心态抱有的唯一疑虑在于:它会在运行过程中实时、即兴地临时拼凑东西。确实,你可能在某一时刻针对特定问题获得了正确的代码;但是当你运行到第 100 次时,结果它可能又凭空造出了一段全新的代码,而这根本毫无必要。

我在工作之外也有一些亲身经历可以分享,完全就是这种情况:我每个月都有一个虽不算严苛但也相对规范的预算结账流程,我会对对账单中的所有收支项目进行分类。我曾放手让智能体来决定如何分类、如何做数据汇总、退款与各类开销怎么处理等等。到了某个时刻,我终于受不了了:“不、不、不,这必须写成固定的脚本。”因为我发现每次跑出来的结果都存在细微差异,我反而花费了更多的钱和时间去跟智能体反复拉扯纠缠,只为了让它输出我想要的结果——明明前三次它都做对了,偏偏第四次就搞砸了。

所以我不想再重蹈覆辙,我们要确保计算逻辑得到严格执行:计算逻辑只需编写一次,之后每次需要时直接运行即可。模型完全有能力去选取现成工具,你唯一需要确保的是,你的 Harness 必须施加极其严密的约束,绝不让模型自行心算算术,或者仅仅依靠逐个解析 token 来碰运气解决这些确定性问题。

如果未能确保计算以及所有具有确定性特质的逻辑都在固定代码中运行,会发生什么后果?这些逻辑就全凭模型脑海中飘忽不定的即时生成。一旦开启新会话,上下文荡然无存;每面对一个新问题或新会话,它就会重新生成一套代码,整个系统就会沦为一团乱麻。同样的问题,得到不同的答案,非确定性再次暴露无遗——因为你本质上是在要求一台随机概率机器输出绝对一致的结果,这显然是大概率无法实现的。

这里举几个有明确计算标准的场景为例,对吧?我相信哪怕你去问 10 家不同的金融服务机构,他们处理这些业务的具体手法可能各有一点出入,但通用的计算公式和核心思路是完全相同的。因此在实际工程中,你完全可以封装导出一个标准库,编写一次、持续维护更新。这些并不是什么新概念,完全脱胎于传统的软件工程良好实践。

回到演示,如果我们现在切换到预设的示例中……你能把这里高亮显示一下吗?好的。

英文原文

Speaker: And another thing that signals that this is a good principle to consider: over the last what year or so, most of the agents have started to do more aggressive tool calling and building their own tools to solve calculations in a more deterministic way. And honestly, agents are just getting better, right? So we could just wait and then all the problems are solved. The one challenge I have with that mindset is that it will create stuff on the fly, like in flight. So yes, you may get the right code for the right problem at a point in time, but maybe the time number 100 you run it, turns out it's inventing a new piece of code that didn't need to be reinvented.

And other examples, non-work related that I can share, are around doing exactly that. Like I have a—I don't want to say strict, but semi-strict—close of budget every month, and I categorize everything in my statements. I left it to the agent to decide how to do the categorization and how to do the aggregates and everything else, and the refunds and expenses. And at some point I was like: "No, no, no, this needs to be a script," because I'm getting slightly different results every time. And I'm spending more money and time wrangling with the agent to get it to give me the results that I wanted, that it got right three times already, but didn't get it right in the fourth.

So I don't want to repeat it again, but make sure that we run the calculations: you write the calculation once, and then you run it every time you need it. And the model is able to pick the tools; you just need to make sure that your harness makes it very strict that it's not going to do any arithmetic or try to solve these problems by just parsing tokens.

So what can happen if you don't make sure that your calculations and everything that is deterministic runs in code? They're in the thickest in the model's head. So it's gone once you start a new session, the new code for every new question and/or new session, and it becomes a mess. Same question, different answer, non-determination again—you're asking the stochastic machine to produce a consistent output, so you're likely not going to get it.

So here's some examples of things that have a way to be calculated, right? Like I'm sure if you ask 10 different financial services companies, they will have a slightly different way of doing these things, but the general formula, the general idea is the same. So you could realistically export a library, write it once, update it, and these things are not new. They stem from like software good practices.

So demo again, if we just want to go to the seeded example... Can you highlight this? Okay.

通过透明度与确定性引导建立对 Agent 的信任

主讲人:再次借助这个界面,大家可以看到在决策制定流程中的各个节点上,其中某些节点必须以代码的形式来实现。我认为最直观的检验标准之一就是:如果某个步骤属于计算逻辑,那它大概率就应当落实为代码,同时辅以单元测试、黄金用例(golden examples)等测试保障。当你在构建这样一个 Harness 时,应当在人与智能体之间建立起信任,方法就是确保你所关心的具体实现细节能够清晰直观地呈现在你眼前。

在实际生产应用中,另一个常见形式是提供代码的版本控制信息。你的代码通常都是纳入版本管理的。如果代码版本发生任何变动,而你又试图执行相同的流程,智能体应该能够敏锐地捕捉到这一变化并将信息反馈给你,提醒道:“实际上这段代码发生了变更,尽管函数名没变,但由于内部的某项计算逻辑已被修改,你目前可能不应该盲目信任它的输出结果。”

因此,当你在 Harness 中开展工作并确认接受了执行计划后,系统就会生成这样一张漂亮的流程图;在顶部会出现一个提示:“是否需要我来生成代码?”接着它就会为你完成编写。再次强调,这一切都是受控且受引导的。这正是 Harness 的核心价值所在——提供规范化的引导。

顺便问一下,现场有人已经在按照自己的计划构建具体步骤了吗?

英文原文

Speaker: So again just using this, you can see how the nodes in your decision making process, some of them needed to be implemented as code. And I think one of the easiest ways to check is: if it's a calculation, likely it has to be implemented as code, right, as well as some testing, unit testing, golden examples, etc. You should build trust with your agent when you're building a harness like this by making sure that the information you care about about its implementation is in front of you.

Another example of how this has looked in the wild is giving you versions of the code. Your code is more likely versioned. If anything changes with the version of the code and you're trying to run the same process, the agent should be able to pick it up and surface that information to you and say: "Actually this code changed. Even though the function is the same, you probably shouldn't trust what's coming out of this because the whatever calculation is different now."

So as you're working with the harness and you accepted the plan, you have a nice graph like this being built, you will get something at the top saying: "Do you want me to build the code?" And it will do it for you. And again, it's all guided. That's the point of a harness: that it guides things.

Is anyone building any of the steps on their plan?

参会者:可以这样操作吗?

英文原文

Attendee: Is that okay?

主讲人:可以,完全可以,很好。

英文原文

Speaker: Yeah. Yeah. Cool.

参会者:我刚才切换去聚焦看别的了。

英文原文

Attendee: I switch to focus.

主讲人:没问题,哈哈。

英文原文

Speaker: Okay. Yeah. [laughter]

参会者:理解。

英文原文

Attendee: Fair enough.

主讲人:完全理解。

英文原文

Speaker: Fair. Fair.

上手实操与 Harness 架构的核心准则

主讲人:很好。如果你目前正在跟着婚礼筹备(wedding)的示例操作,可以尝试几个动作:点击步骤一(step one),然后点击代码(code),接着点击测试(test),现在直接运行这些测试。测试按钮就在这里。

英文原文

Speaker: Cool. So if you're following on the wedding example, you can try a few things. Click on step one, then code, and then the test, and run the tests now. Tests here.

助讲/参会者:好的。

英文原文

Co-Speaker / Attendee: Yeah.

主讲人:95分。

英文原文

Speaker: 95.

主讲人:不好意思,现在几点了?

英文原文

Speaker: Sorry, what time is it?

助讲/参会者:9点54分。[笑声]

英文原文

Co-Speaker / Attendee: 9:54. [laughter]

主讲人:好的,时间正好。不过话说回来,这里的核心原则——重新串联并总结我们所讲的一切——在于:你不应该寄希望于自己每次都能记得手动运行测试,也不应该依赖自己每次都能敏锐地想起来“嘿,这个环节听起来我可以用一段固定代码来永久解决”。智能体本身应当主动引导你完成整个过程,这正是我们在构建这套系统时深植其中的核心设计原则之一。

顺便提一句,我想我们之前也提到过,代码仓库里附带了一个额外的小文件,名字大概叫 build yours 之类的。

英文原文

Speaker: Okay, good. But yeah, the principle here, and just going back to try and tie everything up together: you shouldn't rely on you remembering to run the test. You shouldn't rely on you remembering that, "Hey, this sounds like I can create some code to solve it every time." The agent should guide you through it. And that's one of the principles we baked into building this. As an aside, I think we were telling you there's a little extra file in the repo that says "build yours" or something.

助讲/参会者:它基本上按顺序融入了所有的核心设计原则,能够指导你亲手构建一个类似的 Harness。

英文原文

Co-Speaker / Attendee: It essentially has all the principles baked in in order, and it will guide you on building a [snorts] similar harness.

参会者:文件名就叫 build your own。

英文原文

Attendee: It's "build your own".

主讲人:没错,就是它。

英文原文

Speaker: There you go.

主讲人:是的。它会一步步引导你构建出一个体验与我们演示非常相似的 Harness,其核心思想是优先保障信任建立机制,而不是仅仅交付一个表面上看起来正确的半成品。大家可以亲自试运行一下,测试理应全部顺利通过。你会注意到,这其中没有任何“思考中”、“仔细阅读中”等智能体在加载外部内容时常显示的那些花哨动词。没错,因为这些只是需要在你本地环境中直接跑通的确定性测试用例。千万不要把系统过度工程化。虽然这话由我来说可能有点滑稽,但只要你的 Harness 内部各个组件能够严丝合缝、按部就班地协作,事情就会变得极其清晰简单,而不是靠虚无飘渺的空想,指望智能体充当某种魔法粘合剂把所有松散碎片强行捏合在一起。

台下好像有个提问。如果我们要……好的,我的意思是我们可以那么做,但我不太想把现场变成照本宣科的朗读会。本质上,核心始终在于厘清你真正关心的是什么,以及背后的功能性诉求是什么……

英文原文

Speaker: Yeah. So yeah, it will guide you on building something that feels similar to the harness we're showing you, that prioritizes trust building mechanisms over just giving you something that looks correct. So you can try this. The test should be passing. You will notice that there was no "thinking", "perusing", all the verbs that agents put when they're loading something. Yeah, because these are just tests that need to run in your environment. Don't overengineer it. Funny that I'm saying that, but it's easier if all the components of your harness just work together as they should, and not based on like hopes and dreams and magic glue from an agent orchestrating things together.

I think we had a question. So if we... Yeah, I mean we can do that, but I'd rather not do a reading session. Basically, it all goes about figuring out what you actually care about and what are the functional...

构建 Harness 的组件意图与指引规则

Francesco: ……一个正常运转的 harness 的各项要求。在接下来的对话中,我会穿插介绍其中的一些内容。同样,出于知识产权的考虑,我得注意不能透露过多细节。不过,在构建决定 harness 行为的各个组成部分时,你需要确保每个步骤的目标都具备明确的意图。其中最开始的组件之一,其意图就是尽可能多地收集信息,以便制定出一份计划。这在文档里也是明确写出来的。所以这基本上就是“关于指令的指令”,就像是一份宜家组装指南。它旨在为你提供非常清晰的引导,告诉你应该关注哪些方面,至于具体如何实现,你完全可以根据自己的偏好来进行选择。

英文原文

Francesco: ...requirements for a functioning harness. I'm sprinkling some of that through the conversation. Again, need to avoid oversharing a little bit because of IP. But you want to make sure that the objectives of each of the steps when you're building the parts that will make up the behavior of your harness have an intent. The intent of one of the first components is gathering as much information as possible to come up with a plan. And that is written in here as well. So this is basically instructions for instructions. It's the IKEA guide. It is supposed to guide you very nicely on these are the things you should care about, but then you can pick your preference on how they get implemented.

Audience Member: 我有个问题。这跟规范驱动开发(spec-driven development)有什么区别呢?规范驱动开发也是线性的,从你提的所有问题开始,从最初的构想一直延伸到最终交付。这种方式与它相比究竟有什么不同?

英文原文

Audience Member: Question. So how is this different from, let's say, the spec-driven development, expected something like that, which is also linear from starting from all the questions from you, starting from idea all the way to the end, and how is it different to—this one is different to that?

Harness 与规范驱动开发的区别:应对非确定性与动态变更

Francesco: 你介意我稍后再展开讲这个吗?我想先提两点我认为与此相关的关键内容。第一点是,当我们针对某种特定类型的用例构建 harness 时,它与面向编程助手的智能体领域有些许不同。因为对于编程助手而言,代码通常只是达到目的的一种手段,对吧?我们是在构建某种能够执行操作的东西,可能是一款产品、一个应用程序等等。而在我们当前的场景中,智能体是在协助我们进行分析、解决问题,并引导我们完成整个流程。因此,如果针对类似“Francesco 的婚礼筹备”这样的事情写一份庞大的规范,实际情况往往会发生变化——需求会不断演进、不断改变。如果每次都要回到那份不断变动的规范中,我们就等于是在重新依赖智能体的非确定性来重新解读它,而这往往很难做到极其稳健并始终执行正确的操作。所以 harness 的核心作用,本质上就是把原本一整份庞大的规范,拆解成若干具有鲜明主张(opinionated)的独立板块。

英文原文

Francesco: Do you mind if I come to that? I want to mention two things that I think are relevant here. I think the first one is when we're building a harness for a specific type of use case, it's a bit different from the coding assistant world of agents, because with the coding assistants, usually the code is a means to an end, right? Like we're building something that performs an action. It's a product, it's an app, whatever that is. In this case, the agent is helping us like analyze, solve a problem, and work us through that. So the gigantic spec for this, like let's say for Francesco's wedding, things will change. Like it will evolve, it will change, and then if we go back to the ever-changing spec, we are relying again on the non-determinism of the agent to interpret that, that can be very, very, very robust and perform the correct thing. So the harness essentially breaks down what would be the spec in opinionated sections, if that makes sense.

Francesco: 我想补充的第二点,其实是源于我们在数据领域的切身体会。我不知道现场有多少人从事数据工程、分析或类似的工作。我认为我们从这个领域带入这些原则的另一个核心理念就是:指标定义和维度定义从来都是在不断变化的。在我们的过往经验中,大家肯定都经历过无数次这样的对话:“这个数据到底准不准?”回答往往是:“我不知道,听起来是对的,但我们谁也吃不准。”如果我们永远都不确定,那这个数据到底算不算准确?我认为这也正是从那个视角衍生而来的:直到我们对智能体的信任程度,完全等同于我们对仪表盘、指标或数据可视化图表的信任程度时,我们才算真正与它达成了对齐。而 harness 能够持续引导我们,确保这种对齐状态随着时间的推移依然成立。但前提假设会改变,源数据会改变,背景上下文也会改变。让 harness 具备适应这些变化的能力,就等于承认了“变化是一定会发生的”这一事实,而不是每次都要重新去写 Prompt、重新跑一遍整个流程。这样解释能说得通吗?

英文原文

Francesco: And I think the second thing to complement with that, and is actually something I wanted to ground on our experience from data. I don't know how many of you work in data engineering, analytics, or anything like that. I think something else that we bring from this world in these principles is the idea that metric definitions and dimension definitions always change. Like in our experience, we've had many, many, many times—and I'm sure many of you as well—that conversation where, "Is this number correct?" "I don't know. It sounds like it is, but we're never sure." And then if we're never sure, is the number correct? I think this is also coming from that perspective, is that to the point where we trust the agent as well as we trust a dashboard or a metric or a visualization. We've reached alignment with it, and the harness can continue guiding us into that alignment continuing to be true over time. But premises will change, source data will change, context will change. And then having the harness able to adapt to that is like recognizing that this change will be a thing, rather than having to every time prompt again and go back to the process. Does that make sense?

Audience Member: 明白了。

英文原文

Audience Member: Yep.

Audience Member: 顺着这个问题我再追问一句。从这个视角来看有没有什么补充?因为大多数实际可行的东西,即使在不同迭代中会发生变化,你在开发某种东西时与 AI 智能体的配合,是不是也可以融入到这个流程当中?

英文原文

Audience Member: Follow-up question on that. Any complement from this perspective, because most workable thing you are developing something, even though it's subject to change through different iterations, you are developing something with an AI agent can be part of this flow as well?

Francesco: 完全可以,用这部分 harness 就能做到这一点……

英文原文

Francesco: Absolutely use that, this part, this harness to do that. It—

底层机制:有主张的工作流与 Harness 的防御性约束

Francesco: 确实如此,在底层实现上,其运作机制本质上也是完全相通的。当我们构建……如果你去查看底层的 my 文件夹,会发现里面保存了所有的内容。你可以将这些内容理解为支撑 harness 背后的那份规范。所以说,同样的原理在这里完全适用——在面向编程智能体的规范驱动开发中,通常也会有一个针对待构建对象的唯一定义源。而在我们的场景下,核心也是如此。唯一的区别在于,我们是通过一系列带有鲜明主张的工作流来呈现这一规范,而不是把它做成单一、呆板的文档形式,这样讲是否能理解?

很好。所以这是大家可以亲自去尝试的另一件事:你可以试着去修改某项计算逻辑的运行方式,然后你大概率会受到来自 harness 的阻拦与反馈。再次重申一下,harness 的目的就是引导你、并强制你去做正确的事;而这些设计原则的存在,则是为了帮助你每次都能做出正确的决策。举例来说,如果你试图把一个乘法计算硬改成分组聚合计算,你或许能飞快改完并保存文件,看似成功搞破坏、搞砸了分析;但当你去运行测试时,你根本无法得出任何你原本想要的分析结论,因为 harness 自身的规则定义和底层架构会直接阻止你继续错下去。

英文原文

Francesco: Absolutely. And under the hood, this is essentially what's happening as well. So when we have, when we're creating, if you look under the hood in the my folder, you're going to have everything that is saved. So you can think of this as the spec that's behind the harness. So absolutely, like the same principle applies here. In the spec-driven development for, again, coding agents is usually used, you have something that is the source of definition for the thing being built. In this case, it's the same thing. The difference is that we surface that through opinionated workflows rather than a single looking document, if that makes sense. All right, cool. So, that's another thing you can try out. You can try and change how a calculation works. And you're likely going to get some pushback from the harness. Just to reiterate, the point of the harness is to guide you and force you to do the right thing. And the principles are here to help you make the right decision every time. So again, if you go try and change multiplication for an aggregation, you may just go make the quick edit, save the file, success, you sabotaged the analysis, but when you run the test, you won't be able to actually reach any conclusion of the analysis you wanted to do, because the harness is going to stop you by its own definitions and the way it was built.

原则二:证据追溯、事实与假设的分级管理

Francesco: 我们接着看“证据(Evidence)”这一部分好吗?所谓证据,就是我之前提到的“拿出发票/凭证(receipts)”这整套逻辑——必须保留确凿的凭据,并能够清晰展示出来:“是的,这个结论就是从这里来的,正是因为有这个因果关系,它才是正确的。”因此,它是在第二条原则的基础之上构建起来的:既然你拥有的代码和其他所有内容都经过了充分测试,你就拥有了一条可以反向回溯的完整审计轨迹。这样一来,你便有据可依来证明自己所做决策的合理性,因为你掌握了证据。在这个设计原则中这一点尤为关键,因为“原则”是需要人去具体诠释的,对吧?我不想只留给大家一个非常宽泛空洞的宏伟口号,比如“大家一定要重视证据啊,这太棒了”;关于证据,你真正必须严加把控的核心究竟是什么?回到作为数据从业者的视角来看,这恰恰是每周都在让我们吃尽苦头的问题。

并非所有信息都是等价的。如果你真的想向团队展示一份分析结果,或者想为贵公司的某笔潜在投资做一份财务分析,你必须清楚说明你的数字到底来自何处,并能够将你的决策归因于你所掌握的整套证据链。既然我们能够呈现出一切信息的来源,那么就有一些常见的错误需要尽力规避,最典型的一点就是:把所有信息都当成既定事实。举个例子:“哦,是的,关于邀请人数你给我的这个数字,这绝对是个客观事实。”结果回到我筹备婚礼的例子上,我未婚妻又额外邀请了三个人却没告诉我。转眼之间,我的整个预测模型全错了。我在这里尽量用一个非常简单的例子来类比,但我相信大家完全可以想象得到:在任何财务分析中,一旦在某个环节出现了错误的假设且无法追溯其来源,其后果将是致命的。

英文原文

Francesco: Should we move on? Evidence. Evidence is the whole thing I was saying before about the receipts, having the receipts and being able to show that, "Well, yeah, this is where this came from. This is correct because of..." and doing that causality relationship. So it builds on the second principle, as since you have code that is tested as well as everything else, you have a trail that you can follow backwards. So you have a way to substantiate the decisions you're making, and you have the evidence. And it's important in this principle, because a principle is something you need to interpret, right? And I don't want to leave you with a very vague, ambitional thing like, "Oh yeah, do evidence, it's awesome." But what about evidence is something that you need to take care of? Going back to being data professionals, this is something that bites us on a weekly basis. Not all information is the same. If you really want to present a piece of analysis, or you want to do some financial analysis on a potential investment for your firm, you need to show where your numbers came from and be able to attribute your decision to the body of evidence you had. So since we can show where everything came from, there's some mistakes we want to avoid where everything is treated as a fact. So, "Oh yeah, this number you gave me for the number of—I don't know, going back to my wedding—the number of people invited is a fact." Turns out my fiancée invited three more people, didn't tell me. Now my whole model is wrong. And I'm trying to reduce it to a very simple example, but I think you can imagine how having a wrong assumption somewhere and not knowing where it came from can be fatal for any financial analysis.

Francesco: 在构建智能体的世界里,人们极其容易把某些东西当作理所当然的假设,或者当作某种粗略的估计。底层的大模型自身根本无法辨别什么是确凿无疑的硬事实,什么是主观推断的估计值。因此,你必须通过 harness 的架构设计来强制推行这种区分。另一个极易让整个系统迅速崩溃的典型场景是:设想一个数据分析人员走到你面前说:“别问了,结果就是这样,相信我,我都算过数了。”面对这种表述,你会信以为真吗?我看现场有人在摇头。我不认为在座的各位会想去逐一查看某个单一数字背后的所有计算日志和复杂数学公式。但是,只要拥有一条清晰可查的追溯路径,让我们知道“我可以反向推演并验证这一决策”,对我们人类来说,内心的信任感就会大幅提升。

因此,我们在这里定义了几种不同的类别划分。例如:聊天中随口说出的非结构化想法,必须被严格归类为“主观解释”;智能体自身的逻辑推理,或者它从长期记忆中提取出来的信息,必须被当作“假设”来对待;而如果我上传了一份银行对账单,那还有什么好争论的呢?那百分之百就是“客观事实”,记录了我到底花了多少钱。再次回到数据从业者的视角来看,做好数据标注、确保拥有一套高质量清洗的数据集,无论对于模型训练还是各类业务流程的运转而言,都是至关重要的生命线。在构建智能体时本质上也是完全一样的事情:你必须为你收集到的各项证据赋予恰当的重要性与信任评级,并确保尽可能多地去搜集支撑证据。这里还有一个非常有趣的细节:证据同样必须融入到代码本身当中。因此,这不仅仅关乎“你是从哪里得到这个数字的”,更关乎“你是如何……”。

英文原文

Francesco: So let's say in the world of agentic building, it's very easy to assume something or treat something as a guesstimate. The model can't tell what is a hard truth and what is an estimation. So you need to enforce that through the design of your harness. And another example where this kind of falls into pieces really quickly is imagine you have a data person, an analyst, something coming to you and being like, "No, no, no. Here's the result. Trust me, I ran the numbers." Do you trust that as a—yeah, I see some like no. I don't think anyone here will want to see all the logs and the math behind a single number. But just having the trace to figure out, "Okay, I can follow back this decision," increases confidence for us humans quite a bit. So we have some different examples here. Unstructured thoughts in a chat need to be labeled as an interpretation. The agent reasoning or pulling information from memory needs to be treated as an assumption. And then if I submit a bank statement, what is there to discuss? Like that is a fact, that's how much I spent, etc. If I take, go back again to being a data person, data labeling and making sure that you have a curated dataset for either training something or running any process is paramount. And this is basically the same thing: you just need to assign the right level of importance to the evidence you're gathering and make sure that you gather as much of it as you can. This is a really funny one, but evidence also goes into the code. So, it's not just where do you get this number from, but how...

主文件变更与确定性代码的可追溯性风险

Speaker A:你究竟是怎么得出这个数字的?我这里有一个亲身经历的轶事:有人当时一直在使用公司里的那份主文件(master file)。在每家公司里,基本上都会存在这么一份所谓的主文件,它被大家在共享网盘里标为星标收藏或者重点存放。那个人往里面输入了一些数字,当时看起来一切都挺正常、毫无破绽。然而,这份主文件本身其实预设了一些隐含假设,规定了到底什么样的数值范围才算是合理的。但那个人对此毫不知情,因为该文件在这期间被其他人修改过了。他们自己并没有做错任何事情,仅仅是因为压根不知道文件已经被篡改了。结果,最后算出来的结果完全是错误的。

英文原文

Speaker A: did you get this number? And I had I have an anecdote where someone was using the master file. In every company there's a master file and is favorited in the share drive and whatever. And that person puts some numbers in there and everything looked fine. The master file had some assumptions of what range of values were reasonable. That person didn't know because the file changed. They didn't do anything wrong. They just didn't know the file changed. Uh and then the results were entirely wrong.

Speaker A:同样的隐患,也会发生在你用测试挽具(harness)构建的确定性代码中。如果你缺乏一种针对代码改动本身进行全流程可追溯的追踪手段,你就会在流程发生变更时暴露出巨大的盲区。哪怕输入的底层数据完全一模一样,中间逻辑一变,输出就全错了。好,我们往后跳一点来看具体实现。从这个示例来看,你能随便打开其中一个吗?

英文原文

Speaker A: And the same will happen with deterministic code you build with your harness. If you don't have a way to having a traceability even for changes you make in your code, you're leaving yourself uh vulnerable for blind spots on the process change. The inputs were the same. Erh skipping ahead a bit. So if we're following from the example, can you open any of them?

Speaker B:可以,打开了。

英文原文

Speaker B: Yes.

数据凭证与因果追溯:从底层数据集到分析结论

Speaker A:大家可以看到,所有的证据链(evidence)都已经被高亮标示出来了。再次说明一下,只要在这个示例界面中点击底部,就能直接看到你所关心的对应区域被高亮呈现出来。这就是信息在整个流程中传递运转的完整链路,它清清楚楚地展示了哪些部分是由 AI 助手提议生成的;你完全可以拿出真凭实据(receipts),明确指明某个结论或数据究竟是从哪里来的。

英文原文

Speaker A: The evidence is highlighted. Erh, and again, you can see like the areas that you care about through the example by just like clicking on the bottom and then seeing the bits that get highlighted. But this is how the flow of information goes through and what parts are proposed by an assistant like you can show the receipts of where where this came from.

Speaker A:纵观业内其他金融分析师相关的 AI 系统落地实践,你甚至能够一路追溯到最底层的原始数据集层面。例如在股票和证券交易、投资领域,你能明确知道究竟是哪一个数据连接器、哪一家数据供应商,提供了某一天某一具体时间点苹果公司(Apple)的交易价格。因此,这一点极其关键。我想在这个环节不必占用过多时间,除非现场有人有任何疑问。都清楚了吗?太好了。

英文原文

Speaker A: Looking at other implementations of financial analysts in the industry you get traceability down to the data set like you know which uh connector or which supplier of data gave you the information that whatever Apple had this price at this point of the day. if you're doing something about trading or investing in stocks and shares. So, this is extremely important. I don't think we need to spend any more time here unless anyone has any questions. Oh, good. Cool.

Speaker A:这里有几项大家可以在演练中亲手尝试的操作。你可以尝试给智能体抛一个难题或者曲球(curveball)。直接在对话框里敲入一些提示,你就会立刻观察到某些证据行或者进入后续处理流程的某些输入发生了变化;而且系统完全能够准确追踪并标明:正是你在对话中所纠正的某项事实,触发了这一变动。另一个例子是,如果你想直接对某项数据进行修改,只要点击变动后的底层数值,系统就应该能够完整地向后回溯它最初源自何处,以及它为什么会对你接下来的其余计算产生关键影响。

英文原文

Speaker A: So, here's a few things you can try. Um, so you can add a little bit of a a curveball to the agent. Just typing in the chat and you will see how some of those evidence lines or some of the inputs that go into the rest of your process change and it it's able to trace that it came from you correcting some fact in the chat. And another example is h if you want to go and make a change and click on the underlying figure that changed h it should show you all the way back where this came from and why it matters for the rest of your calculation.

构建可信挽具与证据追踪的现实痛点

Speaker A:我接下来要说的内容可能会让大家觉得有点重复,但我还是要强调:这个测试挽具只是用来演示如何将这些工程设计原则付诸实践的一个具体范例。我相信在座的每一位肯定都在思考自己的实际应用场景、自己的公司、你们正在构建或正在使用的各类智能体,思考如何把这些分散的环节串联起来、把各个组件拼接成一个有机整体。当我们的最终用户和客户在使用我们打造的智能体时,他们对你的产品、你的智能体及其输出结果的信任程度,才是真正通过我们前面提到的追踪回溯、评估闭环(tracing and evals)等机制,推动其持续使用、全面普及与不断迭代的根本动力所在。所以,在构建挽具的核心底线在于:务必确保能够为使用你的终端客户和用户提供这种确信度,让他们打心底信任智能体交付给他们的每一个结果。尽管这听起来有些啰嗦,但我们必须在行进过程中确保把所有关键要点融会贯通。

英文原文

Speaker A: I'm going to say something that might feel repetitive. Um but again we are we are this this harness is an example of how to apply the principles but I I'm sure everyone is thinking about your use cases your companies the agency you're building the agency you're using and how like to to to connect the dots and to to I don't know put the wires together. I think this is an an example we can think about when our users our and customers of the agents that we're building are using it and again the trust that they have in your product in your agent and in the output is what will drive usage adoption improvement and so on through the loops that we mentioned through tracing evolves and so on. So again, I think um what's underlying here is when you're building a a harness, make sure that you can um make this happen to uh your customers that are using your users that are using so that they trust the results that your agent is giving them. Again, maybe repetitive, but like making sure we uh draw get everything together as we go.

Speaker A:在我们继续之前,现场有没有人能分享一下:曾经在什么时候,如果有一条完整的证据链原本能帮你免去极大的痛苦与麻烦?我看到大家都在痛苦地点头认同。如果有人愿意分享一段经历,我们非常乐意倾听;如果没有的话,我们也可以直接继续。

英文原文

Speaker A: Before we move on, anyone has any example of a time where having the evidence trail would have saved you a lot of pain? I see nodding like painful acknowledgement, but if anything you want to share, more than happy to to hear you out. Otherwise, we can carry on.

Speaker C:老实说,基本上每一次只要你尝试用它干点正事,都会碰上这种情况。我现在正在体验这个功能,我个人非常喜欢这种能够直接出示凭据、追根溯源的设计思路。这几乎是我和智能体之间每一次对话的真实写照——不管是写代码还是做演示文稿(deck),我总会忍不住质问它:'这个数字到底是从哪里冒出来的?'它就会说:'嗯,我们之前讨论过某某内容等等……'我心想:要是我能直接看到系统具体指出依据哪篇文件或者哪处原始凭据,那该有多好啊!

英文原文

Speaker C: basically every single time you try to do something. And so I'm playing with this. I really like the idea of being able to show the receipts and everything. That's basically every single conversation I have with an agent, whether I'm coding or like working on a deck or something. I'm like, "Where did this number come from?" Like, "Well, we talked about this blah blah blah blah blah." I'm like, "It would be nice if I could just be able to show me specifically like the paper

Speaker A:我很欣赏你拿做演示文稿来举例,因为我自己也有过极其相似的惨痛经历。有大概足足一个半月的时间,我竭尽全力就是为了不再被迫在 Google Slides 里手动调整文本框大小,所以我千方百计想搭建一套能帮我自动生成幻灯片的工具。我当时搭建了一个非常漂亮的挽具,它能深入剖析业务问题,抓取所有相关文档,并帮我提炼出打算向团队宣讲的核心要点。结果在后续的人机交互中,我完全没有察觉到一个致命问题:每当我要求进行微调并随手给出一个参考示例时,模型就会死死盯住这个例子不放,甚至把这个特定示例硬塞到了我整份幻灯片的每一个角落!我当时根本没注意到这一点。大家完全可以想象得到,当我当着公司高管的面展示那些五花八门的具体数据案例时,高管们当场质问:'你这组数字和背后的假设到底打哪儿来的?'我当时整个人都懵了,只能尴尬地说:'这太诡异了,我真不知道它是从哪冒出来的,太离谱了。'但事实就是这样,这类事情经常发生,实在令人抓狂。这种因果链路一旦断裂或者产生误导性后果,真的会彻底摧毁你对自己搭建的挽具及其生成结果的信任。

英文原文

Speaker A: I like the that you use a presentation as an example because I had an example myself where I was trying as hard as I could to not have to resize text boxes in Google Slides for a good like month and a half. So I was forcing my way into having something that could help me build slides. and I had a really nice harness that would like dig into the problem, get all the relevant documents and help me highlight what are the key points that I wanted to present to the team. And turns out in my conversations, I never caught the fact that when I ask for a modification and give an example, the model will fixate on the example so hard that it will put it everywhere in my presentation. I didn't pick it up. So, you can imagine I was showing some colorful example to senior leadership and they were like, "Where did you get that number and that assumption?" And I was like, "That's crazy. I don't know where that came from. That's crazy." But yeah, it tends to happen. It's really annoying. And that trace of consequence can really hurt the trust that you have in your harness and the results it produces.

问责制原则:人类承担后果与避免无脑审核

Speaker A:让我接着往下讲。另一个关键原则是问责制(accountability)。这项原则正是建立在证据链基础之上的,因为只有在掌握事实依据与明确参照系的前提下,你才可能做出正确的决策。尽管我确实想强调这点,但现实中我们身边总有那么一种朋友,对于自己一无所知的事情也能信誓旦旦、讲得头头是道。这虽然是一个略带讽刺的反例,但从根本上来说,如果说今天在座各位有什么最核心的共识需要达成一致,那就是:对于 AI 智能体所做出的一切行为,最终承担责任、受到问责的永远是我们人类自己。如今很多人在争论说人类未来会因为 AI 而彻底失业。每当听到这种论调,我总会重申一点:我之所以被雇佣、之所以能领到薪水,很大程度上是因为我必须对自己为公司交付的最终业务结果负全责,而不是因为我整天坐在电脑前敲打键盘。因此,人类工作体验中关于信任、责任担当以及团队协同的部分至关重要。那么你该如何维持高水平的问责制呢?你必须具备看穿引擎盖下方、看透黑盒内部运作机制的能力。

英文原文

Speaker A: Let me carry on. So another principle is on accountability. Uh and this builds on the evidence because you only make a decision when you have some facts when you have some point of reference. Erh well I do want to say that but we all have that friend who speaks very confidently about something they don't know. So little bit of a counter example, but generally I think if there's one takeaway I would love for everyone here to feel aligned with is we are ultimately the responsible people, the accountable people for whatever AI agents do, right? Um and there's a funny thing where people discussing that AI is going to um you know we're not going to have any jobs because of AI. I always go to back to the fact that I get higher, I get paid partially because I am accountable for the results that I produce for the company, not for me sitting in a computer and typing some stuff. So there is an element of the human experience where the whole trust and accountability and working together as a team matters a lot. And how do you keep accountability high? You do need to be able to see under the hood, inside the black box, etc.

Speaker A:我记不清这句话最初是谁说的了,但我非常认同它,可惜我一直没法给出确切的出处:智能体根本不需要承担任何现实世界的真实后果,但你必须承担。虽然我很喜欢现场举手互动的形式,但这大概也是我现在仅存的互动手段了,可能正因如此我才老喜欢让大家举手。在座各位有没有曾经在书面记录中看到过、或者亲耳听别人说过类似的话:'哎呀,我也不知道为什么,反正 Claude 给我的就是这个答案。' [笑声] 是吧?

英文原文

Speaker A: Erh, I don't know who said this. I loved it. I never able to quote it. But agents face no real world consequences. You do. So I I love the show of hands thing, but it probably is the only resource I have. Maybe that's why. Has anyone seen either written or been told? Well, I don't know. That's what Claude gave me. [laughter] Yeah,

Speaker A:听到这种解释是不是感觉很棒?就好像在说:'哦,那合情合理了!行吧,一切都情有可原,别担心。' 可现实是,我们必须真真切切地独自面对智能体造成的后果。因此,在我们的测试挽具中内置问责机制,能够极大程度地减轻你内心不得不承受的巨大心理压力——省得你脑子里整天疑神疑鬼:'它在这里是不是又做了错误的基础假设?'诸如此类。所以,你的目标是降低不确定性与歧义性,而不是彻底抹杀它。我相信在座很多人都会怀念甚至深情回忆过去还没有自动模式(auto mode)的日子。谁还愿意回到过去没有自动模式、每一步修改都必须由你手动狂敲回车键逐条审批的状态?

英文原文

Speaker A: that feels great, right? Like, oh, that makes sense. Yeah. Yeah. Everything is forgiven. Don't worry. We face the consequences of what agents do. So, having accountability mechanisms in our harnesses reduces a lot the amount of stress you need to go through. Just going in your head like, "But do you think it made the wrong assumption here?" Whatever. Erh, so you want to reduce ambiguity and not remove it. Erh, I'm pretty sure a lot of people here will remember fondly the days prior to auto mode. H, who wants to go back to before when auto mode existed and you had to approve every single change by tapping enter?

Speaker B:可不是嘛,那段时光真难忘。

英文原文

Speaker B: Yeah. Yeah. Lovely times.

Speaker C:我现在其实还在这么干呢。说得过去吧。[笑声]

英文原文

Speaker C: I still do it. Fair enough. [laughter]

Speaker A:完全可以理解。

英文原文

Speaker A: Fair enough.

Speaker A:但在你敲回车键批准的所有——比方说整整 100 次点击里,有多少次你真正看出了问题并进行拦截?我的意思是,得了吧,绝大多数情况要么是一行无伤大雅的代码修改,要么是真正至关重要的关键变更但你却扫一眼就放过去了——'谢天谢地,我当时恰好瞄了一眼这里。' 对,我宁可……

英文原文

Speaker A: And from all the let's say 100 taps you did, how many of them you failed where? I mean, come on. This is a oneline change versus this is important. Thank god I was looking at this. Yeah, I just pref

Speaker A:这其实正是挽具设计的核心所在:这种架构设计是具备明确意图的(intentional)。你的审核对象应当是整个任务(tasks),而非琐碎的单条代码微调(individual changes)。我们只是在提醒大家:当你动手设计一套挽具时,必须特意设计并加入这些关卡卡点(gates),以此确保你依然能够对自己所产出的最终成果切实履行问责责任。因此,请确保任何需要人类主观判断的关键决策、任何至关重要的消除歧义环节——这里指的绝不是那些鸡毛蒜皮的琐事——你都能牢牢把握在手中。如果缺乏这种设计,会发生什么后果?'我不知道啊,随机概率机器(stochastic machine)告诉我说没问题嘛。' 真是个绝妙的回答!要么逐条去批准每一个中间运算,走到光谱的另一个极端,那感觉同样极其糟糕;要么就得像被迫逐行去人工审查你的 AI 生成的每一个 PR 那样让人抓狂……

英文原文

Speaker A: and and that's basic that's basically part of the hardness like the design is intentional. So you review tasks instead of individual changes. And we're just providing you with a a reminder that when you're designing a harness, you want to make sure that you include on purpose those gates to make sure that you can still be accountable for what is being produced. Um so make sure that any judgment call, any disambiguation that is important, not the trivial ones, right? H you can get some hold of it still. H what happens without it? I don't know. The stoastic machine said it was fine. Amazing answer. Approving every calculation. The other side of the spectrum doesn't feel great. H or reviewing every PR line by line that your

问责机制的设计原则:高信噪比卡点与决策追溯

Speaker A: ……让 Agent 上线发布。是的,虽然写得不算太好,对吧?但确实,如果设计方式不契合具体的业务场景,往往会带来大量繁琐低效的无用功。那么,如何设计一个优秀的问责机制,核心要点是什么?那就是:设置极少数但具备极高信噪比的把关卡点(gates)。你刚才提到的任务拆解示例——以一种能够清晰推演各任务间关联逻辑的方式进行拆解——就是一个极佳的例子,大家往往只在功能测试通过时才进行复核审查。在此之前的任何步骤,我认为都可以稍显随意,比如“行,这看起来差不多没问题”;但你绝不会将任何未经全部测试验证的内容推向生产环境,对吧?因此,你需要设立一些把关卡点,但这些卡点必须具备极高的信号纯度与有效性。

英文原文

Speaker A: agents ship. Yeah, that it's not really well written, right? But yeah, it leads to a lot of either a lot of toil and unnecessary work if it's not designed in a way that you know makes sense for the use cases. So what is the main takeaway on how to design good mechanisms for accountability? Few gates with very high signal. Your example of the tasks and breaking it down in a way that you can reason about the way they connect. It's a really good example on where people do reviews only on functional tests being passed. Anything prior to that, I think you can be a little bit handwavy with yeah sure this looks about right, but you wouldn't push anything into production that hasn't passed all your tests, right? So you put some gates in place, but those gates need to be very high signal.

Speaker B: 我来做一点补充。我认为我们目前引用了不少代码辅助工具领域的例子,需要说明的是,这并不是我们在 Monzo 处理此类问题的方式,毕竟业务场景完全不同;但将其映射到我们自身构建的 Agent Harness 上时,底层逻辑是一致的。我们之所以拿 AI 编程举例,是因为它离我们最近,也是我们许多人每天都在使用的工具。但这里适用的原则,正如 Claude Code 所提供的一项功能——允许你自行把控希望介入该流程的深度。

当我们构建面向金融场景的 Harness 时,同样可以采用这种方式来引导用户。这确实非常切中要害。再次回到涉及资金的业务领域:有些事情你可以完全放手让 Agent 自行探索计算。例如,某个指标存在几种可能的数值,你会说:“行,那就跑出三种推演场景吧。”这通常完全可行。但你在做出最终决策之前,必然希望将它们横向并排对比审查。你绝不可能将全盘控制权彻底交给一个你并不完全信任能够最大化维护你切身利益的系统——倒不是说它存心有恶意,但关键在于,糟糕的决策会层层传导至后续的所有决策中。

因此,你所设计的把关卡点必须切合实际业务目标。你必须极其透彻地理解具体业务场景,才能将卡点精准安插在真正关键的位置上。否则,你若只是机械地在每个决策前都插入一句“请先询问我”,整个机制的信噪比就会再次变得极其低下。至于代码场景,你倒不一定非得逐一提问,因为测试用例本身就足以证明一切。这也正是“凭证机制”(receipts)大显身手的地方,因为你只需要验证所有测试是否全部通过,由此便能获得极高的确定性与信心。

所以回到刚才的演示,很有意思的是,当前这个方案在问责机制上的强度并不算高。它唯一的拦截步骤就是:我来核对我们计算出的所有场景推演等内容,并由我来决定每个月究竟需要存多少钱。当然,这本身依然很稳妥,因为没有任何资金会真的从我的银行账户中被转走;但就问责机制而言,我确信它足以把关拦截后续的任何事项。

英文原文

Speaker B: And to complement, I think we're using some examples in the coding assistant world and, again, this is not how we for instance approach things at Monzo because of a different context, but this is bringing it to our harness. I think we use the AI coding examples because they're close to us and they're the tools many of us are using on a daily basis. But what we apply here is the same thing that Claude Code does when they have a feature that allows you to gauge how much you want to be involved in the process. When we are building our financial harnesses, we can also guide our users in the same way.

That is pretty spot on. And again, just going back to the domain with money, there's some stuff you can leave the agent to figure out. For instance, if you have a few possible values for something, you're like, well, do three scenarios. It's probably going to be fine. But you want to review them side to side before making any decision. You wouldn't hand over entirely the keys to the kingdom to something that you don't necessarily trust is going to have your best interest in mind. Not that it will have an interest of its own, but so it's very important that you know that bad decisions carry forward into your other decisions. So the gates you design need to be fit for purpose. You need to know the use case really well in order to be able to put the gates where it matters. Otherwise, you're just adding "before any decision, ask me," and then it becomes very low signal again.

And well, for code you don't necessarily need to ask because the tests will speak for themselves. That's where the receipts come in handy because you only need to check that everything is passing and you will have a lot of confidence because of it. So if you go back to the demo, funnily enough, this plan is not very high on accountability. The only step is I will check everything that we calculated, all the scenarios whatever, and I will make a decision on how much I need to save every month. I mean still nice because no money is moving out of my bank account anywhere, but yeah there's an accountability mechanism I feel confident that that will gate anything else.

Speaker A: 我觉得还有一个补充的例子,比如眼前的这个权衡与决策节点。假设我们接受了这一项,它就会被标记为我们已做出的决策;后续我们一旦使用该信息——比如两万英镑在第三笔款项支付的同一天到账——并将其作为影响最终决定的依据,这其中就必然伴随着明确的权责归属。

英文原文

Speaker A: I think as an extra example, like in this challenge and decision here, likely as let's say we accept this and this is now marked as a decision we made, if we ever use this information, like the 20k landing on the same day as payment three, as something that influences the final decision, this definitely comes with the accountability.

Speaker B: 没错。

英文原文

Speaker B: Yes.

Speaker A: 往上翻一下。不,其实我稍微有点即兴发挥了。不过如果你稍微往上滚动一下页面……

英文原文

Speaker A: Go up. No, I actually like I'm improvising a little bit. But if you scroll up a little bit,

对话分支与过程纠偏:避免单点输入破坏全局上下文

Speaker B: 这再次说明我丝毫不以这个界面设计自夸,完全相反,它设计得并不算好。但你可以看到,我们在那里的结构有点奇特,看起来略微像一棵树,有些节点分叉出去,随后又汇合回来。正如 Philippe 所言,这是另一种问责机制:对于某些决策,模型要么会先做出假设,并试图向你求证确认,例如“嘿,这个对吗?这是你在这里打算采用的数值吗?”,要么就是尝试厘清这些细节如何契合进整个全局系统中。

我们当时认为,要展现出“必须设计一个能够赋予你问责能力的 Harness”,最好的方式就是确保你能完整追踪所有已做出的决策、明确具体是由谁做出的决策,并且心里非常清楚:这究竟是 Agent 擅自假设并被我放行至后续流程的,还是由我主动修正并输入的?我本人是一个极度看重视觉化呈现的人——这或许反映了某种思维偏好,我也说不准——但我之所以认为它不应该是一段线性单向的对话,而应该具备分支分叉再合并回流的结构,原因在于:当你在与 Agent 进行金融理财类的对话探讨时,你很可能会在某个决策已经生成之后,才突然重新琢磨起某件事,而你完全有权利纠正先前的信息并补充更多背景事实。

因此我认为至关重要的一点是,在构建 Harness 时,你不仅要建立用于验证确认、确保权责明晰的卡点,还要建立能够纠偏校准的机制,并且保证你可以安全地进行纠偏——绝不能出现“哎呀,就因为我在聊天框里多敲了这么一句话,我之前的全盘推演分析就全毁了”这种糟糕情况。我在尝试解决问题时,这种情况已经发生过无数次了:可能我正心不在焉地对着手机进行语音输入,中途随口插了一句话,结果整个分析全被冲掉了,因为我根本没办法单独撤回那句话并让它保留其余的原样内容。

因此,这为我们提供了另一种手段,去对进入金融分析系统的内容承担起责任,以及……你打算切换回幻灯片吗?好的。那太棒了。所以,有几件事我们可以动手试一下:你可以把光标悬停到婚礼案例中显示宾客人数的标签组件上,点击它就会将其添加进对话框,然后你就可以说:“噢,其实不是这个数字,我们请的宾客绝不会少于 150 人,比如这样。”

这就会促使你的 Harness 重新审视推演计划,评估该输入对其他环节产生的联动影响,并据此提出计划修改建议,或者直接更新该输入数据。这里最核心的关键在于:你是有意识地构建了这种反馈机制,并且必须保持判断力,确保意识到该输入可能会颠覆你的整个推演体系,从而做出审慎且具连带责任的决策。你必须时刻跟进把控,确保这些变更合情合理。

另一件你可以尝试的事情是,点击第五步,你可以开启一个新的分支对话——我想页面底部对话框旁边的按钮就叫做“分支对话”(branched conversation)……

英文原文

Speaker B: this is like, again, not priding myself on any good design at all, anything the contrary. But you see we have a little bit of a weird structure there. Looks like a tree a little bit with something branching out joining back in. That's another accountability mechanism, as Philippe is saying, where there's some decisions the model will either assume and just try to verify with you like, "Hey, is this right? Is this the number you want to use here?", or just try to figure out things how they fit into the overall system.

We thought a good way to showcase that you need to design a harness that gives you the accountability is making sure that you can trace all the decisions that have been made, who made them, and have that sense of: well, this was something that the agent assumed and I let carry on in the rest of my flow, or it's something that I provided a revised input to. And the reason, again, I'm a very visual person, that could be a symptom of something, I don't know, but the reason I think it's kind of like not a straight-line conversation, but rather branching out and then branching back in, is that when you're chatting with an agent, again for financial purposes, you may reason about something after a decision has been made, and you are well in your right to correct information and add more context.

So, I think it's important that when you're creating a harness that you not only build those gates for validating things, making sure that you're still accountable, but also for correcting the course and making sure that you can do so safely and it's not like, "Oh, because I typed this sentence in the chat, now all my analysis is gone." That has happened to me many, many times trying to solve a problem, and maybe I was like dispersed dictating to my phone, I said something in the middle of it, and then the whole analysis is gone because I can't really take away that one sentence and please keep everything else as it was. So this gives us another means to be accountable for what goes into the system for financial analysis and what—do you want to move to the slides? Yes. Okay, cool.

So, a few things we can try. You can go and hover into the chip that says how many guests we have in the wedding example. And you can add that, that will add it to the chat, and you can say, "Oh, actually, it's not this number. We will get no fewer than 150 guests, for instance." That will get your harness to rethink the plan, see the consequences of that input into other stuff, and suggest either a modification of your plan or just change the input, whatever. The important part here is you build the feedback mechanism on purpose and you have some judgment over making sure that there is some consequential decision making on the fact that this input may change your whole analysis. You need to be on top of making sure that those changes make sense. The other thing you can try is, if you click on step five, you can open up a new branch conversation—like a branched conversation, I think is the button on the chat at the bottom—

Speaker A: 在这里。

英文原文

Speaker A: here.

Speaker B: 对,没错。你可以由此开启一个新的分支。在座有人用过 Claude 上的 /btw(顺带一提)命令吗?你们的使用体验如何?

英文原文

Speaker B: Yeah. Yeah. So you can open a new branch. Has anyone used the slash btw by the way thing on Claude? How has been your experience using it?

Audience Member 1: 有时候挺管用,有时候不管用。

英文原文

Audience Member 1: Sometimes it works, sometimes it doesn't.

Speaker B: 有时候管用,有时候不管用。而且给人的感觉是,你虽然是在插话旁白,但它并不是一个真正完全独立的旁白插曲。

英文原文

Speaker B: Sometimes it works, sometimes it doesn't. And it feels like you're doing an aside, but not really an aside aside.

Audience Member 2: 它最终还是会变成主上下文的一部分,对吧?

英文原文

Audience Member 2: It becomes a part of the context, right?

Speaker B: 但你有的选吗?比如我在长篇对话进行到一半时,突然冒出了一个可能很蠢的小问题。

英文原文

Speaker B: But do you get a choice? Like maybe I have a stupid question in the middle of the conversation.

Audience Member 2: 不,根本没得选。(笑声)只要我提了问题,它就会硬生生变成当前 Session 对话上下文的一部分。

英文原文

Audience Member 2: No, I don't have a choice. [laughter] If I ask a question, then it becomes the part of the session.

独立分支与最终检验原则:构建隔离旁白与第二双眼睛

Speaker B: 是的,一点也没错。所以在这里,我们试图达成的效果——再次回到我们为什么要设计成这样的初衷——就是想向大家展示:如果我们带着“这明确必须是一段完全独立的旁白”这样的设计意图去打造系统,体验究竟会变成什么样。当我和 AI 对话时,经常会冒出太多蠢问题,实在太多了。虽然有点难为情,但我最终不得不另外单独开一个新聊天窗口,因为我根本不相信它不会污染我当前正在进行的主任务。而且如果只在当前窗口问,我还得多花时间特意叮嘱:“听着,这是一个蠢问题,千万不要把它用在其他任何分析推演里”——正如刚才 Philippe 所说的那句“请千万不要犯任何错误”一样。

英文原文

Speaker B: Yeah. Yeah. So in here, what we're trying to do, and going back to why we're doing it like this, we want to show you how it could feel if we design something with the intent of, well, this really needs to be an aside. I have too many stupid questions when I'm chatting with AI. So many. And it's shameful, but I end up having to open a separate chat because I don't trust it's not going to contaminate what I'm doing. And then I will take more time just being like, "Hey, this is a stupid question, please don't use for anything else"—is the "please don't make any mistakes" thing Philippe was saying—

Speaker A: 这种靠口头叮嘱的方式根本不管用。因此,无论你设计什么系统,如果内置了反馈机制,务必确保将其量身定制为你实际期望的使用形态。

好,哎呀,太棒了。接下来谈到最后一个要点,也是最后一项原则:检验核查(verification)。你需要引入“第二双眼睛”来把关,这一原则直接建立在问责原则的基础之上,因为你同样需要对那次核查审查负起责任。这么说或许有些过于抽象,但在座各位是否曾经亲身遇到过这样一种情况……

英文原文

Speaker A: doesn't work quite well. So whatever you design, if you have a feedback mechanism, make sure that you tailor it to how you actually want to use it. Oops, cool, and then as for the last point, the last principle will be verification. So you want a second pair of eyes, and this builds on the principle of accountability because you are accountable for that review as well. And maybe that's too abstract, but has anyone been in a situation where

代码审查与责任归属的困境

Speaker A: ……有人把一个糟糕决策的责任推卸给你或其他任何人,理由仅仅是“不,但是弗朗西斯科,你审查过它了”。这种情况确实会发生。

英文原文

Speaker A: ...someone passed the blame on a bad decision to you or anyone else just on the basis of "No, but Francesco, review it." That happens.

Speaker B: 这种情况确实会发生。大约一个月前我们进行过一次有趣的对话,当时有几个人开始意识到:在 VIP 编程(VIP coding)中,确保某样东西优质或正确的重担,最终全部落在了团队中的审查人员肩上。这让人感到非常沮丧,因为你只是收到了大量看起来貌似没问题的产物,但最终确保它确实正确的责任却全落在了你身上。整个验证原则的本质,实际上是构建更多的反馈循环,让你不至于存在盲点,但同时又绝不会转嫁或免除任何应负的责任。

英文原文

Speaker B: That happens. So, um, we were having a funny conversation like a month ago where a few a few people are starting to have thoughts that the burden of something being good or correct with VIP coding ends up being in the hands of the reviewer in a team that feels really demoralizing because you're just being given a bunch of stuff that sure looks about right, but then it's your responsibility responsibility ultimately to make sure that it is right. This whole principle of verification is just building more feedback loops so you don't have blind spots but without relegating any of the accountability.

Speaker B: 归根结底,这仅仅是来自不同来源的额外信息,目的是避免认知偏差,避免你陷入自己固有的思维和流程之中。但它丝毫不会剥离任何责任或问责制。

英文原文

Speaker B: Ultimately, this is just extra information from a different source to avoid biases and avoid you getting stuck on your own thinking and your own processes. But it doesn't remove any of the responsibility or accountability.

专家直觉与快速核对:薄片认知(Thin Slicing)

Speaker B: 很有趣的是,真正的专家往往不会去逐个单元格进行检查。这更多来自我与数据部门的财务团队打交道的经验。他们打开一个电子表格,只需要看几个他们知道能给出大致总体规模(ballpark total)的单元格,只要感觉不对劲,他们就会指出来。比如:“我们怎么在营销上花了这么多钱?我觉得这不对。”这在某种程度上是一种本能反应。你不需要耗费大量的精力,不需要完全推翻重做你的方案,也不需要质疑自己做出的每一个决定,但你确实需要有一个独立的参照点。

英文原文

Speaker B: Um yeah, funny enough, expert experts often do not check every cell. And this is more on like my experience working with financial finance teams in data. A they could open a spreadsheet and just look at the you know a few cells they know will give you a ballpark total and if it doesn't feel right they will let you know. It's like, how did we spend this much money on marketing? I don't think that's right. Uh, and it's a little bit of a gut reaction. You don't need a lot of effort. You don't need to like redo your plan entirely or challenge every decision you're made, but you do want to have a separate point of reference.

Speaker B: 我记得之前有一个例子,虽然细节不太确切,但大意是推特上有条非常著名的推文,说埃隆·马斯克拥有不知多少万亿美元,然后有人评论说:“既然如此,他可以给全世界每个人分一百万美元,自己手里还能剩下钱。”当时看到的人就会一愣:“等等,什么?这感觉不对啊。”你读到它时会觉得:“等等,什么?乍看之下似乎还挺说得通?”但转念一想:“不,不对,这完全算错了。”这种需要促使你去核查对方计算过程的反应,其实就是一种直觉。因此,让某种机制进行审查并给你一个粗略的答案,或者在看起来不对劲时提出一些质疑,是非常有帮助的。

英文原文

Speaker B: Erh, I think I I had an example, but I don't remember what was it was something about a tweet that got really famous about Elon Musk having I don't know how many trillion dollars and someone saying like, well, he could give a million dollars to every person in the world and still have money. And he was like, wait, what? That doesn't feel right. Like you read it and you're like, wait, what? Looks plausible. And then you're like, "No, no, that's not right." And that needed need that needed for you to look into the calculations the person made is like a little bit gut feeling. Um, so just having something review and give you a rough answer or some challenge if something doesn't look right is extremely helpful.

Speaker A: 抱歉,请补充。

英文原文

Speaker A: Sorry. supply.

打破黄金示例局限:引入外部参照

Speaker B: 这个问题问得太好了。我之前一直在尝试想出一些更接地气的例子,但我认为这是一个非常值得深入探讨的话题。一个常见的合理疑问是:如果你已经拥有了关于数据应该长什么样的黄金示例(golden examples),为什么你的处理流程还会产生与之不同的结果?为什么不能直接比对你的黄金示例呢?

英文原文

Speaker B: That is such a good question. Uh I was trying to come up with a examples that feel more down to earth, but I think that's a very conversation to have. A good argument is if you're getting golden examples of how the data should look like, why would your process give you something different to that? Like why don't you just check with your golden examples?

Speaker B: 这是我想从财务领域抽象出来的一个概念:你拥有海量的信息来源,非常丰富。在你的数据之外,你总是拥有另一个参照点。因此,如果当前使用的某些数据源声称了某个事实或数值,你还有互联网可供查验。你应该始终尝试通过跳出当前使用的资源、去审视所有其他资源来增强你获得的信号,以此避免陷入反馈闭环——在这种闭环中,你只能看到手头现有的信息,只能看到自己的黄金示例,以至于在自己看来一切都很正常。在构建测试与运行框架(harness)时,一定要发挥一些创造力,引导它可以引入哪些其他参照点,以帮助你做出更好的决策,或者及时发现某些不太对劲的地方。这样解释能说明白吗?

英文原文

Speaker B: And this is something I I wanted to abstract away from the world of finance. You have a lot of sources of information, a lot of them. You always have another point of reference outside of your data. So if some sources you're using are claiming I don't know whatever fact a number you have the internet you should always try and enhance the signal you're getting by looking out look at all the resources that are not the ones that I'm using and you avoid that h feedback loop where you only have the information you have available you only have your golden examples and everything looks right to me Always try to get a little bit creative when building a harness to try and guide which other uh points of reference it could use to help you make a better decision or to know if something is not quite right. Does that

跨领域视角与盲区校准

Speaker B: 是的。我想我们通常会尽量与相关人员合作,去理解智能体应该使用的最佳工具集合与最佳答案是什么,从而弄清楚如何达到最优状态。再给你们举一个可能有用的例子:我认为黄金示例为你提供了基准真相(ground truth),确保你处于正确的空间范围内,但没有任何领域是孤立存在的。

英文原文

Speaker B: Yeah. And I guess we generally try to like work whoever it is to like understand what would be the best set of things that agent should use the best answer. So trying to understand how that would have been the optimal to give you another example that could be useful. I think the golden examples give you your ground truth for making sure that you are within the right space but no domain is isolated.

Speaker B: 以前我在某家公司做商业智能(BI)分析师时,经常遇到这种情况:我以为自己写的代码非常好,我的查询很棒,得出的数字看起来很合理,我检查了所有环节,没有发现任何疏漏。然而,当我把仪表板展示给某位业务干系人时,对方立刻就说:“这不对。”我当时的第一反应是:“你这是什么意思?你难道比我更懂 SQL 吗?这分析是你跟我一起做的吗?”结果发现,这个人来自另一个独立的团队,他们对当年相关业务的实际销售量大致有一个清晰的预期数字。因此他们凭本能就知道那个数字绝不可能是对的,因为如果这个数字是对的,就意味着他们在另一个系统里的数据全错了。

英文原文

Speaker B: So what happened to me a lot of times when I was a BI analyst in some like company is that I thought what I wrote was really good. So my query was good. The number I got seemed reasonable and I was checking everything and nothing looked off. And then when I presented the dashboard to some stakeholder immediately went like that's not correct and I was like what do you mean? Do you know SQL more than I do? Did you do do the analysis with me? And turns out this person was from a separate team and they just had an idea of how many whatever sales were made in that year. So they knew instinctively that number can't be right because it means my information in this other place is incorrect.

Speaker B: 如果我们把这种现象迁移到智能体(agentic)的世界中:我在自己的测试框架中为智能体提供的黄金示例,本身就是基于该领域的某些先验偏置与选择性偏差构建的,我挑选它们是因为我认为它们在该领域足够好。但当你从一个稍有交集的相邻切向领域(tangential domain)来观察时,你可能会发现这实际上根本讲不通——仅仅通过比对我手头现有的另一份事物,就能看出这个数字是错的,我甚至都不需要重新回过头去检查自己的计算逻辑。

英文原文

Speaker B: So it's not if we translate that to the agentic world the golden examples I will give my agent in my hardness will be based on like biases and selection bias and so on based on the domain and I picked them for the domain and I think they're good for the domain but when you look at a slightly tangential domain you may find out that actually this is nonsensical like this number is wrong just by looking at this other thing next to me I I don't even need to look again into my calculations. Cool.

构建双向对齐与外部验证机制

Speaker B: 有一个概念叫做“薄片认知”(thin slicing),即你拥有基于个人经验提炼出的微薄切片,依靠你在本领域的经验沉淀,你天然能感知到哪些东西感觉是对的,哪些感觉是错的,无论你面对的是何种具体分析。而大语言模型所拥有的,则是全人类其他人经验的统计平均值。

英文原文

Speaker B: Erh. So there is a concept called thing slicing where you have thin slices of your anecdotal experience and you know what things feel right or feel wrong based on your experience in your domain. Whatever analysis you're doing. the model will have an average of everyone else's experiences.

Speaker B: 因此,在构建你的测试与运行框架时,你必须确保建立起反馈机制,从而能够在模型自以为掌握的认知,与你实际所认知的领域真知之间进行双向验证。如果你把刚才这句略显复杂的话倒过来看,这正是我们开启整个框架和所有基本原则的初衷所在——你始终在努力达成那个共同的领域与共享上下文。本质上,你是在将自己的业务语言转译为模型的训练数据集语境;你正在与模型协同,告诉它:“好的,这就是我对业务问题的理解方式,或者这是我们公司处理此项业务的方式。”然后模型也在配合你:“好的,如果是这样,我该如何在我的训练数据集中去匹配它。”

英文原文

Speaker B: So when you're building your hardness, you need to make sure that you can uh have a feedback mechanism so that you can verify from what the model thinks it knows all the way to what you think you know. And if you flip that convoluted sentence I just said it's the it's how we started the whole framework and all the principles where you're trying to get to that shared domain shared context. You're essentially translating your language into the training data set for the model. You're just working with the model to be like okay this is how I understand the problem or how my company does this. and then the model is helping like okay this is how would I fit it in my training data set

Speaker B: 而在这里,我们做的事情恰恰相反:我们是在表明,“我认为我们已经达到了让你能对这个领域做出合理判断的程度,但我们仍然需要保留一个反馈循环,以便我能根据自己的实战经验告诉你,这个结果看起来是错得离谱,还是合情合理。”所以,用“模型眼中的‘可能没问题’,与你标准里的‘合格’可能大相径庭”来概括是非常贴切的——模型觉得“看着差不多”,但事实证明你的公司非常在意那 5% 的误差。为你团队构建运行框架时,认识到那 5% 的差异足以对整个团队造成致命打击,这一点将产生天壤之别。

英文原文

Speaker B: here we're doing the opposite we're just saying okay I think we got to a point where you can make a reasonable judgment over this domain but let's have a feedback loop so I can tell you from my experience if this looks entirely off or if it looks reasonable so um yes it's probably fine may look nothing like yours I think is a way good way to describe it like yeah it looks about right and then turns out your company does care about that 5% difference it makes a world of a difference when you're building hardness for your team that you're aware that that 5% it will be a deal breaker for the whole team.

Speaker B: 如果你缺乏实现这一点的途径,就会产生不良后果:比如不得不逐行检查一切代码,或者干脆彻底放弃检查,对什么是“大致靠谱”完全丧失概念。如果你本身没有那个外部参照点,你的测试框架自然也无法拥有它。因此,你必须主动构建这类外部验证机制。这部分我就先跳过一些内容。关于验证,正如我们在决策环节添加的那些备注一样,我们是在为模型自以为知晓的内容引入一个外部参照点。当整个流程这样运转起来时,效果是相当令人满意的……

英文原文

Speaker B: Um there's some stuff that happens if you don't have um a way to do this. So checking everything line by line or checking nothing or you know no sense of what about right looks like and if you don't have that point of reference your harness won't have it either. So you need to build those kind of like external validation points. I'm going to skip through some of this. And for the verification, it's those notes in the H decision as well where we're adding uh an external point of reference to some of the stuff the model thought it knew. It's kind of satisfac satisfactory when the thing just like

分支挑战与可追溯的智能体审查

Speaker A: 分支重新合并回主干。

英文原文

Speaker A: the branch go comes back.

Speaker B: 是的,一点也没错。我认为这同样建立了一种追溯线索,使得人们能够进行审查——刚才提到的那种“薄片认知”以及快速的本能审视,很大程度上也源于此,因为你能够借此理解智能体所经历的完整思考过程,而不仅仅是只看到孤立的最终输出。让我切回前一个界面。是的,就像其他示例一样,如果你还在跟着操作的话,有几件事你可以亲自动手尝试。

英文原文

Speaker B: Yeah, exactly. And again, I think it creates a a trace to to um be able to like the the thin slice and the quick instinctive look also comes from from this because you understand the thought process that the agent went through and not only the the output only. I go back. Yes. So, as with the other examples, if you're still following along, uh there's a few things you can try.

Speaker B: 你可以在标记了“挑战”(tagged challenge)的地方新建一个分支。这本质上是我们分配的一个独立智能体,专门负责审查规划、复核假设前提,并进行良性的质疑挑战:“这读起来合情合理吗?”所以只需点击展开它,你就会看到正如菲利普(Philippe)刚才演示的那样,它会重新合并回到主干中,并切实对方案做出修改调整。因此,它会产生实质性的影响与结果,而我们认为,在有意识地设计测试与运行框架时,这也是至关重要的组成部分。我们本可以把它仅仅设计成“LLM 裁判”(LLM as a judge),也就是说,对于每一个……

英文原文

Speaker B: So, you can open a branch uh on a tagged challenge. That's basically a separate agent that we tasked with reviewing the plan, reviewing the assumptions, and then doing some healthy challenge. Does this read reasonable? Um so just click it open it up and then you will see how just Philippe did it will join back into the trunk and actually change the plan. So there is a consequence and we think this is another important part of being intentional with the design of your harnesses. We could have left it as LLM as a judge. So for every

构建可信财务治理 Harness 的五项核心原则

Speaker A: ……对每一个决策、每一个计划,都直接启动另一个智能体去跑,做个审查然后就草草了事。问题在于,如果缺乏有效的反馈闭环,我们做出的财务决策或任何业务判断就根本无法得到改善。因此,这正是设计的一部分:你需要培养出这样一种工程品味,针对你所面对的各种具体业务场景,打造出契合需求的专用 Harness(运行与评估脚手架)。

另外,你还可以尝试另一种做法:打开另一个选项,直接点击忽略或驳回。我们是有意这样设计的,因为正如我之前提到的,有些对话实际上并没有带来任何改变,或者对你的核心流程并没有实质性影响,而你作为当事人自然最清楚这一点。因此,你必须具备这样的参考基准来对各类输出进行有效验证。

总结来说,我把这些内容在屏幕上停留片刻。如果你目前还在摸索和尝试如何构建 Harness,那么这套用于搭建值得信赖的、能直接托付财务数据与真金白银的高质量 Harness 框架,主要是建立在以下五项核心原则之上的:

  1. 确立共享领域(Shared Domain);
  2. 保持一致性(Consistency);
  3. 出示凭据与依据(Showing the Receipts);
  4. 明确责任机制(Keeping Your Accountability);
  5. 建立有意识的独立验证闭环,跳出你个人自以为知的思维盲区(Intentional Loops for Verification)。

呃,怎么回事?居然没有庆祝彩花,真令人失望。

好的,在某些场景下,我们认为明确界定这些原则尤为重要。抱歉,看到你举手了。

英文原文

Speaker A: ...decision, for every plan, whatever, spin another agent and then do a review and call it a day. The problem is if there's no feedback loop, our financial decision or decision whatsoever doesn't improve at all. So that's part of the design, the taste you need to build to create fit-for-purpose harnesses for whatever use cases you have.

Then the other thing you can try is opening another and just clicking on dismiss. And we did that on purpose because sometimes, as I was saying before, some conversations don't actually change anything or not material to your process and you will know better. So you need to have that kind of point of reference for validating things.

So just to summarize and leave this on the screen for a moment. If you're still playing around with the harness, the framework for building really good harnesses that you can trust with financial data with money, it's built on these five principles: having a shared domain, having consistency, showing the receipts, keeping your accountability, and making sure that you create intentional loops for verification outside of what you think you know.

Erh, what? No confetti. Disappointing.

Okay. So, there's a few cases where we think it's important to define. Oh, sorry. You had your hand up.

通用工具还是专用 Harness?架构边界与投入成本的权衡

Audience: 是的,我想先确认一下自己的理解是否正确。你为我们带来了包含这五项原则的框架体系,大家可以基于此构建自己的 Harness,并且你也拿出了一个 Harness 作为具体案例。

所以我在思考的是:我们究竟应该在什么时候去构建一个 Harness?这个 Harness 的通用程度或专用程度应该如何把握?因为解决具体问题往往需要特定的 Harness,以你自己的实际工作为例,你平时会维护多少套 Harness?是只做一个通用的 Harness,把所遇到的所有业务问题都放进去解决,还是会针对不同场景构建多个更加专用的 Harness?这种 Harness 究竟要做到多通用?你构建新 Harness 的频次又是怎样的?比如你会投入多少精力去开发一个?是每个月做一个,还是每六个月才构建一个?

英文原文

Audience: Yes. So, I just confirm my understanding. You brought us a framework like this five principles. You can build your harness upon it. And you also brought one harness as an example.

So, I'm thinking about when should I build harness, how generic or how specific the harness should be? Because you solve problems with the specific harness and like for example, how many harnesses do you have in your work? It's just one and you solve everything that you have for this in this harness or you have multiple more specific harness. How generic and how often do you build one? Like how much effort do you put in building one? You make one every month or you make one every six months.

Speaker A: 这是一个非常棒的问题,当然它并没有非黑即白的标准答案。

我认为我们可以把这看作一个光谱的两极:光谱的一端是,直接使用 Claude Code 或者 Codex 处理所有事情,把一切业务逻辑都塞进提示词技能(Skills)和指令文件里;而在光谱的另一端则是,每遇到一个全新的微小需求,都从零开始独立构建一套 Harness。显然,后一种做法在某个时刻会让人精疲力竭,因为你花费在制造工具上的时间,甚至远远超过了真正使用工具去创造价值的时间。

所以这依然没有唯一定论。我认为这取决于你何时认为某个业务场景的价值足够重大。也就是说,当你极度渴望结果的可重现性时;或者当你发现使用现成、预置的 Harness 频繁出错,输出质量无法满足要求时。因为构建专用 Harness 带来的核心价值,正是让你能够在确定性逻辑与大模型的非确定性之间取得更紧密的把控力。

我们之所以在财务分析这一特定业务场景下重点探讨这五项原则,是因为如果在缺乏这些保障机制的 Harness 中处理此类业务,就极有可能会踩入 Francesco 在刚才各个步骤中逐一拆解的那些典型陷阱。因此在这种情况下,为了规避这些反复出现的固有缺陷,投入精力打造专属 Harness 是完全合情合理的。

但归根结底,我认为这取决于有多少最终用户会真正走入该业务流程,以及你所面对的问题究竟有多关键。举例来说,如果你处理的是一个非业务核心的任务,即使需要多进行几轮交互才能校准,让人类留在回路中审查输出并引导智能体,通常也完全能够接受。然而,如果你要把系统交付给企业内部团队使用——比方说为公司内拥有 50 名信用分析师的专业团队构建支持系统,供他们据此做出事关公司命运的重大关键决策——那么在这种严苛场景下,你绝对无法容忍输出结果存在任何不可控的波动与不确定性。

因此正如我所说,这里并没有非黑即白的划线准则,但这些维度正是我在做架构选型与权衡决策时会重点考量的核心因素。

英文原文

Speaker A: That's a that's a great question and there's no clear answer of course. I think we could trace as you said like the two ends of the spectrum as: I just use Claude Code or Codex for everything and I just embed everything into skills instructions so on so forth; and on the other end of the spectrum is for every small new thing I want to do I'll build it from the ground up. And like of course that will get tiring at some point because like you're spending more time creating your tools than actually using the tools sometimes.

Again there's no clear answer. I think it comes to when you feel the use case is worth enough. So you want reproducibility, you want it to feel—the results you are getting using the pre-built harnesses are very frequently getting it wrong, because the value you get from building the harness is you get more control, again with the deterministic bit together with the non-determinism. Right?

The reason why we're talking about the principles in the scenario of a financial analysis is because if we do this type of use case in a harness that doesn't have it, we'll probably have some of the pitfalls that Francesco talks through each of the steps. So then in this case it makes sense to avoid these pitfalls we are seeing over and over and over again to build the thing.

But again, I think it comes down to how many users you believe will go through that use case, how critical is the problem that you were seeing. So if there's a non-business-critical task that you were solving, you were probably fine to have a human in the loop reviewing the outputs that you get and steering the agent even if that takes a few extra turns. But if you're putting this in the hands of an internal user—for instance, let's say you were building something for your team of credit analysts, you're going to have 50 people using something to support key company decisions—yeah, you absolutely don't want a lot of variability on that.

So again, there's no clear-cut I would say, but these are the things I would consider in making the decision.

高风险场景的信任机制与“磨刀误砍柴”的反思

Speaker B: 或许我可以从反事实的角度来补充说明一下。我们认为这套方案是专门针对财务类 Harness 的绝佳配方,其根本原因在于财务场景牵涉的利益和风险极其巨大,你必须引入密集的反馈闭环。这类业务本身存在诸多极具特殊性的要求,我们在此所呈现的方案,正是对这些特质在个人决策及企业层面的集中映射。

但设想一下,如果你使用 AI 仅仅是为了批量生成社交媒体营销内容,你的目标只是像其他人一样,在 Instagram 和 TikTok 上铺天盖地发布 AI 自动生成的短视频。在那种场景下,这里列出的许多严苛步骤你可能根本毫不在意。比如证据收集(Evidence gathering)?何必多此一举?至于独立验证机制或责任追溯,对于发发短视频来说就更无关紧要了。因此,这套方法论是高度聚焦于财务类严肃场景的,尽管它可以向外延伸应用到不同层级的任务中,但一切的核心都维系于一个基石——它必须是一套建立信任的系统。如果你的业务场景不具备这种高信任、高风险的特性,这套配方可能就没那么适用了。

至于你究竟应该构建多少个 Harness,我认为 Filipe 刚才表达得非常到位:你很容易陷入“一直在磨刀、却从未真正用刀砍过柴”的陷阱。

因此在实际操作中,当你尝试解决某个问题却得不到正确结果时,你可以先尝试添加几项针对性技能(Skills)、编写几个专用命令,或者补充一些辅助指令;如果此时依然无法获得理想的输出或预期体验,你发现自己开始被迫在多个聊天窗口之间反复复制粘贴文本、不断开启新的会话,整个流程变得极其繁琐复杂——到了这个时候,面对那些你已经重复机械操作了三到五次的事情,你就应该停下来,专门围绕它设计并封装一套固化的专用 Harness。

英文原文

Speaker B: Maybe I can help with the counterfactual. So, we think this is a good recipe specifically for financial harnesses because there's a lot at stake. You want a lot of feedback loops. There's very specific things about those use cases that somehow we're representing here even at the personal level or the company level.

But imagine you want to use AI just to produce like social media content and maybe one of your use cases is just flooding Instagram and TikTok with AI generated videos like everyone is doing. There's some steps here that you probably don't care that much. Evidence gathering—what for? Verification or accountability even less so. So this is specifically geared towards like financial use cases and it can be extended to different levels of it, but everything hinges on the fact that is a trust system. This recipe may not be as useful if your use cases are not necessarily like that.

And in terms of how many harnesses you want to build: I think Filipe said it better, but you can easily fall victim for doing a lot of axe sharpening and not actually using the axe. So, at some point, if you're trying to use something and you're not getting the right results, you can try adding a couple of skills, a couple of commands, a couple of extra things. Still not getting the results or the experience you want, you're finding yourself copy pasting text from one chat to another, opening a new session, it feels convoluted—harness. So all the repeated things that you had to do three, five times: okay, just once, and you design it around it.

Audience: 明白了,非常赞同。

英文原文

Audience: Yes. Yes.

从筹办婚礼到企业落地:面对管理层质疑时如何建立可信度

Audience: 我还有一个紧密相关的问题。比如在筹办婚礼这类生活规划任务中,一种直观而朴素的想法是引入多智能体协同,比如分别配置餐饮智能体、场地智能体等等。你们是否尝试过这种思路?实际效果如何?或者你们对此持有什么看法?

英文原文

Audience: Some more related question. So for your wedding planning task, right? I think one of the naive way of looking at this is like maybe agent, right? Like agents, venue agents. Have you tried that and what's the outcome or like your opinion on that?

Speaker A: 我得先坦白一件事:我订阅了 Anthropic 最昂贵档位的大模型服务,并且彻底把用量额度刷爆了——毫不夸张地说,Anthropic 绝对因为我而出现了亏损。

我当时尝试让它去全方位调研婚礼涉及的所有环节:搜寻所有备选场地、挑选鲜花装饰、推进整体婚礼筹划,甚至针对各种不同花销预算方案做详细的推演规划。在这个过程中我发现,在很多场景下,原生大模型配合其最新的网页搜索及精细化工具,表现已经足够出色——例如它能干净利落地帮我整理出马德里排名前五的婚礼摄影师详单,整个过程体验极其丝滑,我根本不需要额外去构建定制化的 Harness,直接开启对话、进行信息对比,甚至直接向他们发送咨询邮件即可。

然而,一旦进入某些更加精细微妙的场景,当我必须拥有更高的掌控度与结果确定性时——这恰恰直接关联到了前文所述的财务核心属性——我便真切地意识到:我必须构建一套强健可靠的专用系统,因为我绝不能容忍关键财务数据被算错、然后被迫反反复复重新计算。

为了让大家真切体会这种痛苦,我至今清楚记得有那么一天:当时我坐在车里,想着可以通过语音模式直接向它口述指令。那是一段往返大约各需一小时的驾驶路程。就在整整两个多小时的车程里,同一段规划对话我硬生生重复了三遍!原因就在于每一次我试图让它处理与财务直接挂钩或高度相关的规划计算时,中间总会莫名其妙出现偏差或崩溃,让我不得不推倒重来。所以答案是肯定的,那段经历让我深刻体会到了专用 Harness 的不可或缺。

英文原文

Speaker A: I will start by confessing that I have the most expensive Claude subscription and I do max it out, and not in a good way, as in Anthropic is definitely on the on the red because of me.

I tried research everything for all the venue, the flowers, the wedding, do the planning, do the different scenarios for how much we will have to pay etc. And what I found is that in many cases it was good enough to give me the list of the top five photographers in Madrid with the new web search with like a refined tooling etc. Worked like a charm. Didn't have to do anything else just spinning and having comparisons and even reaching out to them.

But for some more nuance use cases where I do want to have more control and predictability, and this is linking to the financial nature of them, I did find myself being like: I need to build something robust, I'm not recalculating this again. And to make the pain very real, I remember myself one day because I was in the car and I was like: I can dictate some stuff, voice mode. And then I was driving and it was about an hour drive back and forth, you know, an hour and an hour, and I had the same conversation three times in that trench just because every time I was trying to do some financially related or adjacent planning, something will go wrong and I'll be like... so yes, that helps.

Audience: 回到前面提到的商业智能(BI)分析的例子。在过去,大家往往不需要专门安排专人去人工核验你的每一条 SQL 查询语句。现在我们借助 Harness,感觉像是把 SQL 查询推向了全新的自动化与智能化维度,而且构建这些工具和 Harness 的门槛也大幅降低了。

那么在实际的企业沟通中,面对公司高管层时,你们是否总结出了一套有效的方法,能够把这一逻辑向高层清晰传达?因为在我的现实感受中,管理层只要一听到“引入了 AI”,往往就会理所当然地预期它能做到 100% 的绝对精准无误。你们理解我表达的核心顾虑吗?

英文原文

Audience: So getting back to your example of being a BI, right? Like I don't think back in the day there were people who were validating your SQL queries, right? So this seems like it's like next level of SQL queries right now you're building tools because harnesses are easier to build and stuff. Have you found ways to kind of make this point clear to leadership in conversations? Because to me it feels every time there is an AI, there is an expectation that it will be 100% correct. Like you see what I'm getting at?

Speaker A: 你的核心问题是关于如何管理管理层的预期,好让大家在推进智能体自助服务时能够对齐认知吗?

英文原文

Speaker A: So is your question about managing the expectations so that when people do agentic self-serve...

Audience: 不单纯是智能体自助服务,更确切的场景是:假设你构建了这样一套 Harness 系统,当你走进高管汇报会议,准备为公司重大财务决策提供支撑论据时,领导层肯定会对方案进行极其严苛的追问与刨根问底。在那个时刻,一旦你透露出“这个分析结论是我借助 AI 和 Harness 推导出来的”,他们很可能当场就会质问:等等……

英文原文

Audience: It's not agentic self-serve, more so like let's say you build this and you're talking to your senior leadership to make a financial decision in your company, right? And they start drilling you and drilling you, and the moment that you say, "Oh, I use AI and harnesses," they're like, "Well...

成果驱动与建立 AI 信任

提问者:这必须达到 200% 的准确率之类,你懂我的意思吧?你们有没有找到什么办法,能切实让他们明白这底层其实仍然是在跑 SQL 查询?

英文原文

Audience Member: this has to be 200% correct or something like you know what I'm saying? Have you found the way to to kind of make sure that they understand this is still SQL queries?"

主讲人 A:稍微剧透一下……

英文原文

Speaker A: Bit of a spoiler,

主讲人 B:不过明天正好有一场相关的演讲。[笑声]

英文原文

Speaker B: but there's a talk tomorrow. [laughter]

主讲人 A:我不太确定。你有什么想法吗?[清嗓子]

英文原文

Speaker A: I don't know. Do you have any? [clears throat]

主讲人 B:对,没错。我认为在如今这个“AI 原生 / AI 优先”(AI-first)的世界里,正如你刚才所说,我们有时会忘记 AI 本质上仅仅是一个工具,是达成目的的一种手段,关键在于它背后究竟在解决什么问题。

从 Monzo 的实战经验来看,我们一直是从高度关注“业务影响与成果”(impact-based)的角度来切入的。也就是说,重点绝不是“我们应该为此使用 AI,只因为 AI 能做到某某事情”;而是“我们在这里期望达成的业务产出究竟是什么?我们该如何在此衡量成功?”

比如,我们是否希望减少与 BI 团队来回沟通核对的拉扯?尽管我们甚至没有专门的 BI 团队,但你明白我的意思——比如为了验证一个新仪表盘。好的,那我们就可以追踪这个指标,实际看看 AI 能否协助我们实现这一目标产出。再比如,我们是否希望减少因为数据看起来不对而提交的内部咨询工单?如果是,那我们就去监控这个指标。

在某种程度上,我们具体采用哪种方式、哪种实现路径,其实并没有那么重要。因为归根结底,它只是一个能帮我们更快达成目标结果的工具,同时配合了更完善的防护栏(guardrails)等机制。因此我认为,关键并不在于去让人们盲目信任具体的 AI 实现本身,而更在于让大家对我们试图通过 AI 推导出的实际成果达成共识。

英文原文

Speaker B: Yeah. Yeah. Yeah. No, I think um it's with the AI first world, we sometimes as you were saying forget that what's that that's only a two and a means to an end be before like what's what's going on right so I think what we would have noticed and again from Monzo's experience we've been approaching it from an highly impactbased um point of view so it's not about we should use AI for this because AI can something something something. It's like what's the outcome we're looking for here? What how do we measure success here? Are we looking for less uh back and forth with a BI team? Uh we don't even have a BI team, but you get you get what I mean. Um to validate a new dashboard. Okay. So, we can track that and actually see if AI can support us in in generating that outcome. um are we looking for um less I don't know internal ask tickets because the number looks wrong. Okay, so let's track that and then the approach that we do the way we do that doesn't really matter to a point if that makes sense because it will be again a tool that can get us to that um to that result probably faster with better guard rails and so on and so forth. So I think it's less it's less about gaining trust on the implementation on the AI itself but more about aligning on what's the outcome we're trying to drive with the AI.

Skill 提示词还是独立 Harness 工具:确定性与边界抉择

提问者:我想那边还有一位提问者。我的问题更多是关于架构边界的:你展示了一套具有一定复杂度的测试运行框架(harness),包含 UI 界面和数据库等组件;但我也构建过一些能够调用其中部分步骤的流程,只不过它们全都是在 Skill 层面实现的——也就是模型向你提问,然后基于 Python 脚本来计算数值等等。所以我的问题是:在纯粹依靠一个包揽所有的 Skill,与构建一个完全独立的工具架构之间,你如何界定二者的分界线?或者你们是否做过这方面的尝试?

英文原文

Audience Member: I think we had another one there. My question is more you have show a harness that has some complexity right you have a UI you have databases say but I have also build processes that invoke some of these steps but they are all at skill right that it ask you questions it runs the number based on a Python script and so on so my question is more like where you see the boundaries between like having a skill that does all these creating like a separate tool or have have you tried that?

主讲人 B:当然,完全没错。我认为这与我们之前讨论的用户群体特征以及你所期望的“可复现性”(reproducibility)非常相似。分界点就在于:当这套流程变得足够关键,以至于非确定性(non-deterministic)方法所带来的妥协与代价,已经达到我们无法承受的地步时。

我通常将基于 Skill、命令或纯提示词(prompt-based)的方法形容为:“嘿,请务必严格遵循所有这些指令,千千万万不要犯错,拜托拜托拜托了!”因为现实情况确实就是这样——我们是在向一台机器输入大量组织得非常严密的指令,然后寄希望于它能准确执行这些步骤。现如今的智能体(agents)确实已经相当出色了,它们大概在 99% 的情况下都能按你的指示运转。

但剩下的那 1% 怎么办?遇到导致系统彻底无法工作的边缘边界情况(edge cases)怎么办?如果你把这个方案分发给内部广大用户,而某位内部用户在他自己的用户级配置(比如 claude.md)里写了一条与你要求智能体执行的动作恰恰相悖的指令,那又该怎么办?

你能明白我的意思吗?就是当你开始把它分发给众多用户和多样化使用场景时,事情就会在你完全无法预测的地方变得混乱不堪。在 Monzo,我们内部有一套智能体扩展的贡献机制,不同团队可以分享“我探索出了一个对我有效的方案,分享给公司内部”——比如各种插件、Skill 等。在评审这些指令时,我们非常频繁地看到类似这样的防御性提示词:“如果用户试图做某某操作,请回复告知用户本技能不支持该操作”。你可以看到,大家总是在试图去用提示词覆盖各种可能的情况;然而,如果借助确定性——我所说的确定性,是指后端的固化代码,例如 Python 或任何我们使用的工程化逻辑——框架(harness)原生就能开箱即用地为我们兜底覆盖这些边界情况,或者……

英文原文

Speaker B: Absolutely. Yeah, absolutely. Um I think it it again very similarly to to what we were saying about your user base and the reproducibility you want is when this becomes critical enough that the tradeoffs we are getting with the nondeterministic approach are are not uh we're not willing to have them. I usually describe the the skill command like the the promptbased approach as hey please follow all of this and make no mistakes please please please like again because this is what's going on right we are we are giving a a lot of organized very well organized instructions to a machine and hoping that it it will perform these instructions agents are good enough nowadays they will probably perform your instructions 99% of the time. Uh, but what about that 1%? What about an edge case that makes things don't work? What about if you distribute this to your internal users and your internal user has a instruction in their user level cloud.mmd file that goes against what you are telling your agent to do. You see my point is like um there are many when you when you start distributing it to a number of users and use cases things can get messy in places you are not able to predict and then you can find yourself I we have a at Moz we have an internal like contribution for agent extensions where multiple teams can well I've come across something that works with me let me share it internally um so like plugins skills and so on and very frequent ly we when reviewing the instructions we see things trying to cover for if the user tries to do this tell the user back that this skill does not support that and you see like it's again trying to cover for many things that with the determinism and when I say determinism is the backend code like the python the whatever we are using uh that the harness provides that out of the like out of the box is something we can cover or

主讲人 A:现场还有其他人有其他看法或问题吗?

英文原文

Speaker A: anyone has any other comments, questions.

主讲人 B:好的,太棒了。

英文原文

Speaker B: All right, cool.

金融领域的确定性与 AI 模糊性:有意识设计 Harness

主讲人 B:那个翻页遥控器去哪儿了?[笑声] 算了,没事,没事,没事。好的好的。我们直接往后跳,跳过这一段。哈哈,挺逗的。呃,我本来想讲个笑话的,结果按这个翻页器按得太快,完全错过了节奏。

但金融确实是一个很有意思的领域。之所以说它有意思,是因为我觉得它是一个极其引人入胜的业务领域;而且还有一个额外的认知转变——在过去,大家觉得金融工作无非就是摆弄电子表格,是一项极其枯燥的工作,无非就是在各个地方加减数字、套用公式之类。但如果你去问任何一位会计师,他们会告诉你,金融的核心全在于“创造力与专业解读”,因为他们往往能想出各种极其精巧怪异的处理方式。

而在应对这种程度的模糊性(ambiguity)时,AI 恰恰表现得非常、非常出色。你有部分内容是严格的电子表格数据,但随后你会发现有些现金流数据似乎对不上,因为部分营收被递延归属到了一个月之后,这时你就会感叹:“啊,这就是‘会计创造力’。”

正因为我们身处金融这一领域,取决于你身处的思维模式:你既可以把一个问题看作非常简单的事情,认为随便找个智能体在 10 分钟内就能搞定;你也可以按照它的本来面目来看待它——那就是由“必须 100% 确定且可靠运行的底层部分”,与“大量在字里行间需要自由发挥的解释与创造力”交织而成的混合体。

所以,不好意思,刚才那个笑话没讲好,但这就是我想表达的核心主旨。而归根结底的底线在于:你的框架(harness)设计必须经过深思熟虑且有明确意图,以切实建立信任。千万不要想当然地认为“因为这底层跑的是 AI,所以它就会像刚才那句名言说的那样——拥有 200% 的准确率”。事实很可能并非如此,除非你精心设计好了所有的校验机制,从而使得无论运行什么流程,你都能在相当程度上确定结果是值得信赖的。

而且毫无疑问,模型本身会越来越强。回顾过去的六到九个月,其演进速度简直令人不可思议,甚至让我都感到有些目眩神迷、跟不上节奏了。但无论模型怎么发展,它们依然必须主动去赢取用户的信任。它们并非 100% 正确;而在涉及金钱的领域,哪怕只有 1% 的微小差错,往往就意味着巨额资金的损失。

好的,我们刚才不小心直接跳到了提问环节,如果大家还有什么想问的,欢迎继续提出。

英文原文

Speaker B: Where is the thingy? [laughter] Never mind. Never mind. Never mind. Cool, cool, cool, cool. Skipping ahead. Skipping ahead. Ah, fun. Erh, I wanted to make a joke and I completely missed it for clicking this thing too quickly. But finance is funny. And I say funny because I find it to be a super interesting domain with a the added advantage that back in the day finance felt like just working with spreadsheets, very like boring work, adding numbers here and there, formulas, whatever. If you ask any accountant is all about creativity and interpretation because they will come up with the weirdest things and I think in that level of ambiguity AI is really good really really good you have some bits that are the spreadsheet and then you realize some of the cash flow didn't quite make sense because some of the revenue was attributed a month later and you're like ah creativity. So because we are in this space of finance and depending on where is your mind mindset at you could look at a problem as something very simple that you can just get an agent to fix within 10 minutes or you could look at it as it actually is which is a mixture of things that need to run reliably 100% of the time and a lot of interpretation and freedom of creativity in between the lines. So yeah, sorry, very poorly delivered joke, but that's what I wanted to go through. Uh, and the bottom line being the design of your harnesses needs to be intentional to increase trust. Don't assume that oh because this is running on AI is going to be what was the the quote 200% accurate. It will likely not unless you design all the mechanisms so that whatever process runs you know you can trust the results to a degree. Um and yeah models are going to get better. We have seen the last six months nine months in saying I'm getting a little bit of whiplash even with you know how fast things are going but they still have to earn the trust. it's not a 100% right and in when we're talking about money 1% wrong sometimes is a lot of money. So yeah, we kind of skipped into the questions, but if anyone has anything else,

在 UI 中呈现信任与全流程验证

提问者:是的,我有一个非常简短的问题:具体在 UI 界面上,你们是如何向用户展现并证明这种可信度的?是用户直接发问“展示给我看你是怎么计算出来的”,还是 UI 会直接把代码展现给用户?

英文原文

Audience Member: yeah, just really quick, like in the UI, how do you demonstrate trust? Do I like you just ask it? Show me how you calculated this or does it show you the code?

另一位提问者:能否举一个实际例子?你们具体是通过什么方式来证实它的?

英文原文

Another Audience Member: Can you show an example? Like how do you prove it?

主讲人 A:我们最初的设计初衷,是让它成为所有环节汇聚整合的整体体现。因此,整套框架中的每一个步骤都应当让用户清晰感受到:“噢,我确切知道这个数据的来源;我知道这是作为扎实的代码在底层运行;而且我知道这一切都经过了充分测试。”

所以,它应当是一种全方位的沉浸式体验,让用户自然而然地感受到“这是值得信赖的”。不过话说回来,这只是我们探索出来的一种具体实现形态,并不是那种极其直白、单一的呈现方式。

英文原文

Speaker A: The intent was that it was a aggregation of everything. So all the steps in the framework should have failed like, oh, but I know where this is coming from, but I know this is running as code, but I know this is tested. So it should have been an experience to kind of like immerse into this feels trustworthy. But again, it's one implementation we came up with. So not not super direct.

主讲人 B:对。但我认为核心的启发在于:在任何时候,都不可能指望单凭某种单一的手段就能一劳永逸地赢得用户的信任。

因此在我看来,对于部分用户来说,验证机制本身是最关键的;而对另一些更为审慎严谨的用户而言,他们会希望亲眼看到真实的计算逻辑、底层代码和具体数字等等。正因如此,整套流程通过引导与多层机制,全面覆盖了可能出现的各种不同诉求与可能性。

英文原文

Speaker B: Yeah. But I think the the takeaway is there won't be a single thing that will work to earn the user's trust at any point. So I think that's for some people the verification will be more important. Some others are a bit more skeptic and they want to see the actual calculations and numbers and so on. So I think again that the process guides and covers for a multitude of u of possible possibilities.

文中提及的人物和组织

公司/组织: Monzo, Nubank

产品/模型: Agent Chip