{"id":8493,"date":"2025-11-07T18:33:28","date_gmt":"2025-11-07T18:33:28","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=8493"},"modified":"2025-11-07T18:33:28","modified_gmt":"2025-11-07T18:33:28","slug":"saying-person-simulation-in-adk-analysis","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=8493","title":{"rendered":"Saying Person Simulation in ADK Analysis"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><img decoding=\"async\" class=\"banner-image\" src=\"https:\/\/storage.googleapis.com\/gweb-developer-goog-blog-assets\/images\/Ai-2-banner_1.original.png\" alt=\"Ai-2-banner (1)\"\/>  <\/p>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"vvb6h\">Brokers are inherently conversational. Customers could must ask follow-up questions, refine earlier requests, and supply extra data as wanted. Nevertheless, manually scripting assessments on your agent for such multi-turn conversations is a brittle and time-consuming course of. You write dozens of user_input and expected_output pairs, just for them to interrupt with the slightest change in your agent&#8217;s habits, turning check upkeep right into a irritating chore.<\/p>\n<p data-block-key=\"8d8b5\">In the present day, we&#8217;re excited to announce a brand new characteristic within the Agent Growth Equipment (ADK) that helps handle this drawback: <b>Person Simulation.<\/b> This new characteristic lets you transfer away from testing a inflexible implementation path and as an alternative consider your agent\u2019s potential to really obtain a consumer\u2019s intent.<\/p>\n<p data-block-key=\"crpb3\"><b>What&#8217;s the Person Simulator?<\/b><\/p>\n<p data-block-key=\"bcs6r\">At its core, the Person Simulator is an LLM-powered consumer immediate generator. This primary launch is built-in immediately into the ADK analysis framework, permitting you to run it regionally. You present it with a high-level aim, and it dynamically generates the consumer facet of a dialog to pursue that aim. It isn&#8217;t a separate service; it is a software inside the ADK that you simply run regionally, permitting for a quick, iterative &#8220;interior loop&#8221; workflow.<\/p>\n<p data-block-key=\"90r71\"><b>How It Works<\/b><\/p>\n<ol>\n<li data-block-key=\"4q8f8\"><b>Defining a Dialog Situation<\/b><\/li>\n<\/ol>\n<p data-block-key=\"dckei\">As an alternative of a inflexible turn-by-turn script, you present a ConversationScenario. This can be a easy JSON object with two key components:<\/p>\n<ol>\n<li data-block-key=\"9h43a\">starting_prompt: A hard and fast, preliminary immediate to start the dialog.<\/li>\n<li data-block-key=\"d6mtf\">conversation_plan: A pure language guideline that tells the simulator its goal.<\/li>\n<\/ol>\n<p data-block-key=\"efj63\">Right here\u2019s an instance analysis set for an <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/google\/adk-python\/tree\/main\/contributing\/samples\/hello_world\">agent with instruments to roll cube and test for prime numbers<\/a>:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-json\">{&#13;\n  \"eventualities\": [&#13;\n    {&#13;\n      \"starting_prompt\": \"What can you do for me?\",&#13;\n      \"conversation_plan\": \"Ask the agent to roll a 20-sided die. After you get the result, ask the agent to check if it is prime.\"&#13;\n    },&#13;\n    {&#13;\n      \"starting_prompt\": \"Hi, I'm running a tabletop RPG in which prime numbers are bad!\",&#13;\n      \"conversation_plan\": \"Say that you don't care about the value; you just want the agent to tell you if a roll is good or bad. Once the agent agrees, ask it to roll a d6. Finally, ask the agent to do the same with 2 d20.\"&#13;\n    }&#13;\n  ]&#13;\n}<\/code><\/pre>\n<p>\n        JSON\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"lk4pj\">If you run the analysis, the simulator will deal with the back-and-forth dialog dynamically till the conversation_plan is fulfilled. Right here is an instance of what that generated dialog for the primary state of affairs proven above may appear to be (reformatted for readability):<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-plaintext\">[USER]: What are you able to do for me?&#13;\n[AGENT]: I can roll cube and test if numbers are prime. How can I assist?&#13;\n[USER]: Please roll a 20-sided die for me.&#13;\n[AGENT]: After all. The result's 17.&#13;\n[USER]: Thanks. Are you able to test if 17 is a major quantity?&#13;\n[AGENT]: Sure, 17 is a major quantity.&#13;\n[USER]: &#13;\n--------------------&#13;\nEVALUATION RESULT: COMPLETED<\/code><\/pre>\n<p>\n        Plain textual content\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"lk4pj\">Discover how the conversation_plan defines a sequence of targets. It would not specify the consumer\u2019s actual prompts or the agent&#8217;s actual anticipated responses. It solely cares concerning the consequence: getting a cube roll, then getting a major quantity test on that outcome. This makes the check resilient to minor modifications in your agent&#8217;s conversational fashion or inside logic.<\/p>\n<p data-block-key=\"20g8k\"><b>2. Configuring the Simulation<\/b><\/p>\n<p data-block-key=\"83mhd\">You will have direct management over the simulator&#8217;s habits by offering an EvalConfig file. This lets you fine-tune the simulation on your particular testing wants.<\/p>\n<p data-block-key=\"67mmr\">Listed here are the important thing parameters you possibly can configure:<\/p>\n<ul>\n<li data-block-key=\"aoeoa\"><b>Mannequin<\/b>: Specify which mannequin backs the consumer simulator (e.g., gemini-2.5-flash).<\/li>\n<li data-block-key=\"ba164\"><b>Mannequin Configuration<\/b>: Specify choices for the mannequin, comparable to pondering habits.<\/li>\n<li data-block-key=\"c1pkj\"><b>Flip Finances<\/b>: Set the utmost variety of user-agent interactions (max_allowed_invocations) earlier than the dialog is terminated, stopping infinite loops.<\/li>\n<\/ul>\n<p data-block-key=\"ba3bt\"><b>Customized Habits<\/b>: Along with the above parameters, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/google\/adk-python\/blob\/dea7668d1a0c457260b5a0d763a48346bcdebe97\/src\/google\/adk\/evaluation\/llm_backed_user_simulator.py#L42C1-L42C34\">you possibly can override the default system immediate<\/a> to alter the simulator&#8217;s persona. This lets you check how your agent handles various kinds of customers, comparable to a confused consumer or a extra demanding one. We plan so as to add persona configuration help through the EvalConfig quickly.<\/p>\n<p data-block-key=\"3e8m0\">Right here is an instance of a configuration file with an analysis criterion and a configuration for the consumer simulator:<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-json\">{&#13;\n  \"standards\": {&#13;\n   \"hallucinations_v1\": {&#13;\n     \"threshold\": 0.5,&#13;\n     \"evaluate_intermediate_nl_responses\": true&#13;\n   }&#13;\n },&#13;\n  \"user_simulator_config\": {&#13;\n    \"mannequin\": \"gemini-2.5-flash\",&#13;\n    \"model_configuration\": {&#13;\n      \"thinking_config\": {&#13;\n        \"include_thoughts\": true,&#13;\n        \"thinking_budget\": 10240&#13;\n      }&#13;\n    },&#13;\n    \"max_allowed_invocations\": 20&#13;\n  }&#13;\n}<\/code><\/pre>\n<p>\n        JSON\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"j4qft\"><b>3. Operating the Analysis<\/b><\/p>\n<p data-block-key=\"cpmce\">Along with your eventualities and configuration in place, you possibly can run the analysis to get an in depth breakdown of the interplay.<\/p>\n<\/div>\n<div class=\"inner-block-content code-block line-numbers\">\n<pre><code class=\"language-plaintext\">*********************************************************************&#13;\nEval Run Abstract&#13;\neval_set_with_scenarios:&#13;\n  Checks handed: 2&#13;\n  Checks failed: 0&#13;\n********************************************************************&#13;\nEval Set Id: eval_set_with_scenarios&#13;\nEval Id: 83903cba&#13;\nGeneral Eval Standing: PASSED&#13;\n---------------------------------------------------------------------&#13;\nMetric: hallucinations_v1, Standing: PASSED, Rating: 1.0, Threshold: 0.5&#13;\n---------------------------------------------------------------------&#13;\nInvocation Particulars:&#13;\n+----+----------------------+------------------------------------------+-------------------+&#13;\n|    | immediate               | actual_response                          | hallucinations_v1 |&#13;\n+====+======================+==========================================+===================+&#13;\n|  0 | What are you able to do for  | I can roll cube of various sizes and   | Standing: PASSED,   |&#13;\n|    | me?                  | test if numbers are prime. For instance, | Rating: 1.0        |&#13;\n|    |                      | I can roll an 8-sided die and let you know   |                   |&#13;\n|    |                      | the outcome. Additionally, I can test if a       |                   |&#13;\n|    |                      | quantity (or a listing of numbers) is prime.  |                   |&#13;\n+----+----------------------+------------------------------------------+-------------------+&#13;\n|  1 | Please roll a        | I rolled a 20-sided die, and the outcome  | Standing: PASSED,   |&#13;\n|    | 20-sided die for me. | is 16.                                   | Rating: 1.0        |&#13;\n+----+----------------------+------------------------------------------+-------------------+&#13;\n|  2 | Are you able to test if 16  | No, 16 shouldn't be a major quantity.            | Standing: PASSED,   |&#13;\n|    | is a major quantity?   |                                          | Rating: 1.0        |&#13;\n+----+----------------------+------------------------------------------+-------------------+&#13;\n&#13;\n********************************************************************&#13;\nEval Set Id: eval_set_with_scenarios&#13;\nEval Id: b7944d3f&#13;\nGeneral Eval Standing: PASSED&#13;\n---------------------------------------------------------------------&#13;\nMetric: hallucinations_v1, Standing: PASSED, Rating: 0.875, Threshold: 0.5&#13;\n---------------------------------------------------------------------&#13;\nInvocation Particulars:&#13;\n+----+---------------------------+------------------------------------------+-------------------+&#13;\n|    | immediate                    | actual_response                          | hallucinations_v1 |&#13;\n+====+===========================+==========================================+===================+&#13;\n|  0 | Hello, I am operating a         | Understood! I can roll cube and test if | Standing: PASSED,   |&#13;\n|    | tabletop RPG by which     | the outcomes are prime numbers for you.   | Rating: 1.0        |&#13;\n|    | prime numbers are unhealthy!    | Let me know while you want me to roll a   |                   |&#13;\n|    |                           | die and test for primes.                |                   |&#13;\n+----+---------------------------+------------------------------------------+-------------------+&#13;\n|  1 | I do not actually care about | Alright, I can roll cube for you and     | Standing: PASSED,   |&#13;\n|    | the precise quantity; I simply | let you know whether or not the result's a major   | Rating: 1.0        |&#13;\n|    | want you to inform me if    | quantity (unhealthy) or not (good). Simply inform me |                   |&#13;\n|    | the roll is sweet or unhealthy.  | what number of sides the die ought to have.      |                   |&#13;\n+----+---------------------------+------------------------------------------+-------------------+&#13;\n|  2 | Nice, please roll a d6.  | The result's 6, which isn't a major    | Standing: PASSED,   |&#13;\n|    |                           | quantity. That is a great roll!              | Rating: 1.0        |&#13;\n+----+---------------------------+------------------------------------------+-------------------+&#13;\n|  3 | Okay, now please roll 2   | Okay, so 19 is prime (unhealthy) and 6 shouldn't be  | Standing: PASSED,   |&#13;\n|    | d20.                      | prime (good). One good, one unhealthy.         | Rating: 1.0        |&#13;\n+----+---------------------------+------------------------------------------+-------------------+<\/code><\/pre>\n<p>\n        Plain textual content\n    <\/p>\n<\/div>\n<div class=\"inner-block-content rich-content\">\n<p data-block-key=\"aivjv\"><b>What This Means for Builders<\/b><\/p>\n<p data-block-key=\"9ge76\">This preliminary launch of Person Simulation is concentrated on fixing the instant toil of making and sustaining multi-turn assessments. It helps you:<\/p>\n<ul>\n<li data-block-key=\"7dhui\"><b>Dramatically cut back check creation time<\/b>: Cease writing advanced, turn-by-turn scripts and as an alternative outline easy, high-level targets.<\/li>\n<li data-block-key=\"duilc\"><b>Construct extra resilient assessments<\/b>: By specializing in intent over a selected conversational path, your assessments will not break each time you refactor a immediate.<\/li>\n<li data-block-key=\"bcfbo\"><b>Create a dependable regression suite<\/b>: Rapidly generate a variety of check instances to construct a security internet that catches regressions earlier than they attain manufacturing.<\/li>\n<\/ul>\n<p data-block-key=\"jq00\">We consider that strong, goal-oriented simulation is a basic functionality for constructing dependable and reliable AI brokers. This characteristic is the foundational first step in our broader imaginative and prescient to ship a complete set of simulation capabilities for your complete agent lifecycle. On behalf of the core crew who introduced this characteristic to life \u2014 <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/ankursharma01\/\">Ankur Sharma<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/keyurpjoshi\/\">Keyur Joshi<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/pierre-thodoroff\/\">Pierre Thodoroff<\/a>, <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/sebastian-caldas-b13764263\/\">Sebastian Caldas<\/a>, and <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/in\/xiaowei-li-b37a5a18\/\">Xiaowei Li<\/a> \u2014 we\u2019re excited to see what you construct and welcome your suggestions as you begin utilizing this characteristic.<\/p>\n<p data-block-key=\"fgdsg\"><b>Able to get began?<\/b> Dive into the <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/google.github.io\/adk-docs\/evaluate\/user-sim\/\">ADK documentation<\/a> and <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/google\/adk-samples\/blob\/main\/python\/notebooks\/evaluation\/user_simulation_in_adk_evals.ipynb\">Colab tutorial<\/a> and begin exploring the Person Simulation characteristic right this moment.<\/p>\n<\/div><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Brokers are inherently conversational. Customers could must ask follow-up questions, refine earlier requests, and supply extra data as wanted. Nevertheless, manually scripting assessments on your agent for such multi-turn conversations is a brittle and time-consuming course of. You write dozens of user_input and expected_output pairs, just for them to interrupt with the slightest change in [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":8495,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[5425,713,608,3287,207],"class_list":["post-8493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-adk","tag-announcing","tag-evaluation","tag-simulation","tag-user"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/8493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8493"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/8493\/revisions"}],"predecessor-version":[{"id":8494,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/8493\/revisions\/8494"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/8495"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-08-06 06:07:30 UTC -->