{"@context":"https://schema.org","@type":"NewsArticle","generatedAt":"2026-09-18T17:00:43.709Z","headline":"Tessl 博客：AI 智能体评估应从证据开始，用 35 万行 Rust 复刻 S3 的实践复盘","description":"Tessl 博客复盘前 Docker CTO Justin Cormack 在 AI Native DevCon London 的演讲，分享用 AI 构建约 35 万行 Rust 的 S3 兼容对象存储的经验。","url":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","mainEntityOfPage":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","datePublished":"2026-09-16T16:00:00.000Z","dateModified":"2026-09-16T16:00:00.000Z","inLanguage":"zh-CN","publisher":{"@type":"NewsMediaOrganization","name":"Aioga","url":"https://www.aioga.com"},"citation":["https://tessl.io/blog/ai-agent-evaluation-starts-with-evidence","https://aihot.news/items/cmu707f5a0lferowk7ytu9d3h"],"canonicalUrl":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","directAnswer":{"@type":"Answer","text":"Tessl博客复盘了Justin Cormack在AI Native DevCon London的演讲，介绍其使用AI构建约35万行Rust代码的S3兼容对象存储实践，并强调通过测试、可观测性和反馈循环判断代码是否真正有效。","url":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","dateCreated":"2026-09-16T16:00:00.000Z","author":{"@type":"Organization","@id":"https://www.aioga.com/authors/aioga-editorial/#editorial-team","name":"Aioga Editorial Team","url":"https://www.aioga.com/authors/aioga-editorial/"}},"evidence":[{"@type":"CreativeWork","name":"Tessl：产品与工程博客 source article","url":"https://tessl.io/blog/ai-agent-evaluation-starts-with-evidence","datePublished":"2026-09-16T16:00:00.000Z","provider":{"@type":"Organization","name":"Tessl：产品与工程博客","url":"https://tessl.io/blog/ai-agent-evaluation-starts-with-evidence"}},{"@type":"CreativeWork","name":"AIHot archive record","url":"https://aihot.news/items/cmu707f5a0lferowk7ytu9d3h","datePublished":"2026-09-16T16:00:00.000Z","provider":{"@type":"Organization","name":"AIHot","url":"https://aihot.news/items/cmu707f5a0lferowk7ytu9d3h"}}],"aggregationSource":"Tessl：产品与工程博客","originalPublisher":{"name":"Tessl：产品与工程博客","url":"https://tessl.io/blog/ai-agent-evaluation-starts-with-evidence"},"geoDeepAnswer":null,"article":{"id":"cmu707f5a0lferowk7ytu9d3h","slug":"cmu707f5a0lferowk7ytu9d3h","url":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","title":"Tessl 博客：AI 智能体评估应从证据开始，用 35 万行 Rust 复刻 S3 的实践复盘","title_en":"","summary":"Tessl 博客复盘前 Docker CTO Justin Cormack 在 AI Native DevCon London 的演讲，分享用 AI 构建约 35 万行 Rust 的 S3 兼容对象存储的经验。","source":"Tessl：产品与工程博客","sourceUrl":"https://tessl.io/blog/ai-agent-evaluation-starts-with-evidence","aiHotUrl":"https://aihot.news/items/cmu707f5a0lferowk7ytu9d3h","publishedAt":"2026-09-16T16:00:00.000Z","category":"行业动态","score":72,"selected":true,"articleBody":["I love tests. I have always liked tests, and AI has made me think about testing even more. If AI is going to help us write production code, the important que...","I love tests. I have always liked tests, and AI has made me think about testing even more. If AI is going to help us write production code, the important question is not whether it can generate a lot of code quickly. The important question is whether we can build a feedback loop that tells us what is actually working.","That was the reason for my talk, \"When Tests Lie: Using Observability to Keep AI Honest.\" I wanted to understand what happens when you use AI on something much larger than a toy project. Small tools are fun. You can write them in half a day, test them aggressively, and feel reasonably good about the result. But could you use AI to build a large, complex infrastructure system?","I decided to try that with S3-compatible object storage. Object storage is my favourite cloud service, and most implementations I have looked at took at least two years to write. Some took a decade. I knew this was going to be large and complicated. At the point of the talk, the codebase was around 350,000 lines of Rust, and I was not going to pretend I had read every line.","That was part of the experiment. I wanted high quality code. I had architectural opinions. I cared about security, performance, and distributed systems behavior. I also wanted to stay human in the loop, because I wanted to know what went wrong rather than automate everything away from the start.","Tessl has turned my AI Native DevCon talk into a skill your agent can use as context：https://tessl.io/registry/ainativedev/aidevcon-2026-ldn/skills/talk-cormack-tests-lie-observability-ai-honest. You can also watch the full recording：https://www.youtube.com/watch?v=xHxfeWtkXrM.","The great thing about copying an existing system is that you get a test oracle. In my case, I could run tests against S3, observe the real behavior, and then tell the AI that our implementation had to behave exactly like that.","That changed the quality of the work. I ended up with around 1,500 tests that run against S3 and lock down behavior. For an agent, that is much better than a vague instruction. It gives the model a grounded baseline, and it gives me evidence when I am deciding whether to trust the implementation.","I now think that if you are writing a complex system, one good starting move is to build a very simple version first. It does not have to be the final architecture. It can be a trivial model of the behavior. But if you can build a test suite against that simple version, you can use it as an oracle while you build the more complex version.","This is not perfect. S3 is eventually consistent in places, especially around authorization behavior, so tests sometimes needed retries before they represented the real behavior correctly. An oracle is not quite the same thing as a specification. You still have to interpret what you are seeing.","The other discovery was that documentation is not enough. S3 has a lot of documentation, but when you get into the details, the documentation is often approximate, outdated, or simply not describing the behavior you actually observe. Or just wrong! Documentation can give you hints about what to test. The tests tell you what really happens.","I first tried chasing 100 percent test coverage, as that seemed a good idea. I measured different kinds of coverage, including coverage from integration tests. It did not help as much as people sometimes assume.","When I asked an AI agent to get to 100 percent coverage, it wrote trivial tests. Some of them technically improved the number, but they did not improve my confidence. I do not need a test for every random-number-generator failure path if the correct behavior is simply to return an error or panic. That is not where the most useful evidence is.","I still had a lot of tests. Most files had between 75 and 100 percent coverage. The point is not that coverage is bad. The point is that 100 percent statement coverage is not a useful substitute for thinking.","Tests are discovery tools. They are not a magic answer. You add tests where you are uncertain, where you are suspicious, and where you think the system may be hiding errors. If the code worries you, you spend more time trying to break it.","That is the mindset I want from AI-assisted development. The agent can generate tests, but I still need to decide what risk I am trying to expose.","One of the moments that gave me confidence was when the AI found a repeatable 500 error in S3. It was writing tests against S3 for an edge case and found behavior that looked like a real bug. It found another repeatable 500 error later.","That was exciting because it meant the test suite was not just checking obvious paths. It was exploring enough of the behavior space to find weird cases. When you are building a complex system, you spend a lot of time moving between \"everything is terrible and this will never work\" and \"actually, this is working again.\" Good tests help you move back toward confidence.","The funny part is that I was better than the AI at finding some edge cases from the documentation. I would read the AWS documentation, think \"is that really true?\", ask the AI to write tests, and then find behavior that was only approximately equal to the docs. When I pointed the AI at the docs and asked it to find edge cases directly, it was not very good at it.","That says something important about the human role. I still had to think like a tester. I had to ask about zero length, one length, 10,001 length, and the odd corners where systems tend to break. The agent could help turn that suspicion into executable tests, but the suspicion still mattered.","Flaky tests were one of the most interesting parts of the project. AWS converges to truth over time, and that wasted a lot of time. But my hard rule is simple: never have flaky tests with AI. Fix them immediately.","The reason is that agents can learn the wrong lesson from the culture around flaky tests. Sometimes it felt as if the training data told the model that developers do not fix flaky tests, so it should ignore them. I would have to remind it that in this codebase we fix flaky tests, and that this is written in the agent instructions.","The danger is obvious. If a test fails intermittently, the agent may decide the external system changed, or the test is not worth trusting, or the implementation should keep changing to match noise. That is exactly backwards. Fix the test first.","Fast tests make this possible. At the time of the talk, I had around 5,000 tests running in about two minutes. Two minutes is about my borderline acceptable limit. When tests run quickly, you can run them a lot, and you find flakes sooner. For rare conditions, I also ran repeated overnight test runs on multiple machines.","This is one place where AI is genuinely useful. It is good at fixing flaky tests if you make that the task and refuse to let the flakiness become normal.","Tests are essential, but they do not tell you everything. They can sometimes find race conditions, especially when they are fast and run often. They can help with many forms of behavior. Fuzz tests and property-based tests found issues for me. Asking the AI what kinds of tests we should have had after a bug often produced useful new test ideas. The AI has a lot of background in different types of tests.","But tests do not automatically find security problems. They do not decide whether your architecture is good. They do not tell you what you have failed to measure. If you cannot observe something, you cannot really test it.","That led me to think harder about testability. Anything that gives you a signal from the black box is useful. If there is a signal, capture it. If the public API does not expose enough, build management, reporting, or backend interfaces that let you understand the system better.","One thing I regret is not building more of those management and reporting interfaces earlier. I focused heavily on the public API because that was what I was trying to replicate and where I had the helpful oracle. But internal behavior matters too, and the more structured signals you can expose, the easier it is to test and debug.","Tracing became incredibly useful. I had the AI build a hand-maintained tracing framework, and even that was enough to change the debugging workflow. It did not need to be integrated into a production observability system to be valuable.","The reason is simple: when you give an AI a rare bug without a reproduction, it can waste a lot of time. It may fail to reproduce the issue, guess at a fix, or make a plausible change that does not actually address the problem.","When I could give it a trace from an overnight run and say, \"this happened, we need to fix it\", the work changed. The trace gave it something concrete to reason about. It could try to reproduce the same condition, compare behavior, and narrow down the real problem instead of guessing. AI guessing a fix often turned out to not be accurate, but with a replication it could write the correct fix.","Performance work had a similar lesson. AI behaves a lot like humans doing performance engineering. It can try something that seems like it should help, and then the change either does nothing or makes things worse. That is fine if you treat the work as cheap and disposable. If it does not improve performance, throw it away and try something else.","I also found places where the right answer was not more tracing or more tests, but a better type system. I had issues around permission checking and time-of-check, time-of-use behavior. Eventually I told the agent to model the authorization boundary in types, so functions that required authorized requests could only receive authorized requests. Once the type system enforces the property, you need fewer tests for that class of mistake. If mistakes get caught at compile time they don't get into production!","I used AI security review as another source of signal. I checked findings into the repository and asked the AI to review them. A large share were valid, even if not every finding was a direct security issue. More importantly, they led to useful review sessions: how could we have avoided this, and what tests or design changes would have caught it earlier?","That is how I think about my own role in the system. I am part of the feedback loop. I have opinions. I want to understand what is going wrong. I do not want to automate so much that I stop seeing the failure modes.","AI can write a lot of code. It can also help generate tests, traces, refactors, and reviews. But I am still responsible for quality. I care whether the code is good, whether the architecture holds together, and whether the system is actually converging toward something better.","The final lesson is that refactoring is part of the feedback loop too. I had weeks with very large line changes, including a 43,000-line file that had to be refactored. You do not have to one-shot the system. You converge. You make progress, then you ask what could still be better.","That is why I do not think of AI agent evaluation as a single score. It is a loop of evidence: test oracles, edge-case discovery, flaky-test discipline, traces, performance checks, security review, type-system constraints, and human judgement. Tests can lie when we ask them to stand alone. They become much more useful when they are one signal in a system designed to keep the agent honest.","The full version of this argument was presented at AI Native DevCon London：https://tessl.io/devcon/. To go deeper, watch the full recording：https://www.youtube.com/watch?v=xHxfeWtkXrM.","Justin was until last year the CTO of Docker, and has been involved in cloud native, infrastructure and security for many years. He has worked across infrastructrue and development, and developer tools for many years. At Docker he led a team working on AI and developer tooling. He has also been working in areas such as IoT, security and supply chain security.","Your 2-min weekly roundup of AI dev news, tools, curated content and events.","Tessl AI Ltd, 210 Pentonville Road, London, UK"],"articleImages":[{"sourceUrl":"https://cdn.sanity.io/images/ojuglg5y/production/88170b9f6c4a60b03ef3a5b7726f138323362b6f-1232x768.png?w=1232&q=85&auto=format","alt":"Justin Cormack","afterParagraph":0,"url":"/media/articles/cmu707f5a0lferowk7ytu9d3h/0e1423bad3fe7a7b.avif"},{"sourceUrl":"https://cdn.sanity.io/images/ojuglg5y/production/5ea6bcfeb5baa5e005223d8f07d02feb4c5c517f-3840x2160.png?w=3840&q=85&auto=format","alt":"","afterParagraph":0,"url":"/media/articles/cmu707f5a0lferowk7ytu9d3h/39fb162be80f5388.avif"},{"sourceUrl":"https://cdn.sanity.io/images/ojuglg5y/production/5a3c4db7dc9c501b1d1396ef8a0488f0f424a026-1089x308.png?w=1089&q=85&auto=format","alt":"","afterParagraph":40,"url":"/media/articles/cmu707f5a0lferowk7ytu9d3h/8d1f84550a9c00b9.avif"}],"mediaStatus":"ok","articleBodyZh":["我喜欢测试。我一直都喜欢测试，而人工智能让我对测试的思考更多。如果人工智能要帮助我们编写生产代码，重要的问题不是它能否快速生成大量代码。","我喜欢测试。我一直都喜欢测试，而人工智能让我对测试的思考更多。如果人工智能要帮助我们编写生产代码，重要的问题不是它能否快速生成大量代码。重要的问题是我们是否可以建立一个反馈循环，告诉我们哪些实际上是有效的。","这就是我做演讲“当测试说谎：使用可观察性保持人工智能诚实”的原因。我想了解当你在比玩具项目大得多的项目上使用人工智能时会发生什么。小工具很有趣。你可以在半天内编写它们，积极测试它们，并对结果感到相当满意。但是你能用人工智能构建一个大型复杂的基础设施系统吗？","我决定用兼容 S3 的对象存储来尝试。对象存储是我最喜欢的云服务，而且我研究过的大多数实现至少花了两年时间来编写，有些甚至花了十年。我知道这将是一个庞大而复杂的项目。在演讲时，代码库大约有 350,000 行 Rust，我并不打算假装我阅读了每一行。","这正是实验的一部分。我想要高质量的代码。我有架构上的看法。我关心安全性、性能和分布式系统行为。我也想保持人类在环，因为我想知道出了什么问题，而不是一开始就自动化掉一切。","Tessl 已将我的 AI Native DevCon 演讲转换为你的代理可以用作上下文的技能：https://tessl.io/registry/ainativedev/aidevcon-2026-ldn/skills/talk-cormack-tests-lie-observability-ai-honest。你也可以观看完整录制：https://www.youtube.com/watch?v=xHxfeWtkXrM。","复制现有系统的好处是，你可以获得一个测试圣杯。以我为例，我可以针对 S3 运行测试，观察实际行为，然后告诉人工智能我们的实现必须完全像那样表现。","这改变了工作的质量。我最终大约有 1,500 个测试运行在 S3 上并锁定行为。对于一个代理来说，这比模糊的指令要好得多。它给模型提供了一个有依据的基线，同时在我决定是否信任实现时也提供了证据。","我现在认为，如果你正在编写一个复杂系统，一个好的起点是先构建一个非常简单的版本。它不必是最终的架构，只能是行为的一个简单模型。但如果你能针对这个简单版本构建测试套件，那么在构建更复杂版本时，你可以将其作为一个参考标准。","这并不完美。S3 在某些地方是最终一致性的，尤其是在授权行为方面，因此测试有时需要重试，才能准确反映真实行为。参考标准并不完全等同于规范，你仍然需要解释你所看到的内容。","另一个发现是文档不足以应对实际问题。S3 有大量文档，但当你深入细节时，文档常常是大概的、过时的，或者根本没有描述你实际观察到的行为，甚至完全错误！文档可以给你关于测试内容的提示，而测试告诉你实际发生了什么。","我最初尝试追求 100% 的测试覆盖率，因为看起来这是个好主意。我衡量了不同类型的覆盖率，包括集成测试的覆盖率。但它的帮助不如人们有时想象的那么大。","当我要求 AI 代理达到 100% 覆盖率时，它写了些琐碎的测试。其中一些在技术上提高了覆盖率，但并没有提升我的信心。如果正确的行为只是返回错误或触发异常，我并不需要针对每个随机数生成器的失败路径编写测试。最有用的证据并不在这些地方。","我仍然有大量的测试。大多数文件的覆盖率在 75% 到 100% 之间。重点不是覆盖率不好，而是 100% 语句覆盖率并不能替代深入思考。","测试是发现工具，而不是魔法答案。你在不确定、怀疑以及认为系统可能隐藏错误的地方增加测试。如果代码让你担心，你就花更多时间尝试破坏它。","那就是我希望在 AI 辅助开发中看到的心态。智能体可以生成测试，但我仍然需要决定我想要暴露什么风险。","让我有信心的一个时刻是当 AI 在 S3 中发现一个可复现的 500 错误。它正在针对 S3 的一个边缘情况编写测试，发现了看起来像真正漏洞的行为。后来它又发现了另一个可复现的 500 错误。","这令人兴奋，因为这意味着测试套件不仅仅是在检查显而易见的路径。它在探索足够的行为空间以发现奇怪的情况。在构建复杂系统时，你会花很多时间在“事情一团糟，这绝对行不通”和“实际上，这又在正常工作”之间徘徊。好的测试可以帮助你再次回到信心。","有趣的是，在从文档中寻找某些边缘情况方面，我比 AI 更出色。我会阅读 AWS 文档，想“这真的是真的吗？”，然后让 AI 编写测试，接着发现行为只是大致符合文档。当我直接让 AI 针对文档寻找边缘情况时，它表现得并不好。","这说明了人类角色的重要性。我仍然必须像测试人员一样思考。我必须考虑零长度、长度为一、长度为 10,001 以及系统容易出错的奇怪边角情况。智能体可以帮助将这种怀疑转化为可执行的测试，但怀疑本身仍然很重要。","不稳定测试是项目中最有趣的部分之一。AWS 随时间趋向于真值，而这浪费了大量时间。但我的硬性规则很简单：AI 帮助下绝不允许有不稳定的测试。必须立即修复它们。","原因在于智能体可能会从围绕不稳定测试的文化中学到错误的教训。有时感觉训练数据告诉模型开发者不会修复不稳定测试，所以它应该忽略它们。我必须提醒它，在这个代码库中我们会修复不稳定测试，并且这已经写在智能体的指令里。","危险是显而易见的。如果测试间歇性失败，智能体可能会认为外部系统发生了变化，或者测试不值得信任，或者实现应该不断更改以适应噪声。这完全是反方向的。应该先修复测试。","快速测试使这一点成为可能。在演讲时，我大约有 5,000 个测试在大约两分钟内运行完毕。两分钟是我可以接受的极限。当测试运行得很快时，你可以频繁运行它们，并且更早发现不稳定性。对于罕见情况，我还在多台机器上进行了反复的夜间测试运行。","这是人工智能真正有用的一个地方。如果你把修复不稳定测试作为任务，并且不允许这种不稳定性变成常态，它就非常擅长。","测试是必不可少的，但它们不能告诉你所有问题。有时它们可以发现竞态条件，尤其是当测试快速且运行频繁时。它们可以帮助涵盖许多形式的行为测试。模糊测试和基于属性的测试帮我发现了问题。在出现 bug 后询问 AI 我们应该做什么样的测试，往往能够产生有用的新测试思路。AI 对不同类型的测试有很多背景知识。","但测试并不会自动发现安全问题。它们无法判断你的架构是否良好。它们也不会告诉你哪些内容未被衡量。如果你无法观察某些东西，那么你也无法真正测试它。","这让我更深思可测试性。任何能够从黑箱中提供信号的东西都是有用的。如果有信号，就捕捉它。如果公共 API 没有提供足够信息，就构建管理、报告或后台接口，让你更好地理解系统。","我遗憾的一点是没有早些构建更多这样的管理和报告接口。我之前过于专注于公共 API，因为那是我想要复制的部分，也是我拥有可靠参考的地方。但内部行为同样重要，而你能暴露的结构化信号越多，测试和调试就越容易。","追踪变得极其有用。我让 AI 构建了一个手工维护的追踪框架，即便如此，也足以改变调试工作流程。它不需要集成到生产观察系统中也能发挥价值。","原因很简单：当你给 AI 一个无法复现的罕见 bug 时，它可能会浪费大量时间。它可能复现失败、随意猜测修复方法，或者做出看似合理却实际上并未解决问题的更改。","当我能给它一个通宵运行的痕迹并说“发生了这个问题，我们需要修复它”时，工作就改变了。这个轨迹给了它一个具体的推理依据。它可以尝试重现相同的条件，比较行为，从而缩小真正的问题范围，而不是猜测。AI猜测修复往往不准确，但通过复制它可以写出正确的修复。","性能工作也有类似的教训。人工智能的行为很像人类做性能工程。它可能尝试看似有帮助的东西，但改变要么无效，要么反而更糟。如果你把这项工作当作廉价且一次性的，那也没问题。如果它不能提升性能，那就扔掉它，换个方法。","我也发现正确的答案不是更多的追踪或测试，而是更好的类型系统。我在权限检查和检查时间、使用时间行为方面遇到了问题。最终我让代理用类型建模授权边界，这样需要授权请求的函数只能接收授权请求。一旦类型系统强制执行了该属性，你就不需要针对这类错误的测试次数减少。如果错误在编译时被发现，它们就无法进入生产环境！","我将AI安全审查作为另一个信号来源。我将发现记录录入仓库，并请求AI进行审查。大部分发现是有效的，尽管并非所有发现都是直接的安全问题。更重要的是，这些发现促成了有用的审查会议：我们如何避免这种情况？哪些测试或设计变更能更早发现？","这就是我对自己在系统中角色的看法。我是反馈循环的一部分。我有自己的看法。我想弄清楚哪里出了问题。我不想自动化到看不到失败模式。","AI可以写大量代码。它还能帮助生成测试、追踪、重构和评审。但我仍然负责质量。我关心代码是否好，架构是否完整，系统是否真正趋向于更好的东西。","最后的教训是重构也是反馈循环的一部分。我那几周修改了非常多的代码行，包括一个必须重构的 43,000 行的文件。你不必一次性完成整个系统。你需要逐步接近。你先取得进展，然后再问还有什么可以改进的。","这就是为什么我不把 AI 代理评估看作单一的分数。它是一个证据循环：测试神谕、边界情况发现、不稳定测试管理、追踪、性能检查、安全审查、类型系统约束，以及人工判断。当我们要求测试独立存在时，测试可能会欺骗我们。当它们成为一个系统中的一个信号，用来确保代理诚实时，它们就变得更有用。","这个论点的完整版本在 AI Native DevCon London 上展示：https://tessl.io/devcon/。想要更深入了解，请观看完整录像：https://www.youtube.com/watch?v=xHxfeWtkXrM。","Justin 直到去年一直是 Docker 的首席技术官，并多年来一直参与云原生、基础设施和安全工作。他在基础设施、开发以及开发者工具领域有多年经验。在 Docker，他领导了一个专注于 AI 及开发者工具的团队。他还在物联网、安全和供应链安全等领域工作。","你的每周 2 分钟 AI 开发新闻、工具、精选内容和活动回顾。","Tessl AI有限公司，英国伦敦盆通维尔路210号"],"translationStatus":"translated","bodyOrigin":"source-page","editorial":{"summary":"Tessl博客复盘了Justin Cormack在AI Native DevCon London的演讲，介绍其使用AI构建约35万行Rust代码的S3兼容对象存储实践，并强调通过测试、可观测性和反馈循环判断代码是否真正有效。","background":"该项目以S3作为可对照的现有系统，通过运行测试观察真实行为，形成约1500项针对S3的测试，用于锁定实现行为。文章同时指出，作者希望保持人在循环中，并关注安全、性能和分布式系统行为。","viewpoint":"Aioga 判断：这篇复盘的重点不只是AI生成了多少代码，而是能否建立可验证的反馈机制。将真实系统作为测试参照，为评估复杂AI开发成果提供了比抽象指令更具体的证据基础。","implications":"可能影响：AI参与生产级软件开发时，单纯增加测试数量可能不足以证明实现可靠，评估流程需要结合真实行为对照、可观测性和人工判断；测试结果有效，也不代表所有质量风险都已被覆盖。","nextStep":"后续观察：应关注这套以S3行为为参照的测试方法，能否持续覆盖安全、性能和分布式系统行为，并观察人在循环中的判断如何参与后续验证。","evidenceRefs":["title","summary","articleBody","source"],"status":"published","aiGenerated":true,"autoApproved":true,"generatedBy":"aioga-editorial:gpt-5.6-sol","reviewedBy":"aioga-editorial-review:gpt-5.6-sol","generatedAt":"2026-09-18T17:15:50.226Z","sourceHash":"5de01c3dcd2f94d9","review":{"approved":true,"groundedness":95,"clarity":91,"duplicationRisk":18,"blockingIssues":[],"notes":["主要事实均可由来源材料支持；推断和后续建议已通过“判断”“可能影响”“应关注”等表述区分。可将“Aioga 判断”统一为更自然的中文署名或表述，但这属于措辞优化，不影响审核通过。"]},"validation":{"passed":true,"mode":"ai-auto","revisions":0,"checks":["schema","length","source-attribution","editorial-labels","inference-boundary","low-source-overlap","no-html","independent-ai-review"]}},"tags":["行业动态","Tessl：产品与工程博客"],"translations":{"zh-CN":{"title":"Justin Cormack 用 35 万行 Rust 复盘 AI Agent 评估：从证据开始","summary":"Tessl 发布的这篇博客复盘作者用 AI 构建约 35 万行 Rust 的 S3 兼容对象存储的实验。","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack 用 35 万行 Rust 复盘 AI Agent 评估：从证据开始 - Aioga AI资讯","description":"Tessl 发布的这篇博客复盘作者用 AI 构建约 35 万行 Rust 的 S3 兼容对象存储的实验。","url":"https://www.aioga.com/news/cmu707f5a0lferowk7ytu9d3h/","articleBody":["我喜欢测试。我一直都喜欢测试，而人工智能让我对测试的思考更多。如果人工智能要帮助我们编写生产代码，重要的问题不是它能否快速生成大量代码。","我喜欢测试。我一直都喜欢测试，而人工智能让我对测试的思考更多。如果人工智能要帮助我们编写生产代码，重要的问题不是它能否快速生成大量代码。重要的问题是我们是否可以建立一个反馈循环，告诉我们哪些实际上是有效的。","这就是我做演讲“当测试说谎：使用可观察性保持人工智能诚实”的原因。我想了解当你在比玩具项目大得多的项目上使用人工智能时会发生什么。小工具很有趣。你可以在半天内编写它们，积极测试它们，并对结果感到相当满意。但是你能用人工智能构建一个大型复杂的基础设施系统吗？","我决定用兼容 S3 的对象存储来尝试。对象存储是我最喜欢的云服务，而且我研究过的大多数实现至少花了两年时间来编写，有些甚至花了十年。我知道这将是一个庞大而复杂的项目。在演讲时，代码库大约有 350,000 行 Rust，我并不打算假装我阅读了每一行。","这正是实验的一部分。我想要高质量的代码。我有架构上的看法。我关心安全性、性能和分布式系统行为。我也想保持人类在环，因为我想知道出了什么问题，而不是一开始就自动化掉一切。","Tessl 已将我的 AI Native DevCon 演讲转换为你的代理可以用作上下文的技能：https://tessl.io/registry/ainativedev/aidevcon-2026-ldn/skills/talk-cormack-tests-lie-observability-ai-honest。你也可以观看完整录制：https://www.youtube.com/watch?v=xHxfeWtkXrM。","复制现有系统的好处是，你可以获得一个测试圣杯。以我为例，我可以针对 S3 运行测试，观察实际行为，然后告诉人工智能我们的实现必须完全像那样表现。","这改变了工作的质量。我最终大约有 1,500 个测试运行在 S3 上并锁定行为。对于一个代理来说，这比模糊的指令要好得多。它给模型提供了一个有依据的基线，同时在我决定是否信任实现时也提供了证据。","我现在认为，如果你正在编写一个复杂系统，一个好的起点是先构建一个非常简单的版本。它不必是最终的架构，只能是行为的一个简单模型。但如果你能针对这个简单版本构建测试套件，那么在构建更复杂版本时，你可以将其作为一个参考标准。","这并不完美。S3 在某些地方是最终一致性的，尤其是在授权行为方面，因此测试有时需要重试，才能准确反映真实行为。参考标准并不完全等同于规范，你仍然需要解释你所看到的内容。","另一个发现是文档不足以应对实际问题。S3 有大量文档，但当你深入细节时，文档常常是大概的、过时的，或者根本没有描述你实际观察到的行为，甚至完全错误！文档可以给你关于测试内容的提示，而测试告诉你实际发生了什么。","我最初尝试追求 100% 的测试覆盖率，因为看起来这是个好主意。我衡量了不同类型的覆盖率，包括集成测试的覆盖率。但它的帮助不如人们有时想象的那么大。","当我要求 AI 代理达到 100% 覆盖率时，它写了些琐碎的测试。其中一些在技术上提高了覆盖率，但并没有提升我的信心。如果正确的行为只是返回错误或触发异常，我并不需要针对每个随机数生成器的失败路径编写测试。最有用的证据并不在这些地方。","我仍然有大量的测试。大多数文件的覆盖率在 75% 到 100% 之间。重点不是覆盖率不好，而是 100% 语句覆盖率并不能替代深入思考。","测试是发现工具，而不是魔法答案。你在不确定、怀疑以及认为系统可能隐藏错误的地方增加测试。如果代码让你担心，你就花更多时间尝试破坏它。","那就是我希望在 AI 辅助开发中看到的心态。智能体可以生成测试，但我仍然需要决定我想要暴露什么风险。","让我有信心的一个时刻是当 AI 在 S3 中发现一个可复现的 500 错误。它正在针对 S3 的一个边缘情况编写测试，发现了看起来像真正漏洞的行为。后来它又发现了另一个可复现的 500 错误。","这令人兴奋，因为这意味着测试套件不仅仅是在检查显而易见的路径。它在探索足够的行为空间以发现奇怪的情况。在构建复杂系统时，你会花很多时间在“事情一团糟，这绝对行不通”和“实际上，这又在正常工作”之间徘徊。好的测试可以帮助你再次回到信心。","有趣的是，在从文档中寻找某些边缘情况方面，我比 AI 更出色。我会阅读 AWS 文档，想“这真的是真的吗？”，然后让 AI 编写测试，接着发现行为只是大致符合文档。当我直接让 AI 针对文档寻找边缘情况时，它表现得并不好。","这说明了人类角色的重要性。我仍然必须像测试人员一样思考。我必须考虑零长度、长度为一、长度为 10,001 以及系统容易出错的奇怪边角情况。智能体可以帮助将这种怀疑转化为可执行的测试，但怀疑本身仍然很重要。","不稳定测试是项目中最有趣的部分之一。AWS 随时间趋向于真值，而这浪费了大量时间。但我的硬性规则很简单：AI 帮助下绝不允许有不稳定的测试。必须立即修复它们。","原因在于智能体可能会从围绕不稳定测试的文化中学到错误的教训。有时感觉训练数据告诉模型开发者不会修复不稳定测试，所以它应该忽略它们。我必须提醒它，在这个代码库中我们会修复不稳定测试，并且这已经写在智能体的指令里。","危险是显而易见的。如果测试间歇性失败，智能体可能会认为外部系统发生了变化，或者测试不值得信任，或者实现应该不断更改以适应噪声。这完全是反方向的。应该先修复测试。","快速测试使这一点成为可能。在演讲时，我大约有 5,000 个测试在大约两分钟内运行完毕。两分钟是我可以接受的极限。当测试运行得很快时，你可以频繁运行它们，并且更早发现不稳定性。对于罕见情况，我还在多台机器上进行了反复的夜间测试运行。","这是人工智能真正有用的一个地方。如果你把修复不稳定测试作为任务，并且不允许这种不稳定性变成常态，它就非常擅长。","测试是必不可少的，但它们不能告诉你所有问题。有时它们可以发现竞态条件，尤其是当测试快速且运行频繁时。它们可以帮助涵盖许多形式的行为测试。模糊测试和基于属性的测试帮我发现了问题。在出现 bug 后询问 AI 我们应该做什么样的测试，往往能够产生有用的新测试思路。AI 对不同类型的测试有很多背景知识。","但测试并不会自动发现安全问题。它们无法判断你的架构是否良好。它们也不会告诉你哪些内容未被衡量。如果你无法观察某些东西，那么你也无法真正测试它。","这让我更深思可测试性。任何能够从黑箱中提供信号的东西都是有用的。如果有信号，就捕捉它。如果公共 API 没有提供足够信息，就构建管理、报告或后台接口，让你更好地理解系统。","我遗憾的一点是没有早些构建更多这样的管理和报告接口。我之前过于专注于公共 API，因为那是我想要复制的部分，也是我拥有可靠参考的地方。但内部行为同样重要，而你能暴露的结构化信号越多，测试和调试就越容易。","追踪变得极其有用。我让 AI 构建了一个手工维护的追踪框架，即便如此，也足以改变调试工作流程。它不需要集成到生产观察系统中也能发挥价值。","原因很简单：当你给 AI 一个无法复现的罕见 bug 时，它可能会浪费大量时间。它可能复现失败、随意猜测修复方法，或者做出看似合理却实际上并未解决问题的更改。","当我能给它一个通宵运行的痕迹并说“发生了这个问题，我们需要修复它”时，工作就改变了。这个轨迹给了它一个具体的推理依据。它可以尝试重现相同的条件，比较行为，从而缩小真正的问题范围，而不是猜测。AI猜测修复往往不准确，但通过复制它可以写出正确的修复。","性能工作也有类似的教训。人工智能的行为很像人类做性能工程。它可能尝试看似有帮助的东西，但改变要么无效，要么反而更糟。如果你把这项工作当作廉价且一次性的，那也没问题。如果它不能提升性能，那就扔掉它，换个方法。","我也发现正确的答案不是更多的追踪或测试，而是更好的类型系统。我在权限检查和检查时间、使用时间行为方面遇到了问题。最终我让代理用类型建模授权边界，这样需要授权请求的函数只能接收授权请求。一旦类型系统强制执行了该属性，你就不需要针对这类错误的测试次数减少。如果错误在编译时被发现，它们就无法进入生产环境！","我将AI安全审查作为另一个信号来源。我将发现记录录入仓库，并请求AI进行审查。大部分发现是有效的，尽管并非所有发现都是直接的安全问题。更重要的是，这些发现促成了有用的审查会议：我们如何避免这种情况？哪些测试或设计变更能更早发现？","这就是我对自己在系统中角色的看法。我是反馈循环的一部分。我有自己的看法。我想弄清楚哪里出了问题。我不想自动化到看不到失败模式。","AI可以写大量代码。它还能帮助生成测试、追踪、重构和评审。但我仍然负责质量。我关心代码是否好，架构是否完整，系统是否真正趋向于更好的东西。","最后的教训是重构也是反馈循环的一部分。我那几周修改了非常多的代码行，包括一个必须重构的 43,000 行的文件。你不必一次性完成整个系统。你需要逐步接近。你先取得进展，然后再问还有什么可以改进的。","这就是为什么我不把 AI 代理评估看作单一的分数。它是一个证据循环：测试神谕、边界情况发现、不稳定测试管理、追踪、性能检查、安全审查、类型系统约束，以及人工判断。当我们要求测试独立存在时，测试可能会欺骗我们。当它们成为一个系统中的一个信号，用来确保代理诚实时，它们就变得更有用。","这个论点的完整版本在 AI Native DevCon London 上展示：https://tessl.io/devcon/。想要更深入了解，请观看完整录像：https://www.youtube.com/watch?v=xHxfeWtkXrM。","Justin 直到去年一直是 Docker 的首席技术官，并多年来一直参与云原生、基础设施和安全工作。他在基础设施、开发以及开发者工具领域有多年经验。在 Docker，他领导了一个专注于 AI 及开发者工具的团队。他还在物联网、安全和供应链安全等领域工作。","你的每周 2 分钟 AI 开发新闻、工具、精选内容和活动回顾。","Tessl AI有限公司，英国伦敦盆通维尔路210号"]},"en":{"title":"Justin Cormack Reviews AI Agent Evaluation Using 350,000 Lines of Rust: Starting from the Evidence","summary":"This blog post published by Tessl reviews the author's experiment of using AI to build approximately 350,000 lines of Rust for S3-compatible object storage.","category":"Industry","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack Reviews AI Agent Evaluation Using 350,000 Lines of Rust: Starting from the Evidence - Aioga AI News","description":"This blog post published by Tessl reviews the author's experiment of using AI to build approximately 350,000 lines of Rust for S3-compatible object storage.","url":"https://www.aioga.com/en/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:02:42.413Z"},"ja":{"title":"ジャスティン・コーマックが35万行のRustでAIエージェントの評価を振り返る：証拠から始める","summary":"Tessl が公開したこのブログ記事では、著者が AI を使って約35万行の Rust で S3 互換のオブジェクトストレージを構築する実験を振り返っています。","category":"業界動向","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"ジャスティン・コーマックが35万行のRustでAIエージェントの評価を振り返る：証拠から始める - Aioga AIニュース","description":"Tessl が公開したこのブログ記事では、著者が AI を使って約35万行の Rust で S3 互換のオブジェクトストレージを構築する実験を振り返っています。","url":"https://www.aioga.com/ja/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:02:52.286Z"},"ko":{"title":"Justin Cormack가 35만 줄의 Rust로 AI 에이전트 평가를 복기하다: 증거부터 시작","summary":"Tessl가 발표한 이 블로그는 저자가 AI를 사용해 약 35만 줄의 Rust로 S3 호환 객체 저장소를 구축한 실험을 회고한 내용입니다.","category":"업계 동향","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack가 35만 줄의 Rust로 AI 에이전트 평가를 복기하다: 증거부터 시작 - Aioga AI 뉴스","description":"Tessl가 발표한 이 블로그는 저자가 AI를 사용해 약 35만 줄의 Rust로 S3 호환 객체 저장소를 구축한 실험을 회고한 내용입니다.","url":"https://www.aioga.com/ko/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:03:38.697Z"},"es":{"title":"Justin Cormack utilizó 350,000 líneas de Rust para revisar la evaluación de AI Agent: comenzando con la evidencia","summary":"El blog publicado por Tessl repasa el experimento del autor sobre la construcción de un almacenamiento de objetos compatible con S3 con aproximadamente 350,000 líneas de Rust utilizando IA.","category":"Industria","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack utilizó 350,000 líneas de Rust para revisar la evaluación de AI Agent: comenzando con la evidencia - Aioga Noticias de IA","description":"El blog publicado por Tessl repasa el experimento del autor sobre la construcción de un almacenamiento de objetos compatible con S3 con aproximadamente 350,000 líneas de Rust utili...","url":"https://www.aioga.com/es/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:03:36.859Z"},"fr":{"title":"Justin Cormack utilise 350 000 lignes de Rust pour passer en revue l'évaluation des agents AI : en commençant par les preuves","summary":"Le blog publié par Tessl revient sur l'expérience de l'auteur utilisant l'IA pour construire un stockage d'objets compatible S3 de près de 350 000 lignes de Rust.","category":"Industrie","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack utilise 350 000 lignes de Rust pour passer en revue l'évaluation des agents AI : en commençant par les preuves - Aioga Actualités IA","description":"Le blog publié par Tessl revient sur l'expérience de l'auteur utilisant l'IA pour construire un stockage d'objets compatible S3 de près de 350 000 lignes de Rust.","url":"https://www.aioga.com/fr/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:04:25.903Z"},"de":{"title":"Justin Cormack verwendet 350.000 Zeilen Rust, um die Bewertung von AI Agents zu rekapitulieren: Beginnend mit Beweisen","summary":"Der von Tessl veröffentlichte Blogbeitrag rekapituliert das Experiment des Autors, bei dem er mit KI etwa 350.000 Zeilen Rust für einen S3-kompatiblen Objektspeicher erstellt hat.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack verwendet 350.000 Zeilen Rust, um die Bewertung von AI Agents zu rekapitulieren: Beginnend mit Beweisen - Aioga KI-News","description":"Der von Tessl veröffentlichte Blogbeitrag rekapituliert das Experiment des Autors, bei dem er mit KI etwa 350.000 Zeilen Rust für einen S3-kompatiblen Objektspeicher erstellt hat.","url":"https://www.aioga.com/de/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:04:34.692Z"},"pt-BR":{"title":"Justin Cormack reviu Agente de IA com 350 mil linhas de Rust: começando pelas evidências","summary":"O blog publicado pela Tessl revisita o experimento do autor usando IA para construir um armazenamento de objetos compatível com S3 com cerca de 350.000 linhas de Rust.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack reviu Agente de IA com 350 mil linhas de Rust: começando pelas evidências - Aioga Notícias de IA","description":"O blog publicado pela Tessl revisita o experimento do autor usando IA para construir um armazenamento de objetos compatível com S3 com cerca de 350.000 linhas de Rust.","url":"https://www.aioga.com/pt-BR/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:05:20.144Z"},"ru":{"title":"Джастин Кормак проанализировал AI-агента с помощью 350 000 строк Rust: начиная с доказательств","summary":"Блог, опубликованный Tessl, подводит итоги эксперимента автора по созданию с помощью AI S3-совместимого объектного хранилища на Rust объемом около 350 тысяч строк кода.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Джастин Кормак проанализировал AI-агента с помощью 350 000 строк Rust: начиная с доказательств - Aioga Новости ИИ","description":"Блог, опубликованный Tessl, подводит итоги эксперимента автора по созданию с помощью AI S3-совместимого объектного хранилища на Rust объемом около 350 тысяч строк кода.","url":"https://www.aioga.com/ru/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:05:26.842Z"},"ar":{"title":"جاستن كورماك يراجع تقييم وكلاء الذكاء الاصطناعي مع 350,000 سطر من Rust: بدءا من الأدلة","summary":"تستعرض هذه التدوينة من تأليف تيسل تجربة المؤلف باستخدام الذكاء الاصطناعي لبناء حوالي 350,000 سطر من تخزين الكائنات المتوافق مع Rust S3.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"جاستن كورماك يراجع تقييم وكلاء الذكاء الاصطناعي مع 350,000 سطر من Rust: بدءا من الأدلة - Aioga أخبار الذكاء الاصطناعي","description":"تستعرض هذه التدوينة من تأليف تيسل تجربة المؤلف باستخدام الذكاء الاصطناعي لبناء حوالي 350,000 سطر من تخزين الكائنات المتوافق مع Rust S3.","url":"https://www.aioga.com/ar/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:06:19.126Z"},"hi":{"title":"जस्टिन कॉरमैक ने 3.5 लाख लाइनों के रस्ट कोड का उपयोग करके एआई एजेंट मूल्यांकन की समीक्षा की: सबूत से शुरू","summary":"Tessl द्वारा प्रकाशित इस ब्लॉग में लेखक ने AI का उपयोग करके लगभग 3.5 लाख लाइनों का Rust आधारित S3 संगत ऑब्जेक्ट स्टोरेज बनाने के प्रयोग की समीक्षा की है।","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"जस्टिन कॉरमैक ने 3.5 लाख लाइनों के रस्ट कोड का उपयोग करके एआई एजेंट मूल्यांकन की समीक्षा की: सबूत से शुरू - Aioga AI समाचार","description":"Tessl द्वारा प्रकाशित इस ब्लॉग में लेखक ने AI का उपयोग करके लगभग 3.5 लाख लाइनों का Rust आधारित S3 संगत ऑब्जेक्ट स्टोरेज बनाने के प्रयोग की समीक्षा की है।","url":"https://www.aioga.com/hi/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:06:16.981Z"},"it":{"title":"Justin Cormack utilizza 350.000 righe di Rust per rivedere la valutazione degli agenti AI: si parte dalle prove","summary":"Il blog pubblicato da Tessl ripercorre l'esperimento dell'autore nell'utilizzare l'AI per costruire uno storage di oggetti compatibile con S3 in Rust di circa 350.000 righe.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack utilizza 350.000 righe di Rust per rivedere la valutazione degli agenti AI: si parte dalle prove - Aioga Notizie IA","description":"Il blog pubblicato da Tessl ripercorre l'esperimento dell'autore nell'utilizzare l'AI per costruire uno storage di oggetti compatibile con S3 in Rust di circa 350.000 righe.","url":"https://www.aioga.com/it/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:07:09.886Z"},"nl":{"title":"Justin Cormack gebruikt 350.000 regels Rust om AI-agentbeoordeling te herzien: beginnen bij bewijs","summary":"Deze blogpost van Tessl blikt terug op het experiment van de auteur om met AI ongeveer 350.000 regels Rust te bouwen voor S3-compatibele objectopslag.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack gebruikt 350.000 regels Rust om AI-agentbeoordeling te herzien: beginnen bij bewijs - Aioga AI-nieuws","description":"Deze blogpost van Tessl blikt terug op het experiment van de auteur om met AI ongeveer 350.000 regels Rust te bouwen voor S3-compatibele objectopslag.","url":"https://www.aioga.com/nl/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:07:09.249Z"},"tr":{"title":"Justin Cormack, 35 bin satır Rust ile AI Agent değerlendirmesini gözden geçirdi: Kanıttan başlamak","summary":"Tessl tarafından yayımlanan bu blog, yazarın AI kullanarak yaklaşık 35 bin satır Rust ile S3 uyumlu nesne depolama oluşturma deneyimini gözden geçiriyor.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack, 35 bin satır Rust ile AI Agent değerlendirmesini gözden geçirdi: Kanıttan başlamak - Aioga AI Haberleri","description":"Tessl tarafından yayımlanan bu blog, yazarın AI kullanarak yaklaşık 35 bin satır Rust ile S3 uyumlu nesne depolama oluşturma deneyimini gözden geçiriyor.","url":"https://www.aioga.com/tr/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:07:56.192Z"},"vi":{"title":"Justin Cormack sử dụng 350.000 dòng Rust để đánh giá AI Agent: Bắt đầu từ bằng chứng","summary":"Bài blog do Tessl phát hành này tổng kết trải nghiệm của tác giả khi sử dụng AI để xây dựng kho lưu trữ đối tượng tương thích S3 với khoảng 350.000 dòng mã Rust.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack sử dụng 350.000 dòng Rust để đánh giá AI Agent: Bắt đầu từ bằng chứng - Tin tức AI Aioga","description":"Bài blog do Tessl phát hành này tổng kết trải nghiệm của tác giả khi sử dụng AI để xây dựng kho lưu trữ đối tượng tương thích S3 với khoảng 350.000 dòng mã Rust.","url":"https://www.aioga.com/vi/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:08:01.645Z"},"id":{"title":"Justin Cormack menggunakan 35 ribu baris Rust untuk meninjau evaluasi AI Agent: Dimulai dari bukti","summary":"Blog yang diterbitkan oleh Tessl ini meninjau kembali eksperimen penulis menggunakan AI untuk membangun penyimpanan objek kompatibel S3 dengan sekitar 350.000 baris Rust.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack menggunakan 35 ribu baris Rust untuk meninjau evaluasi AI Agent: Dimulai dari bukti - Berita AI Aioga","description":"Blog yang diterbitkan oleh Tessl ini meninjau kembali eksperimen penulis menggunakan AI untuk membangun penyimpanan objek kompatibel S3 dengan sekitar 350.000 baris Rust.","url":"https://www.aioga.com/id/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:08:56.657Z"},"th":{"title":"Justin Cormack ใช้ Rust 350,000 บรรทัดมาทบทวนการประเมิน AI Agent: เริ่มจากหลักฐาน","summary":"บล็อกนี้ที่เผยแพร่โดย Tessl เป็นการทบทวนการทดลองของผู้เขียนที่ใช้ AI สร้างระบบจัดเก็บวัตถุแบบเข้ากันได้กับ S3 ด้วย Rust ประมาณ 350,000 บรรทัด","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack ใช้ Rust 350,000 บรรทัดมาทบทวนการประเมิน AI Agent: เริ่มจากหลักฐาน - ข่าว AI Aioga","description":"บล็อกนี้ที่เผยแพร่โดย Tessl เป็นการทบทวนการทดลองของผู้เขียนที่ใช้ AI สร้างระบบจัดเก็บวัตถุแบบเข้ากันได้กับ S3 ด้วย Rust ประมาณ 350,000 บรรทัด","url":"https://www.aioga.com/th/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:09:06.264Z"},"pl":{"title":"Justin Cormack używa 350 tysięcy linii Rust do przeglądu AI Agent: zaczynając od dowodów","summary":"Ten blog opublikowany przez Tessl podsumowuje eksperyment autora polegający na zbudowaniu przy użyciu AI około 350 000 linii Rust w celu stworzenia obiektowego magazynu zgodnego z S3.","category":"行业动态","source":"Tessl：产品与工程博客","aggregationSource":"Tessl：产品与工程博客","pageTitle":"Justin Cormack używa 350 tysięcy linii Rust do przeglądu AI Agent: zaczynając od dowodów - Aioga Wiadomości AI","description":"Ten blog opublikowany przez Tessl podsumowuje eksperyment autora polegający na zbudowaniu przy użyciu AI około 350 000 linii Rust w celu stworzenia obiektowego magazynu zgodnego z...","url":"https://www.aioga.com/pl/news/cmu707f5a0lferowk7ytu9d3h/","contentTranslated":true,"sourceHash":"45457cf2302c1697","translatedAt":"2026-09-18T14:10:03.183Z"}},"evidenceTier":"verified-news","reviewStatus":"editorial-selected","indexable":true,"editorialCover":""}}