{"id":66649,"date":"2025-08-13T14:15:15","date_gmt":"2025-08-13T14:15:15","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/66649\/"},"modified":"2025-08-13T14:15:15","modified_gmt":"2025-08-13T14:15:15","slug":"meet-jules-sharpest-critic-and-most-valuable-ally","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/66649\/","title":{"rendered":"Meet Jules\u2019 sharpest critic and most valuable ally"},"content":{"rendered":"<p data-block-key=\"otdj8\"><a href=\"https:\/\/developers.googleblog.com\/en\/search\/?query=AI+coding+agent\" rel=\"nofollow noopener\" target=\"_blank\">AI coding agents<\/a> like <a href=\"https:\/\/jules.google\" rel=\"nofollow noopener\" target=\"_blank\">Jules<\/a> can build, refactor, and scaffold code while you focus on other things. That convenience and ease of use is thrilling, but can sometimes also mean subtle bugs, missed edge cases, and untested assumptions. That\u2019s why we\u2019re introducing a new capability in Jules that reviews and critiques code before you see it.<\/p>\n<p>Critic augmented generation<\/p>\n<p data-block-key=\"355ic\">The role is simple but powerful: while <a href=\"https:\/\/blog.google\/technology\/google-labs\/jules\/\" rel=\"nofollow noopener\" target=\"_blank\">Jules<\/a> builds, the critic functionality challenges. Every proposed change undergoes adversarial review before completion. Think of the critic feature as Jules\u2019 peer reviewer, deeply familiar with code quality principles and unafraid to point out when you\u2019ve reinvented a risky wheel.<\/p>\n<p data-block-key=\"epldt\">The critic is integrated directly into the code generation process, called critic-augmented generation. For this first version, it\u2019s a one-shot process that evaluates the final output in a single pass. Future milestones will aim to make it a true multi-step agent, capable of using tool calls or triggering after subtasks or before planning, but for now it reviews the complete generation at once. This will draw on multi-step research, where a critic validates outputs using external tools (like a code interpreter or search engine) and learns from those outcomes.<\/p>\n<p>What the critic does<\/p>\n<p data-block-key=\"e16um\">The critic doesn\u2019t fix code, it flags it, then hands it back to Jules to improve. For example:<\/p>\n<p>A patch that passes all tests but introduces a subtle logic error: \u201cOutput matches expected cases but fails on unseen inputs.\u201dA change that compiles but silently drops a required field: \u201cfunction signature updated without handling all parameters.\u201dCode that works but uses an inefficient approach: \u201cAlgorithm produces correct result but with unnecessary O(n\u00b2) complexity.\u201d<\/p>\n<p data-block-key=\"9qp9b\">Because this happens after patch generation and before submission (possibly multiple times if still flagged), Jules can replan in real time. Our goal is fewer slop PRs, better test coverage, stronger security.<\/p>\n<p>Not just another linter or test<\/p>\n<p data-block-key=\"7ndme\">Linters follow shallow, fixed rules; tests validate specific assertions. The critic capability understands the intent and context behind code. It\u2019s closer to a reference-free evaluation method, judging correctness and robustness, without needing a gold-standard implementation.<\/p>\n<p data-block-key=\"8d477\">It also takes cues from research on LLM-as-a-judge, where a model evaluates another model\u2019s work for quality and correctness. This kind of automated judging is especially useful when integrated tightly with generation, turning review into a live feedback loop.<\/p>\n<p>Here\u2019s how it works:<\/p>\n<p data-block-key=\"38jhj\">1: You prompt Jules to start a task.<\/p>\n<p data-block-key=\"bj0kd\">2: The critic feature reviews the candidate patch and its description in a single pass, making an overall judgement.<\/p>\n<p data-block-key=\"990kn\">3: Jules responds to feedback before finishing, after which the critic can review the updated patch again and continue flagging anything it deems necessary until no further issues remain.<\/p>\n<p data-block-key=\"4j7vc\">4: You receive code that\u2019s already been internally reviewed.<\/p>\n<p data-block-key=\"bl33p\">This draws from actor-critic reinforcement learning (RL), where an \u201cactor\u201d generates and a \u201ccritic\u201d evaluates. In RL, this loop updates the actor and critic based on a learning signal. In our LLM-as-critic setup, the pattern is similar: propose, then evaluate. However, instead of updating learning parameters, the feedback influences the current state and next steps. This same principle also underpins research on LLM-as-a-judge, where the critic\u2019s evaluation guides quality without retraining.<\/p>\n<p>Why it matters<\/p>\n<p data-block-key=\"29c6d\">In a world of rapid iteration, the critic moves the review to earlier in the process and into the act of generation itself. This means the code you review has already been interrogated, refined, and stress-tested. Of course, you should always <a href=\"https:\/\/g.co\/legal\/generative-code\" rel=\"nofollow\">review<\/a> the generated code carefully before use.<\/p>\n<p data-block-key=\"b74la\">Great developers don\u2019t just write code, they question it. And now, so does <a href=\"http:\/\/jules.google\" rel=\"nofollow noopener\" target=\"_blank\">Jules<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"AI coding agents like Jules can build, refactor, and scaffold code while you focus on other things. That&hellip;\n","protected":false},"author":2,"featured_media":66650,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[62,276,277,49,48,61],"class_list":["post-66649","post","type-post","status-publish","format-standard","has-post-thumbnail","category-artificial-intelligence","tag-ai","tag-artificial-intelligence","tag-artificialintelligence","tag-ca","tag-canada","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/66649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/comments?post=66649"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/66649\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/66650"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=66649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=66649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=66649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}