让智能体自己找故障:用技能、追踪与评测改进应用
原题Let Your Agent Cook: Using Skills to Evaluate and Improve Your App — Ankur Duggal, Arize AI
推荐理由维护智能体应用的人可沿追踪定位无依据回答和被吞掉的工具错误,学习用数据集验证修复,并保留人工审核责任。
看前速览
Ankur Duggal 通过一个表现失常的金融智能体,演示如何把追踪数据、针对性评测和编码智能体技能连成可验证的修复流程。
追踪让质量抱怨变成可定位的故障
演示逐层查看 supervisor、专业智能体、模型和工具调用,区分表面可信的最终回答与真实决策过程。
评测应针对实际出现的失效模式
数字依据不足、虚构、重复搜索和静默工具失败应分别检查,不能只给一个笼统质量分。
代码修改需要实验验证
国际股票案例表明,若底层工具仍假设美国市场,单改提示或国家上下文并不足够。
人工审阅负责闭环
编码智能体的修改是待验证假设;应用专属评测用于发现未来回归。
完整摘要
Duggal 从一个表面合理、实际缺乏依据的投资回答入手,沿着 supervisor、专业智能体、模型调用和工具调用追踪故障。借助 Arize CLI 与技能,编码智能体拉取 span 和评测结果,发现数字缺乏依据、虚构回答、重复搜索,以及被智能体悄悄绕过的工具失败。国际股票查询案例进一步说明,仅修改国家上下文无法解决底层工具仍按美国股票工作的缺陷。数据集与评测器让修改可以通过实验验证。现场修复在演讲结束时仍未完成,因此不能视为成功案例。问答还讨论实验执行位置、裁判模型选择、评测成本与抽样。讲者建议按应用故障设计评测,并由人审阅智能体提出的改动。
章节
文字稿
简要描述Brief Description
放手让你的智能体大显身手:利用技能评估并改进你的应用——Ankur Duggal,Arize AILet Your Agent Cook: Using Skills to Evaluate and Improve Your App — Ankur Duggal, Arize AI
目录Table of Contents
- 从凭感觉评估到值得信赖的评估From vibes to trusted evaluations
- 追踪记录揭示了智能体的实际决策。Traces reveal an agent's actual decisions
- 退款问题与错误的工具A refund question and the wrong tool
- 改进循环The improvement loop
- 将追踪记录、评估结果和代码整合在一起Bring traces, evaluations, and code together
- 将 CLI 和技能作为接口CLI and skills as the interface
- 一个有缺陷的金融代理智能体A flawed financial agent
- 设置个人资料并安装技能Set up a profile and install skills
- 检查主管和专家的跟踪记录Inspect supervisor and specialist traces
- 事实依据、编造与静默失败Grounding, fabrication, and silent failures
- 构建评估并运行实验Build evaluations and run experiments
- 针对国际股票查询的早期修复An earlier fix for international stock queries
- 实验和评判器运行的位置Where experiments and judges run
- 选择一个评估模型Choose an evaluation model
- 比代码本身更丰富的上下文More context than the code alone
- 好的摘要有哪些特点?What makes a summary good?
- 避免只关注代码检查Avoid focusing only on linting
- 评估成本与采样Evaluation costs and sampling
- 审查拟议的更改Review the proposed changes
- 根据您的应用定制评估方式Tailor evaluations to your application
从凭感觉评估到值得信赖的评估From vibes to trusted evaluations
大家下午好。我叫 Encore。呃,我要教大家怎么让你的智能体火力全开。再说一次,这跟做饭没关系。我也不知道。呃,不过我们这就开始吧。嗯,我的意思是——其实,在开始之前,我们先来个快速提问,做个小调查。我相信你们很多人都在构建智能体,甚至已经发布了智能体。我只是想知道,现在有多少人发布智能体时主要凭感觉?我说的“凭感觉”并不是件坏事。我的意思是,你会检查答案,会仔细看看,确保它根据输入和输出,可能是在做正确的事。你会确认它做得对不对。有多少人是这么做的?好,人数还挺多的。Good afternoon everyone. My name is Encore. Uh I'm going to be teaching you how to make your agent cook. Again, not food related. I don't know. Uh but yeah, we're going to get into it. Um so what I mean by that is actually before we get into that, let's go ahead and start with a quick question and a poll with everyone. Um, I'm sure a lot of you are building agents or have even shipped agents. I'm just curious how many of you currently are shipping based off vibes. And when I say vibes, it's not a bad thing. I mean like, hey, you're checking your answers. You're looking at it. You're making sure that it's potentially doing the right thing just based on the input and output. You're making sure that it's correct or not. How many of you all are doing that? Okay, pretty good reasonable amount of you.
接下来,你们当中有多少人真的搭建好了评估集之类的东西?比如让语言模型担任评审,或者做基于代码的评估,又或者搭建了某种评估方案。好,少了一些,不过也没少太多。其实已经相当不错了。那你们当中有多少人已经足够信任自己的评估方案,觉得它够完善了?评估覆盖面很全面,你们也随时准备好继续推进。哇,这确实相当了不起。举手的人不少,这倒也符合我的预期。我的意思是,真的很难信任评估结果,因为评估很难构建。你并不真正清楚自己要找什么。这不是一个确定性的用例,而且很难判断我们究竟需要评估什么,才能确保智能体正常运行。And then how many of you guys actually have like set eval set up like you know like oh you have LM as a judge or codebased evals or some sort of eval setup. Okay, a little less. Not too much less though. That's pretty good actually. And then how many of you that actually have your eval setup trust it enough that you know you're good enough? You have a full coverage of your evals and you're ready to you're continuously ready to keep going and moving forward. Wow, that's that's pretty impressive. That was a solid hand up, which is kind of what I expected. I mean, it's very hard to really trust your emails because they're hard to build. You don't really know what you're looking for. It's not a deterministic use case. And it's very hard to determine what we need to actually evaluate to make sure our agents are working properly.
而这其实是最大的问题之一:很多人一开始会处于一个很不错的状态,这种状态是凭感觉来的。它能让你启动起来,也能确保你的智能体按预期行事。但现实是,你不能只凭“嗯,应该没问题”这种感觉就把东西发布上线。因为到了生产环境,你不会知道哪里出了问题、哪里运行异常,除非你设置了真正的评估机制,来找出问题出在哪里。And that's kind of one of the biggest issues is a lot of people are going to start off in a very good spot, which is based off vibes. It gets you going. It makes sure that your agent's doing what you expect it to. But realistically, you can't really ship based on this feeling of, "Yeah, it's correct." Because when you're in production, you're not going to know where things are broken, what's going wrong, unless you have actual eval set up to find out where things are breaking
追踪记录揭示智能体的实际决策Traces reveal an agent's actual decisions
以及如何实际直接修复它。所以在我们开始讨论评估之前,我想先退一步,谈谈你的评估会基于什么。而它会基于追踪记录。我们之所以需要追踪记录,是因为如果你用过传统的软件工程,就会知道有一种东西叫追踪记录。它用于 APM 监控,确保系统可靠并正常运行。但实际上,你可以直接对这些记录进行调试,而且这很容易,因为整个流程是确定性的,对吧?你甚至可以直接看这里,这很容易理解,而且大致就是代码的样子。你有一个 handle submit 方法,检查它是否有效。如果无效,就报错;如果有效,就继续执行后续步骤,并沿着这个流程往下走。and how you can actually directly fix it. So before we get into eval, what I want to kind of take is a whole step back and talk about how you can like what your eval would be on top of. And that would be on top of traces. And why we need traces is if you've ever used traditional software engineering, you have something that you do call traces. It's for APM monitoring. It's making sure your systems are reliable and are working. But realistically, what you you can actually go ahead and debug those and it's very easy to do because you have a very deterministic flow, right? You can even see right here, this is very easy to follow and this is more or less what like code looks like. You have a handle submit method. You check if it's valid. If it doesn't, it errors out. If it is, then it goes down the next list and continues down that process.
所以,根据这种路径历史,很容易弄清楚问题出在哪里。但遗憾的是,在智能体中,关于你的代码,你实际上只有那一行代码,就是 agent.run,然后加上查询。最终它会做什么,多少取决于它自己。它会调用工具吗?会进行一些分析吗?会进行一些内部思考吗?它下一步最该做什么?以及它实际采取的最佳行动是什么?在真正看到追踪记录之前,我们无从得知。你不会知道你的智能体在做什么。所以这条追踪记录……So, it's very easy to figure out where things are b are breaking based on a just based on that sort of uh path history. But in an agent, unfortunately, with your code, really all you have is that one line of code, which is just going to be agent.run and then the query. And ultimately, what it's going to do is kind of up to it. Will it call a tool? Will it go ahead and do some analysis? Will it do some internal thinking? What is its next best step to do? and its actual best course of action. We don't know until we actually see the traces. You won't know what your agent's doing. So that trace
一个关于退款的问题,以及使用错误的工具A refund question and the wrong tool
这在某种程度上有助于你定义这一点。下面是一个不错的示例,展示了 trace 会是什么样子。你有一次 agent 调用,可以看到 LM 调用,还能看到你检索到的文档和工具。基本上,你可以看到 agent 执行过程中的每一个步骤。在这里,你甚至可以看到,比如我们调用了这个 `tool.get order status`。这是调用了错误的工具。用户问我们:“我本该收到退款的,退款去哪儿了?”如果我们回复:“你的退款已发放”,而且这是根据订单状态得出的结果,那并不是用户想知道的。他们想弄清楚的是,为什么退款还没到账?所以我们可能需要调用其他工具、采取不同的操作;即便只是意识到这里出了问题,也有很多不同的处理方式。kind of helps you define that. And so as a kind of a decent example as to what a trace would look like would be this. You have your agent call. You go ahead and see the LM calls. You have your documents you're retrieving, your tools that you're retrieving. You basically have every step along your journey that you would see of what your agent's doing. And here you can even go ahead and see, hey, we have for example this tool.get order status. It's the wrong tool occult. The user asked us, hey, I was supposed to get a refund here. Where's my refund? If we respond back, hey, your refund was issued and they know that that was their status based on their order status. That's not what they were looking for. They were looking to understand why hasn't their refund arrived? So we need to potentially call different tools, do different actions, and there's so many different varieties even just knowing that there's an issue here.
不过我们稍后会深入探讨这一点。But we'll dive into that in a little bit.
改进循环The improvement loop
所以,当你真正开始理解之后,好,我们有了一条追踪记录。现在我想开始调试我的智能体出了什么问题。我们首先要做的是找出这些问题,对吧?就像上一张幻灯片里那样,找出那些生产环境故障。我们发现那个工具用错了。但接下来该怎么做?你要进一步弄清楚:好,问题不只是出在哪里,我能不能收集到足够多的这类信息样本,然后用它们进行实验和迭代,改进智能体,这样等我回头针对这些情况进行测试时,就能有所依据。然后,实际的问题究竟是什么,对吧?当然,工具调用错了,但我们应该修改 LM 提示词吗?应该添加护栏吗?应该调整工具吗?还是说工具本身就是在做错误的事?So when you actually go ahead and understand, okay, we have a trace. Now I want to go ahead and debug what's going wrong with my agent, we're going to start with where first you're going to identify those issues, right? Those production failures like we just did in that last slide. We found out that tool was wrong. But what's your next step? You want to go ahead and find out, okay, not only where did it go wrong, can I get a nice sample size of that sort of information that I can then use for experimentation and iteration to improve the agent when I actually want to go back and test against those cases. Then what actually was the issue, right? Sure, the tool call was wrong, but should the LM prompt change? Should we add in guardrails? Should we change up the tool? Was the tool just doing the wrong things?
是吧?我们需要针对许多不同领域进行测试和验证。这样,我们就可以针对这些领域进行测试,构建评估机制,持续监控这些用例。比如说,如果你发现:“嘿,我们需要在这里设置一道护栏。”那该怎么做?我们希望……然后还要确保这道护栏确实发挥作用。因此,我们会在护栏之上设置一个评估器,检查它是否发挥了作用,是否阻止了某些信息泄露。最后,你实际做出这些更改,运行我一开始提到的实验,最终将其部署到生产环境,并不断重复整个流程。现在,这就是改进智能体的标准流程。这个流程相当漫长、相当依赖人工,而且相当繁琐。Right? There's so many different areas that we need to test and go against. And so we can go and test against those build out evaluations to continuously monitor those use cases. So for example, if you find out, hey, we need to make sure that we set up a guardrail here. How are we going to do that? We want to and then we want to make sure that guardrail is doing its job. So we set up a evaluator on top of that guardrail making sure is that guardrail doing its job by prohibiting certain information from leaking. Finally, you actually make those changes. run that experiment that I was talking about in the beginning and finally ship it to production and do that whole loop over and over again continuously. Now, this is your standard go-to process for actually improving your agent. It's pretty long, pretty manual, and pretty tedious.
它确实能用,但我们想不断迭代并改进它。该怎么做呢?我们要确保不会花上数小时甚至数天去查找问题、追踪问题、找出所有这些不同的问题点、想出可能的解决方案,然后再继续……It does it does work, but we want to kind of iterate and improve that. How can we do that? We want to make sure that we're not spending hours, days finding the issue, finding the trace, finding all these different issue points, coming up with the potential solution, going through
将跟踪记录、评估结果和代码整合在一起Bring traces, evaluations, and code together
手动完成那套完整的八步流程。我们想把所有这些整合起来,并在几分钟内完成。最好的办法就在这里。我们要把所有不同来源的数据都汇集到一个特定区域。首先,我们会调入 Arize traces,这样你就能获得有关智能体执行情况的所有信息。接着调入评估结果,看看问题究竟出在哪里。然后加入人工标注——理论上,人工可以提供更多信息,告诉你哪些地方做得对,以及如何改进。还要加入实际的 APM traces,这样就能知道系统是否正常运行。that full eight-step process manually. We want to pull all of that together and bring it into minutes. The best way to do that would be right here. We're going to pull in all the data from all our different sources into one specific area. We're going to start with, you know, pulling our ap our arise traces so you can get all the information of what your agent did. You're going to pull in your evaluations to see where things actually went wrong. You're going to bring in your annotations from any humans that could theoretically tell you a little bit more information as to, you know, where it could go right, how they can improve it. You bring in your actual APM traces which could be hey is the system up or down.
你把代码库接入进来,这样就能根据工具调用失败的具体环节,弄清楚该在代码库里做哪些改动,确保我们走在正确的路径上、调用正确的工具,并修复出问题的工具。然后,你会把所有这些都汇总到一个最终的平台里,也就是我们的编程智能体。无论你用的是 Claude Code、Cursor 还是 Codex,都没关系;你可以把所有这些数据都接入其中,它就能自动帮你完成所有这些工作。所以,我知道这听起来可能很复杂,而且我保证,这样说可能也没让它显得更简单,但设置起来其实很容易。只需要几步……you bring in your codebase so you can understand all right based on this specific area where it failed the tool call what changes can I make in my codebase so that we're c we're we're going down the right pathways we're calling the right tools we're fixing our tools that are broken and so you'll bring in all of these into one final space which is which is our coding agent whether you use cloud code cursor codeex it doesn't matter all of those you can connect all that data into and it can automatically do all of that work for for you. So, I know this may sound really complicated and I promise this also probably doesn't help to make it look simpler, but it is very simple to get it set up. It's going to be just a couple
将 CLI 和技能作为接口CLI and skills as the interface
只需几步,设置好你的 CLI 和技能,就可以开始了。你可以访问大量信息和各种工具,供你的智能体使用。比如这里,你可以对代码进行埋点。也就是说,你可以把智能体生成的所有追踪数据发送到你选择的平台,比如 Arise。接下来,你可以拉取这些追踪数据、构建数据集、运行实验和评估。整个流程都可以在你的编码智能体中完成。那么,我接下来要做的是,带你具体看看一个……steps of just, you know, setting up your CLI and skills and you're ready to go. You get access to a bunch of information, a bunch of different tools that your agent can then do, which could be for example here, which are like, hey, you can get your code instrumented. What that means is you can get all the traces from your agent into whatever platform you choose like Arise. You could go ahead and pull down those traces, build out data sets, run experiments, run evaluations. You have the full gamut of the experience all from within your coding agent. So, what I'm going to do here is we're going to go ahead and look at a specific
一个有缺陷的金融代理A flawed financial agent
问题。我想听听房间这边的各位怎么想,看看大家觉得实际问题可能出在哪里。我先简单介绍一下背景。这个智能体是一个简单的金融智能体。我问它:“我该不该投资这家公司?”我想我选的是 Tata Motors。嗯,不管怎样,最后它给我的回答是:“该投。”我想截图里没有直接显示这一点,不过我保证它确实这么告诉我了。嗯,归根结底,这并不是我们真正想做的事,因为我没有资格提供任何财务建议,这个智能体也没有,而且我不想惹上法律麻烦。大家能不能帮我分析一下,也许你们觉得这个智能体可能出了什么问题?她刚才说的是:“嘿,也许这个智能体应该先多问几个问题,了解更多信息,然后才能给出一个可靠、明确的答案。”issue. And I want a little bit of kind of uh voices from this side of the room uh where we can get some idea of like hey what do you guys think could be the actual issue. So I'll give you a little bit of background. This agent right here is a simple financial agent. I've asked it should I invest in this company? I think I chose Tata Motors. Um anyways and ultimately it gave me a response which said yes you should. I don't think it's directly in the screenshot, but I promise you it told me that. Um, and ultimately that's not really what we want to do because I'm not registered to give any financial advice, nor is this agent, and I don't want to get in legal trouble. If you guys can help me figure out maybe, hey, what do you guys think could be the issue in this agent? So, what she said was, "Hey, maybe the agent needs to ask a lot more questions back to get a little bit more information before I can give a solid, concrete answer."
这是个很好的猜测。还有其他人有想法吗?好。那么你建议我们如何改进这一点?顺便说一句,他提到它应该提出更多问题后再给出建议,这一点很类似。那么你建议我们怎么着手实现呢?That's a very good guess. Anyone else have any ideas? Okay. And how do you suggest we potentially improve that? By the way, he said it should ask, again, pretty similar. It should ask more questions before making that recommendation, but how do you suggest maybe we can go ahead and do that?
主持人:提供更多背景信息,多提问题,补充更多细节。Host: More context, more asking questions, more details.
嘉宾:好的,也许可以对提示词做些调整,加入一些背景信息,以获取更多上下文。再来一个。Guest: Okay, so maybe some prompt changes to add in some context to get more context. One more.
主持人:抱歉。Host: Sorry.
主持人:验证在哪里?Host: Where's validation?
嘉宾:验证在哪里?是的,确实如此。我们没有任何可以拿来对比的真实依据。我们不知道这些内容是否正确。所以,根本无法验证答案是否正确。你说得对。说实话,可能会有各种各样的问题。哦,对了,请继续。Guest: Where's validation? Yeah, that's true. We don't have any sort of ground truth to compare against. We don't know if any of this is correct. So there's no validation that any of the answers are even correct. You're right. There could be so many different issues. And truthfully, oh yeah, go ahead.
主持人:问题。智能体了解用户的财务背景吗?Host: Question. Does the agent know the user's financial background?
嘉宾:这是个很好的问题。在这种情况下,答案是否定的,它并不知道。是的,确实应该让它掌握更多相关信息。顺便说一下,他问的是:用户——这个 agent 是否知道用户财务背景方面的任何信息?嗯,确实不知道。而且这个 agent 有很多地方可以改进。说真的,真的没有唯一正确的答案,对吧?但说实话,我甚至不知道这个问题的正确答案是什么,因为这个 agent 现在仍然有问题。今天我们会在这个演示中尝试修复它。嗯,我们要做的是设置 CLI 和技能,把这些配置好,这样我们就能让编码 agent 理解到底哪里出了问题,拉取追踪记录,弄清楚我们的 agent 哪里出了问题,查看我们已经运行过的评估、现有的标注,也许还让它自己做一些分析,并且可能提出一些后续改进建议,就像你们今天很多人所做的那样,告诉我们如何真正改进这个 agent。Guest: It's a great question. In this case, no, it does not. And yeah, it should definitely get a lot more information into that. Uh he asked, by the way, should the user does the does the agent know any information about the user's financial background? Um and yeah, it definitely does not. And there's a lot of areas that this agent could be fixed. And there's genuinely genuinely not one correct answer, right? But and I genuinely don't even know what the right answer is to this because this agent is still messed up right now. And we're going to go ahead and try to fix it today in this demo. Um, and so what we're going to do is we're going to go ahead and set up the CLI and skills, get that set up so we can actually get our coding agent to go ahead and understand what's going wrong with our to go ahead and pull down the traces, understand what's going wrong with our agent, look at the evaluations we already have run, look at the annotations that exist, maybe even do some of its own analysis, and potentially come back with some future suggestions just like many of you have done today for how to actually improve this agent.
所以,嘿,也许我们可以让它多问一些问题。也许我们可以加一道护栏,让它只回答特定的问题,并在不适合提供财务建议时避免给出这类建议。我们可以通过很多不同的方式来修正这些问题。为了开始处理,我打算先打开……So that hey, maybe we could have it ask more questions. Maybe we could add a guard rail so it only responds to certain questions and doesn't give financial advice where it's not warranted. So there's lots of different ways that it can come to do those fixes. To get it started, what I'm going to do is I'm going to go ahead and pull open
设置个人资料并安装技能Set up a profile and install skills
我看看,我这里有吗?有。我们来打开一个新会话。嗯,好,挺好。我在正确的空间里。好。通常来说,设置 CLI 和技能非常简单,只要几步就能完成。嗯,抱歉。哦,找到了。我知道自己在做什么,大家。呃,来吧。我们先从设置 CLI 开始。只要复制这一行代码就能完成设置。然后我会回到终端里安装。当然,我刚才已经安装过了,不过设置起来确实非常简单快捷。接下来,你需要创建自己的配置文件,这样就能将它连接到数据的存储位置。在这个例子中,就是 Arize。创建好配置文件后,它就可以拉取那些跟踪记录和可视化内容,并从这些评估和标注中获取相关信息。let's see, do I have it here? Yes. Let's go ahead and pull open a new session. Um, okay, cool. I'm in the right space. All right. So, generally what you'd want to do whenever you want to set up the CLI and skills, super easy. It would just be a couple steps to get that set up. Um I apologize. Oh, here we go. I know what I'm doing, guys. Uh here we go. So, we're going to start by setting up the CLI. You would just go ahead and copy this one line of code to get that set up. So, I'd go into back into my terminal and install that. Of course, I already had that installed right before this, but just goes just very simple and quick to set up. Then what you do is you would create your actual profile, which would help you connect it to wherever your data stored. In this case, it would be arise. And you create that profile so it can go ahead and pull in those traces and visual and get that sort of information from those evals and annotations.
创建好该配置档案后,接下来就可以设置技能了。根据你使用的编码代理,可以通过多种方式来设置。今天我们用的是 Cloud Code,所以我通过 marketplace 来设置,不过无论你想怎么设置,都很容易。从这里开始,我们直接问它就行了。再提醒一下,我启用了 dangerously skip permissions。请不要这么做,这并不是好的实践。我这么做只是为了演示,这样就不用一直按“是”了。好了,我们来和 Claude 对话,让它看看这些追踪记录。我先找找之前问过的提示词,内容就是使用这个技能,从那个特定的代理拉取追踪记录,并找出我们能从中判断出的任何问题,就像我前面说的,对吧?Once you have that profile created, you'd go ahead and set up your skills. You could do this in a multitude of ways depending on your coding agent. For today, we're using Cloud Code, so I use the marketplace to set it up, but it's pretty easy to set up however you want. From here, let's go ahead and we're just going to ask it. And again, uh just as a warning, I am using dangerously skip permissions. Please don't do this. This is not actually good practice. This is just for a demo, so I don't have to keep pressing yes. Um, but we're going to go ahead and talk to Claude and have it go ahead and take a look at these traces. So, I'm going to go ahead and see if I can find the prompt I asked earlier, which was just use this skill and pull down the traces from that specific agent. Find out what issues exist that we can determine from any, like I said earlier, right?
看看我们做过的各项评测和标注中存在哪些问题。请你自行分析,并告诉我今后可以构建哪些评测,确保不再遇到这些问题。这需要几分钟时间。嗯,与此同时,我先给你们看看这些追踪记录大概是什么样子,以及如果你们想手动处理,可以如何开始排查。What any issues that exist from any of the evals, any of the annotations that we've done. do your own analysis and tell me what eval maybe I can build out in the future to make sure that I don't run into any of these issues again. And so this is going to take a couple minutes. Um, in the meantime, I'm going to go ahead and first go and show you kind of how those traces look and how you can actually start triaging it if you want to do it manually a little bit.
检查主管和专家的跟踪记录Inspect supervisor and specialist traces
不过,在它于后台运行的同时,我们回到实际的智能体,嗯,回到那个包含我们之前提出的那些查询的智能体。接下来,我们会问它一个非常类似的问题。嗯,比如说,告诉我这次是否应该投资英伟达。它是一只知名度更高一些的股票。然后我们就会得到结果,它会尝试给我们提供一些信息。随着数据陆续传来,看来我之前已经运行过一次了。所以,你可以看到数据正在传入。嗯,不过我们可以看看之前运行的结果,大致了解它已经做了些什么:你可以看到我们提出的查询,也可以看到它最终会生成的输出,稍后我们会看看它和之前那次运行的结果有多相似。嗯,你还可以看到智能体实际执行的所有步骤,对吧?But while this is running in the background, let's go back into the actual uh run into the actual agent that has those sort of queries that we've asked. So, we'll go ahead and ask it a pretty similar question. Um, you know, tell me if I should invest into, let's say, Nvidia this time. It's a little bit more of a well-known stock. And we're going to get that and it's going to try to tell us some sort of information. And as that data comes in, looks like I've run this earlier. So, and you can see it's coming in. Um, but from an earlier run, we can kind of see what it's done already where you can see that query we asked, you can see the output that it'll finally generate, which we'll see how similar it is in a minute from this previous run. Um, and you can see all the steps that actually happened in your agent, right?
所以,你可以看到,我们有一个 supervisor agent、一个 financial data agent,你可以看到 LLM 调用,也可以看到各种不同的工具调用。你马上就能获得大量信息,可以像我们在最初那张幻灯片里做的那样,开始利用这些信息来看看问题可能出在哪里。现在,我们来看看。Claude 完成了吗?看起来还在运行。它正在处理。我们就让它继续跑吧。你知道,这就是重点。嗯,趁它在处理,大家有什么问题吗?比如,如何设置某种形式的评估、各种跟踪记录,或者类似的东西?有人想再多了解一点吗?嗯。So, you can understand, hey, we had a supervisor agent, a financial data agent, you can see the LLM calls, you can see all your different tool calls. you get a lot of information right away that you can start using just like we done in the initial slide to see where those issues could lie. Now, let's see. Did Claude finish up? Looks like it's still running. It's doing its thing. We'll let it cook. You know, it's kind of the point of this. Um, while it's cooking, anyone have any questions as to like, you know, how you can set up any sort form evals, any sort of traces, anything along those lines? Anyone wanted to learn a little bit more about Yeah.
主持人:这是个好问题。是的,你可以继续操作。它实际会把很多这类追踪记录下载到你的本地系统中。接下来我来给你展示一下它是如何访问系统本身的。当你授予它使用这些技能的权限时,实际上就是让它能够访问底层的 CLI。我的意思是,你会有各种不同的 CLI 可供它集成。你可以用它来设置并查找数据集、拉取数据集,也可以让它与 UI 交互,代表你在平台上设置评估。因此,你可以持续监控智能体何时出现故障、构建数据集并运行实验。Host: Great question. Yeah. So, you would go ahead. So, what it does, it actually goes ahead and downloads a lot of those traces um into the into your local system. So, what it'll do is actually let me go ahead and show you what it how it actually goes ahead and accesses the system itself. So when you give it access to these skills, what you're actually giving it access to is the CLI underneath. And what I mean by that is you're going to have all these different CLIs that it can integrate with. So you can go ahead and set up and find the data sets. You can pull down data sets. You can have it interact with the essentially interact with the UI where it can set up evaluations on the platform on your behalf. So you can monitor continuously monitor when your agents are failing, build out data sets, run experiments.
它基本上能做你、你在平台上能够做的任何事情。有时它会下载东西,有时会发起 API 请求,但这大致就是这里的想法。问得好。关于 CLI 跟踪还有其他问题吗?好,我们继续看看……It can basically do anything that you that you would be able to do in the platform. Sometimes it'll download, sometimes it'll make API requests, but that's generally the uh idea here. Great question. Any other questions in regards to CLI tracing? Okay, let's go ahead and see what
依据、捏造与无声故障Grounding, fabrication, and silent failures
Claude 做完了。哦,还在处理。嗯,我们可以看到这里,咱们来看看 Claude 到目前为止做了些什么。我们可以看到,我们已经拿到了 spans。它正在深入查看评估结果,弄清楚问题出在哪里。嗯,看来它还没完全弄好,不过确实发现了一个很大的问题,涉及数值依据性。我记得之前有人提到过这可能是个问题,或者有类似的问题。嗯,我们还看到有些工具调用直接失败了。我们再看看。对,我们还遇到了很多不同的错误。哦,看来它刚刚处理完了。你可以看到这里列出了完整的清单:我们的智能体出了什么问题,以及我们可以怎么修复。趁它处理完这些,你可以看到,一开始最令人担忧的一点是,我们大约 44% 的智能体交互都会生成糟糕的摘要。Claude's done. Oh, still crunching away. Um, so as we can see here, let's let's walk through what Claude's done so far. So, we can see that we've gone ahead and gotten the spans. It's digging into the evaluations to figure out where those issues are. Um, it looks like it's not quite there's definitely found one very big issue with some numeric groundedness. I know someone mentioned that earlier as a potential issue or something related to that. Um, we're also seeing some tool calls directly fail. Um, and let's see. We also see, yeah, so we're getting a lot of different errors. Oh, looks like it just finished up. And so you can see here we get a full list as to like, hey, what's going wrong with our agent and what we can do to kind of fix it. So while it's finishing up that, you can see here one of the biggest alarming things right out of the gate is about 44% of our agent interactions are resulting in a bad summary.
这真的很糟糕。我之前不知道。所以,我们肯定得把这个问题修好。另一个大问题是——哦,我不是想滚动到那里的。另一个大问题是,我们还遇到了大量编造答案的情况,这和摘要出错一样糟糕。听起来这可能有关,也可能无关。我们可以稍微排查一下。我们还发现,工具调用的重复率相对较高。这浪费了我们的时间、资源和金钱。显然,我们做了很多不该做的事,得赶紧修正。而这还只是基于 Claude 自己分析得出的评估。它甚至还能进一步发现其他问题,比如出现了工具静默失败的情况。系统告诉我们操作成功了,但最终却没有给出任何实际响应。That's really bad. I did not know that. So, we definitely need to fix that one. Another big issue is Oh, did not mean to scroll there. Another big issue is, hey, we're also just getting a lot of fabricated answers, which is just as bad as this the summarization being wrong. So, it sounds like it may be related, it may not be. We can kind of debug that. We're also seeing a relatively high rate of us just redundantly calling tools. It's a waste of our time, our resources, and our money. So clearly, we're doing a lot of bad things that we need to go ahead and fix. And that's just from the eval from Claude's own analysis. It's able to even go ahead and figure out, hey, there's other issues that are coming along. We're getting silent tool failures. It's telling us it succeeded, but ultimately it's not giving us any actual responses.
当工具调用失败时,智能体会产生幻觉,而不是如实说明情况。所以,话题虽然相关,但这也意味着我们可能不能只在此基础上构建一些评测,来了解工具何时失效;我们还需要调整提示词,确保智能体在这种情况下不会产生幻觉。除此之外,你还能做很多不同的事情,也可以构建相应的评测。那么,我们可以做的是,实际着手……We're getting the agent hallucinates when tool fails instead of disclosing it. So again related but hey that means maybe we need to not just do uh you know some eval built on top of this to understand when the tool is failing but we also need to make some prompt based changes to make sure that the the agent doesn't hallucinate here and you have a multitude of like different things that it'll go ahead and tell you as well as the evals it can build out. So what we could do is we can actually go ahead and
构建评估并运行实验Build evaluations and run experiments
告诉它:“嘿,我们继续构建第一个项目,也就是工具成功但静默失败的评估,并修复数值依据性,确保它每次作答时都有某种实际参考依据,不会编造这些数字。我们还要确保你使用最初导致失败的那些文本片段,在一个数据集上测试这个功能。然后我们会再用另一个 Arise 技能,也就是这个 Arise 数据集技能、Arise……哦,对了,还有 Arise 评估器技能和 Arise 实验技能。这样它就能……我这就运行一下,让它跑起来并构建评估。好。所以,我这里说得还是比较笼统,但本质上我就是在告诉它:按照你推荐的方案进行修改,并帮我们运行这些实验。”tell it, hey, let's go ahead and build number one, which was the tool success silent failure eval, and fix numeric groundedness so that it'll make sure that whenever it does respond, it's always grounded to some sort of actual reference point and it's not making up these numbers. But we're also going to head and make sure you test this against a data set uh against the spans that caused the failure initially using and then we're going to go ahead and use another Arise skill which would be here the Arise uh data set skill, the Arise Oh, there we go. Arise um evaluator skill as well as the Arise experiment skill. So here it's going to be able to let me just go ahead and run let this run and build out evals. All right. So again I'm being pretty vague here but essentially I'm just telling it go ahead and make the changes that you recommended as well as go ahead and run these experiments for us.
现在我们就可以和它之前失败的地方进行对比,确保它这次能通过,对吧?在这个场景中,我们可以看到,好吧,它会继续处理,需要花一些时间。嗯,我先给你们看一次之前的运行结果,因为这又要花点时间。虽然我们想让它慢慢处理,但我可不想让你们盯着屏幕,看着 Claude 在那里手忙脚乱,或者看着它在空闲时间做的别的什么。嗯,我们来看看我之前是怎么让 Alex——抱歉,是 Cloud Code——回答我之前遇到的一个问题的。So now we can actually compare against where it failed to make sure it passes against that right and so in this scenario we can see okay it's going to go through and take its time. Um I'm going to go ahead and show you a previous run because again this will take some time and while we want to let it cook I don't want to have you guys staring at a screen where Claude's just discombobulating or whatever it does in its free time. Um, so let's go ahead and look at where I've actually gone ahead and asked Alex or sorry Cloud Code to go ahead and answer some of our previous issue that I ran into.
此前针对国际股票查询的修复An earlier fix for international stock queries
其中一个问题是,我有时想查询一些不一定来自美国的股票信息,却得不到答案。比如,我们在讨论韩国股票时会出错——看起来这里提到的都是韩国股票,不过我们姑且假设也有其他情况,比如日本或中国,对吧?你想查看并了解不同市场的股票,以便进行比较。显然有人在问这类问题,但我们并不支持这项功能。于是 Claude 就找出了存在这个问题的地方。就像我说的,这里看起来全都是韩国股票,但它还是找到了这些地方,并为我构建了一个数据集,我可以用它来测试,确保功能正常。And one of those was related to hey, I've had some times where I'm trying to get some answers about uh stocks that aren't necessarily from the United States. And so we're having errors where we're talking about like South Korea or looks like they're all South Korea based, but let's assume there's other answers here. Maybe Japan or China and whatever, right? And you want to see and you want to be able to understand, hey, I want to be able to compare stocks across different markets. And clearly people are asking that, but we don't support it. And so what Claude did, it went ahead found those areas where that issue existed. Like I said, it looks like it was all South Korea here, but it found those areas. It built out a data set for me, which I can then go ahead and test against to make sure it works.
然后它就开始运行实验,并做了几处修改。它先从最初的版本开始,也就是基线版本。这个版本有 bug,正如我们预期的那样,通过率是 0%。我们最初拿到实际生产环境中的追踪记录时,结果确实如此。它还快速做了一项修复,在标准化时加上了国家名称,但没有奏效。为什么?因为我调用的工具也过时了,需要更新到稳定版本。于是它又进行了第三次迭代。你也可以在这张图表上看到,我们发现第一次迭代没有奏效。它回头做了修复,最终完成了最后一次迭代,成功率达到了大约 90%。显然还没有达到 100%。我们仍然需要做一些调整,不过,嘿,我们已经比之前好很多了。And then it went ahead and ran experiments. And it made a couple changes. So, it started with the initial one, which was the baseline, which was buggy, which as we expected would result in 0% uh passing rate, which is what happened when we initially got the actual productionbased traces. It also made a quick fix where it normalized it by adding in that uh country name. It didn't work. Why? Because the tool I was calling was also outdated and I needed to update to the stable version. So then it made a third iteration. And you can see that on this chart here as well where we were able to see, hey, the first iteration didn't work. It went back, made a fix, and finally got us to the final iteration where we're getting about a 90% success rate. Clearly still not 100%. We still need to make some changes, but hey, we're doing a lot better than we were earlier.
所以,这算是一个很好的入门方式,能让你们真正开始行动:从“嘿,我知道这里有个问题”到“这是解决办法”。我知道我们还有不少时间,想跟大家确认一下情况。大家进展如何?感觉怎么样?关于如何开始着手做这件事,大家有什么问题吗?好。So, this is like a great way to get you going so you can actually start from, hey, I know there's an issue to here's a fix. Now, I know we have quite a bit more time. I want to check in. How is everyone doing? How do you guys feel? Do you guys have any questions about how you can go ahead and get this started? Yeah.
实验和评审器的运行位置Where experiments and judges run
好问题。他的问题是,实验到底在哪里运行?评估在哪里运行?所有东西都在哪里运行?嗯,你确实可以在这方面做一些定制。在这个场景中,我让实验在自己的本地机器上运行,我想大多数时候都是这种情况。然后我接下来做的是——或者你也可以把它托管在云端,或者托管在任何你想用来进行实验的地方。之后,你就可以直接在 Arise 上运行评估了。这个例子中,我搭建了一个 LM 作为裁判,接下来我来看看能不能直接在这里找到这个评估器。你可以看到,我们搭建了两个不同的评估器:一个基于代码,另一个基于 LLM。实际上,我让 Claude 来做这件事,它在这个平台上帮我搭建好了。Great question. So his question was how where do the experiments actually run? Where do the evaluations run? Where does everything run? Um so you do have a little bit of customization there. In this scenario, uh what I did is I had the experiment run on my local machine, which is I think what will be the case most of the time. And then what you what I did afterwards was I went or you can host it on a cloud or wherever you'd like to experiment on. And then you can go ahead and actually run the evaluations on Arise itself. So in this case, I built out LM as a judge, which would then go ahead and let's see if I can see the evaluator here itself. So you can see we built out two different evaluators, a codebased and an LLM based. I actually had Claude go ahead and do this. It built it out for me in the platform.
这就是最后一个作为裁判的 LLM,因为它在设置基于代码的数据时确实有点失败了。所以我们才有两个。你可以看到,作为裁判的 LM 用这个提示帮我们构建好了,并让它运行起来,这样我们就能进行比较。嘿,这个智能体运行得正常吗?还有其他问题吗?顺便说一下,这个问题问得非常好。And this was the final LLM as a judge because it actually kind of failed in getting the codebased data to set up. So that's why we have two. And so you can see the LM as a judge. It went ahead and built it out for us with this prompt and got it going so that we can actually compare. Hey, did the agent work properly? Any other questions? That was a really good question by the way.
选择一个评估模型Choose an evaluation model
嘉宾:是的。Guest: Yeah.
主持人:非常非常好的问题。嗯,评估可以按你喜欢的方式设置。当然,大家肯定可以使用自己想用的任何模型。没人希望只能用 Claude,或者只能用 OpenAI,尤其是在如今这个时代,AI 模型几乎隔天就会推出一个新版本,你可能就会想,好吧,我现在想用那个,对吧?而且,有些人更倾向于用价格稍低的模型;有些人则更希望确保评估达到顶尖水准,因为归根结底,他们知道自己的智能体能有多好,取决于评估的质量,所以即使他们在生产环境中未必使用最高端的模型,也会用它们来做评估。因此情况因人而异,你可以完全自定义控制成本。比如你可以看到这里有一整份模型提供商列表,你可以选择想用的任何一家并连接起来;如果你想用本地的开源模型,也完全可以。Host: Very very good question. Um so eval can be set up however you like. We have of course people can people can definitely use whatever sort of models they want. No one wants to be limited to just claude or just open AAI especially in today's modern age where you can see AI models literally ship every other day and then you want to be like okay I want to use that one now right and also some people have a preference for slightly cheaper models some people have a preference for making sure their evals are topofthe line because ultimately they know their agent's only going to be as good as their evals so they use the highest end models for their evals even if they're not necessarily using those in production so it kind of varies you have full customizable control over cut. And so what you can see here for example, you have a full list of whatever sort of model provider you want to use and you can connect those even if you want to use any sort of local um open source models as well.
是啊,Yeah,
提供比代码本身更多的上下文More context than the code alone
好问题。她的问题是:如果我们启动一个更小的智能体来处理其中一些 bug 修复,这和这种方式相比怎么样?说实话,你不一定要用 Cloud Codeex。你可以使用任何类型的智能体。我们提供的方案的优势在于,它包含一项技能,可以让你从追踪记录中提取信息来进行这些修复。这样一来,你做这些修复就不只是基于“嘿,我知道这里有问题,输出不正确”,而是基于“嘿,我知道这里有问题。这是它失败的地方,这是它失败的原因,以及我们可以如何修复它”。因为你掌握的不只是代码库的信息,还包括其他 APM 工单、APM 日志,以及 Jira 系统中存在的其他工单等信息。good question. So her question was if we have if I spin up a smaller agent to go ahead and make some of these bug fixes, how does this compare to that? Realistically, you don't have to use cloud codeex. You can use whatever sort of agent you want. The benefit of what we've provided is a skill that you're able to go ahead and pull down the information from your traces to make those fixes. So, you're not making those fixes just based on, hey, I know this is wrong and the output's incorrect. You're making those fixes based on, hey, I know this is wrong. Here's where it failed. Here's why it failed. Here's how we can go ahead and fix it. because you have not just the information of your codebase, you have the information of any of your other APM tickets, whatever or APM logs, any of your other tickets that exist in your Jira systems, etc.
以及你们实际的运行轨迹,比如智能体走过的路径、出错的地方、评估结果、标注等。还有其他问题吗?有。as well as your actual arise traces, which would be like here's the pathway the agent took, here's where it messed up, your eval, your annotations, etc. Any other questions? Yes.
主持人:Phoenix 支持这些功能吗?Host: Are these features available in Phoenix?
嘉宾:问得好。是的,呃,我们确实有。他问的是,这些功能在 Phoenix 中是否可用。Phoenix 是 Aris 的开源版本。我相信 Phoenix 中也有 Skills 和 MCP,你可以把它们接入你的智能体,让它获取同类信息。当然,企业版也会提供一些锦上添花的功能,比如以更便于格式化和设置的方式使用这些在线评估。你还会拥有更丰富的仪表盘功能以及其他一些特性。不过,是的,你可以使用 Skills 和 CLI……Guest: Great question. Yes. Uh we do have so he asked is are these features available in Phoenix. Phoenix is Aris's open- source version. We do have I believe skills and MCP as well in Phoenix which you can go ahead and hook up to your agent and it can go ahead and pull down the same sort of information. Of course there are going to be some nice to haves in the enterprise edition where you have access to these online evals in a certain way that are much easier to format and set up. You have a little bit more dashboarding and a few other features. But yes, the the skills in CLI you can
怎样才算是好的摘要?What makes a summary good?
连接到你的编程代理。connect to your coding agent.
主持人:是的。Host: Yes.
主持人:智能体给出了那个总结。那么,你会如何判断某件事,比如说,一个智能体表现得不好?怎么知道那是个好的总结还是坏的?Host: Agent said that summary. So how would you classify something as like a bad agent know that's a good summary or a bad?
嘉宾:非常好的问题。她的问题是,我之前展示的内容里有一项评估,或者 Claude 给出了一条回复,说摘要不太好。我们怎么判断摘要是好是坏?当时我实际设置的内容,是基于我之前设置的一项评估。所以我们现在可以来看看那个评估器。我们来看看……嗯,我其实不记得具体是哪一个了,不过我先打开这个,希望就是我们要找的那个。嗯,正如你们所见,这基本上就是我创建的摘要评估。它会查看我们在整个智能体中收集的信息,也就是我们提供给摘要智能体的各种上下文,并确保它引用了正确的要点、恰当地回答了问题,等等。Guest: Very good question. So her question was in what I showed earlier there was a eval or there was a response from Claude that said hey there was a bad summary. How do we know what is a bad summary or a good summary? In that case, what I actually had set up, it was actually based on one of the evals that I had previously set up. And so, we can actually go ahead and look at that evaluator here. We can go ahead and look at let's see some I actually don't remember which one, but I'm going to go ahead and pull open this one and hope this is the right one. Um, so as you can see here, this is basically the summary eval that I'd created. It's basically taking a look at the information we've gathered throughout our entire agent, all the sort of context we've given to that summary agent and making sure that it's referencing the right points, it's answering the question accordingly, etc.
嗯,我们就是这样判断这份总结是否写得好的。Um, and so that's how we've gotten to determine whether or not it was a good summary or not.
主持人:呃,要不我们一开始就设置一个技能,看看它能不能做好摘要?让它一直给我们一个好的摘要,就像我们设置一个技能,而不是运行……。Host: Uh, what if we set up a skill in the first place to see if it can do a good summary? give it given us a good summary all the time just like we set up a skill instead instead of running.
嘉宾:是的,这是个好问题。她在问,为什么我们不能直接设置一些技能,确保它能生成好的摘要?没错,当然可以,这正是你应该做的。你要确保更新提示词、更新技能、更新编码工作流,让你的智能体生成尽可能好的摘要。评估只是用来帮助你找出问题所在、监控这些问题,并确保它们不再重现,对吧?所以你设置好了这项技能,接下来的两个月都运行得很好;两个月后,由于模型出现回归,或者人们开始用不同的方式提问,你得到的结果就变了。你肯定不希望因此导致性能下降,所以你需要能够对它进行监控和观察。Guest: Yeah, great question. So, she's asking why can't we just set up skills that you know ensure that it gives a good summary and yes absolutely that is what you want to do. You want to make sure that you update your prompts, update your skills, update your coding workflows so that your agents will give the best summaries. The emails are only there to help you determine where there are issues, monitor those issues, make sure they don't repeat, right? And so you set up that skill, great, it works for the next two months, two months later because there's a model regression because people start asking questions in a different way. You end up getting different results and you don't want your e you don't want your performance to degrade because of that. So you want to be able to monitor and observe that.
这就是评测的意义。那有帮助吗?太棒了。嗯,我不知道要多久。That's the point of the evals. Did that help? Beautiful. Um I don't know for how
避免只关注代码检查。Avoid focusing only on linting
我们剩下的时间不多了,不过继续吧。much time we have left but go ahead
主持人:后续的代理会接受评估,并进行 soc。所以,你的问题是我在对这些代理进行 lint 检查时是否遇到过问题。Host: later agents are assessed and soc. So your question was if I've run into issues with linting with the agents
访客:代理似乎更多了Guest: agents seems like more
主持人:好问题。是的。他基本上是在说,嗯,你有没有遇到过这种情况:你给 Claude 开放了对所有这些技能、各种追踪记录和信息的访问权限,但最终,大多数时候我发现 Claude Code 或其他这类编程代理,都会把注意力放在代码检查上,而不是其他类型的问题上。我说得对吗? 对,你理解得非常到位。这也是我们构建这些技能的原因之一,它们能确保代理把注意力高度集中在实际交给它们的问题上,对吧?这样它们就能获取所有这些追踪信息,从而明白:这不是代码检查导致的问题,因为你能看到它调用了错误的工具,而这种情况不可能是代码检查造成的。它确实也具备一定的推理能力,能够理解这一点。Host: good question. Yeah. So he's basically saying hey um have you seen the issue where hey you've given access claude to all these skills and all these sort of traces and all this sort of information but ultimately most of the time I've seen with cloud code or any of these other sort of coding agents they end up focusing on linting rather than any other sort of issue am I correct yeah that's a very good understanding and that's kind of why we built out these skills which kind of focus on ensuring that they hyperfixate on the actual issues that have been given to them, right? So they'll get all these trace information so they'll understand, hey, it's not going to be a linting based issue because you can see that it's calling the wrong tool and that's not going to happen because of linting and it does have some reasoning capability to understand that.
嗯,所以说真的,我使用这些技能时还真没怎么遇到过这种情况。太棒了。所以当它……哦,对。Um, and so genuinely I haven't seen that so much when using the skills. Awesome. So as it Oh yeah.
评估成本与采样方式Evaluation costs and sampling
这个系统是否是否让人容易理解?抱歉。Does does the system make it easy to understand? Sorry.
嘉宾:好问题。是的。那么,他的问题是:这能让人轻松了解运行这些评估需要多少成本吗?当然可以。运行评估最棒的一点之一,就是在平台上,你可以获得完整的追踪记录历史,了解你的邮件都做了些什么;此外还有一个好处,你可以在这里看到一笔清晰的小额费用。这样你就能知道这些邮件实际花了你多少钱,因为没错,当然,每次你再运行一个 LLM,都会产生额外成本。所以你要确保成本不会失控。当然,构建评估时特别方便的一点是,无论是在 UI 中还是通过编码代理,你都可以设置一些基本要求,比如:我们想抽取特定数量的样本,这样就不必覆盖 100% 的追踪记录和 100% 的调用。Guest: Great question. Yeah. So, how so his question was, does it make it easy to understand how much it costs to run those evals? Absolutely. So, one of the best parts of running evals is in the platform is you're going to be able to get full trace history of what your emails did, which also comes with the added benefit of, you can see right here, a nice little cost. And so, you'll be able to understand how much your emails are actually costing you because yes, of course, anything anytime you're running another LLM, it's going to be additional cost to you. So, you want to make sure it's not. And of course, what's really nice about building out evals, whether it's in the UI or via the coding agent, you can have those set up basic requirements like, hey, we want to sample specific amounts so we don't run it across 100% of our traces and 100% of our calls.
嗯,你可以让它专注于特定领域。当然,你也可以随时在编码代理中或平台本身指定这一点。嗯,算是重新回顾一下……Um, you can make it focus on specific areas. And of course, you can always dictate that in the coding agent or on the platform itself. Um, so as a kind of refresher as to
审查拟议的更改Review the proposed changes
今天我们大致讲过的所有内容,呃,这个弄错了。哦,我想我在这边找到了。嗯,我真正想让你们记住的要点是:这些 AI 智能体很棒。你让它们做什么,它们基本上都能做到,但再说一次,它们可不是魔法。他说得没错,它们确实可以专注于代码检查,也确实可能会纠结在一些细枝末节上。但它们最棒的地方在于,可以从头到尾自动化你的整个工作流程。无论是从观察问题出在哪里、找出问题、实际拉取相关内容并弄清问题所在,到创建那些数据集、制定精确的修复方案,再到测试它们,确保一切正常。最后,你就可以亲自人工检查,确认它没有只是回头修复代码检查的问题,对吧?everything we kind of covered today, again, it that's the wrong one. Oh, I think I have it over here. Um, so essentially what I really want to give you as a takeaway, these AI agents, they're great. They will do basically everything you ask them to, but again, they're not magic. Like he said, they can definitely focus on linting. They can definitely get caught up in small little areas, but the best part of them is they will automate your full workflow from beginning to end. So whether it's that starting from observing where the issues lie, finding those issues, being able to actually pull it down, understand where the issues lie, create those data sets, build out exact fixes, test them to make sure that they're working. And finally, you can then go ahead and be the manual human to make sure that hey, it didn't just go back and fix the linting changes, right?
这样我们就能确保它确实做出了有助于改进智能体的更改,而不是让它退化。这大概就是我今天想展示的主要内容。嗯,在我继续之前,还有其他问题吗?我也许可以最后展示一件事……哦,我之前想做的事情还在收尾。我希望这之后它就能完成了。花了大约 14 分钟。不过,趁它还在处理,还有其他关于如何利用智能体自动化工作流程、改进智能体的问题吗?好。And we can make sure that it actually made changes that actually help improve the agent and not go for degradation. That's kind of the general gist of what I wanted to show today. Um, any other questions on this before, you know, I can maybe show one last thing of seeing. Oh, still finishing up what I was trying to do earlier. I was hoping it might be done after this. took about 14 minutes. But um while that's finishing up, any other questions on how we can use our agents to automate our workflows and improving your agents? Yeah.
根据你的应用定制评估方式Tailor evaluations to your application
主持人:问得很好。他的问题是,我们主要是依赖 Claude 或这些编码代理来评估系统是否运行良好吗?嗯,是的,你完全可以依靠 Claude 来构建所有内容。也可以手动完成,还可以让 Claude 按照你的要求进行特定评估。比如,你刚才看到的那个整洁的表格,其实是由我和团队在此之前设置的评估项生成的。嗯,我们事先梳理过:在这种工作流中,大多数代理都有哪些潜在局限,然后把这些设成了通用评估项。这就是为什么我们得到了一份糟糕的摘要。我们还设置了一些评估项,比如:代理运行状态是否正常?它给出的结果是否正确?工具调用是否正确?Host: Great question. So his question was, are we primarily relying on Claude or any of these coding agents to actually go ahead and give us the evaluation if things are working well or not? Um, yes, you can definitely rely on Claude to build out everything. You can also manually do it. You can also ask Claude to do the specific evaluations you want. So in this case, when you saw that nice clean table, that was actually defined by the evaluations me and my team had set up prior to this. Um, we'd gone ahead and looked at, hey, these are specific areas that we know are potential limitations in most agents that work in this workflow and we set up those as generic ones, which is why we got a bad summary. We had some, hey, is the agent healthy? Is it giving the right are we getting tool calls correct?
对吧?我们知道这些都是一些通用领域,但 Claude 能做的是查看我们实际的追踪记录,并根据这些记录了解我们当前实际遇到了哪些问题。对吧?我们的线上智能体正在生产环境中运行。我没法手动逐一检查所有这些记录并找出问题,但 Claude 可以,或者 Claude、Cursor、Codex 之类的工具都可以,对吧?这就是你能赋予这些编程智能体的最大超能力之一:让它们替你完成这件事。我还看到这里有另一个问题。问得好。他的问题是:有没有什么基准数据集可以让我们查看,或者有没有什么可视化图表能告诉我们,哪种 LLM 更适合用于评估、质量更高,同时也更贵或更便宜?嗯,现实情况是没有;这类事情得由你自己做分析,自己弄清楚。因为归根结底,我常说的一句话是:如果你用开箱即用的评估来判断你的智能体,得到的也只会是开箱即用的结果。而这并不是你想要的——你构建的是专门定制、为你量身打造的 AI 智能体。Right? We know those are general areas, but what Claude was able to do was look at our actual traces, understand based on those traces, what are the actual issues we're falling into today. Right? we have our live agent in production. I'm not going to be able to go through all of those manually and find those, but Claude can or Claude cursor codeex, whatever, right? And that's where like one of the biggest superpowers that you're able to give these coding agents to be able to do that for you. I saw another question here. Good question. So his question was is there any sort of benchmark data set that we can see or any sort of like visualization that can tell us hey this is a higher quality LLM to use for evaluations more expensive less expensive um realistically no that would be sort of something you'd have to do for your own analysis you'd have to figure it out because ultimately one of the things that I like to say is if you're going to use out of the box eval to judge your agent you're going to get out of the box results and that's not what you want when you're building customtailored AI agents which are built to be personal for you.
嗯,基准测试也是一样的,对吧?基准测试很有用。它们会告诉你:“嘿,这个是个不错的智能体。”哦不,应该说,这是个不错的大语言模型。但实际上,你真正想知道的是:它适合我吗?这要根据你的使用场景量身定制。所以,如果你是为金融领域开发,也许会用某个特定的模型。如果你是为金融领域的法律应用开发,可能还会用一个略有不同的模型,对吧?所以,关键还是看你要用它来做什么。好,我想我该说的差不多都说完了。嗯,如果大家还有其他问题,我很乐意回答。总之,谢谢大家。Um, and the same goes for benchmarks, right? Benchmarks are great. They'll show you, hey, this this is a good agent. This is a good sorry, this is a good LLM. But realistically, what you want is, is it a good LLM for me? And that's going to be tailored to your use case. So, if you're building for finance, maybe you'll use a specific one. If you're building for, you know, law in finance, it might be even this slightly different model, right? So, it really depends on what you're building it for. Cool. I think that's more or less it more or less it from me. Um, if anyone has any other questions, I'm happy to answer them. But yeah, thank you guys.