[{"data":1,"prerenderedAt":765},["ShallowReactive",2],{"blog-post-hermes-agent-keeps-stopping":3,"related-posts-hermes-agent-keeps-stopping":742},{"id":4,"title":5,"author":6,"body":11,"category":719,"date":720,"description":721,"extension":722,"featured":723,"hideToc":723,"image":724,"imageAlt":725,"imageHeight":725,"imageWidth":725,"itemList":725,"lang":725,"meta":726,"navigation":727,"noindex":723,"path":728,"readingTime":729,"redirected":723,"relatedSlugs":725,"seo":730,"seoTitle":731,"stem":732,"subtitle":725,"tags":733,"updatedDate":720,"__hash__":741},"blog/blog/hermes-agent-keeps-stopping.md","Hermes Agent Keeps Stopping? How to Make It Finish the Job",{"name":7,"role":8,"avatar":9,"bio":10},"Shabnam Katoch","Growth Head","/img/avatars/shabnam-profile.jpeg","Shabnam leads growth at BetterClaw and has spent the past three years building organic distribution for AI-native products. She writes about no-code agent builders, content strategy, and what it actually takes to grow without an ads budget.",{"type":12,"value":13,"toc":706},"minimark",[14,18,33,36,41,48,51,129,132,136,142,162,165,175,190,193,249,256,266,270,276,279,282,304,307,310,316,323,326,340,344,350,353,356,362,365,368,383,387,390,396,399,406,434,440,444,447,450,464,467,506,509,513,519,564,568,571,582,586,592,597,608,616,620,623,629,637,641,651,659,676,692,702],[15,16,17],"p",{},"Hermes answers once and waits, pauses at 20 turns, or says the goal is blocked. Here's why each happens and how to keep it working until the task is done.",[19,20,22],"callout",{"type":21},"quick-fix",[15,23,24,25,29,30,32],{},"Hermes is built to answer a message and then wait for you. That's normal chat behaviour, not a bug. For a task that should keep going on its own, use ",[26,27,28],"code",{},"/goal",": a judge model checks every reply and tells Hermes to continue until the goal is done, blocked, or out of turns (20 by default). If you already use ",[26,31,28],{}," and it still stops, the last line Hermes printed tells you why.",[15,34,35],{},"Checked against Hermes v0.22.5 on 27 October 2026.",[37,38,40],"h2",{"id":39},"why-hermes-stops-read-the-last-line","Why Hermes stops: read the last line",[15,42,43],{},[44,45],"img",{"alt":46,"src":47},"Four ways Hermes stops and what each means: normal chat wait, turn budget hit, goal judged unachievable, or judge model broken","/img/blog/hermes-agent-keeps-stopping-stop-reasons.jpg",[15,49,50],{},"Every stop leaves a message. Match yours:",[52,53,54,70],"table",{},[55,56,57],"thead",{},[58,59,60,64,67],"tr",{},[61,62,63],"th",{},"What you see",[61,65,66],{},"What it means",[61,68,69],{},"Fix",[71,72,73,85,96,107,118],"tbody",{},[58,74,75,79,82],{},[76,77,78],"td",{},"It answers once, then waits",[76,80,81],{},"Normal chat. Each message is one turn",[76,83,84],{},"Fix 1: use /goal",[58,86,87,90,93],{},[76,88,89],{},"\"⏸ Goal paused, 20/20 turns used\"",[76,91,92],{},"The goal hit its turn budget",[76,94,95],{},"Fix 4: raise goals.max_turns or /goal resume",[58,97,98,101,104],{},[76,99,100],{},"\"🚫 Goal judged unachievable, paused\"",[76,102,103],{},"The judge thinks the task can't be done as asked",[76,105,106],{},"Fix 3: re-scope the goal",[58,108,109,112,115],{},[76,110,111],{},"\"Goal paused, the judge model isn't returning the required JSON verdict\"",[76,113,114],{},"Your judge model is broken, not your task",[76,116,117],{},"Fix 5: route the judge to another model",[58,119,120,123,126],{},[76,121,122],{},"It just stops or times out mid-task",[76,124,125],{},"Provider errors, an idle timeout or the gateway",[76,127,128],{},"Fix 6",[15,130,131],{},"That fourth row is the one most guides miss. We'll come back to it, because we triggered it ourselves.",[37,133,135],{"id":134},"fix-1-use-goal-for-tasks-that-should-keep-going","Fix 1: use /goal for tasks that should keep going",[15,137,138],{},[44,139],{"alt":140,"src":141},"How /goal keeps Hermes working: a judge model reads each reply and returns done, continue, blocked or wait — Hermes only stops when told to","/img/blog/hermes-agent-keeps-stopping-goal-loop.jpg",[15,143,144,146,147,150,151,150,154,157,158,161],{},[26,145,28],{}," gives Hermes a standing objective. After every turn, a lightweight judge model reads Hermes's last reply and returns one of four verdicts: ",[26,148,149],{},"done",", ",[26,152,153],{},"continue",[26,155,156],{},"blocked"," or ",[26,159,160],{},"wait",".",[15,163,164],{},"On \"continue\", Hermes feeds itself a continuation prompt in the same session and takes the next step. You don't type \"keep going\" at all.",[166,167,172],"pre",{"className":168,"code":170,"language":171},[169],"language-text","/goal Update README sections Install, Config and Troubleshooting, then list each change\n","text",[26,173,170],{"__ignoreMap":174},"",[15,176,177,178,181,182,185,186,189],{},"You'll see ",[26,179,180],{},"⊙ Goal set (20-turn budget)",", then a line like ",[26,183,184],{},"↻ Continuing toward goal (1/20): \u003Cthe judge's reason>"," after each step, and finally ",[26,187,188],{},"✓ Goal achieved"," when the judge agrees it's finished.",[15,191,192],{},"The controls you'll use most:",[166,194,198],{"className":195,"code":196,"language":197,"meta":174,"style":174},"language-bash shiki shiki-themes github-light","/goal status   # current goal, status and turns used\n/goal pause    # stop the loop, keep the goal\n/goal resume   # restart the loop (also resets the turn counter)\n/goal clear    # drop the goal\n","bash",[26,199,200,216,227,238],{"__ignoreMap":174},[201,202,205,208,212],"span",{"class":203,"line":204},"line",1,[201,206,28],{"class":207},"s7eDp",[201,209,211],{"class":210},"sYBdl"," status",[201,213,215],{"class":214},"sAwPA","   # current goal, status and turns used\n",[201,217,219,221,224],{"class":203,"line":218},2,[201,220,28],{"class":207},[201,222,223],{"class":210}," pause",[201,225,226],{"class":214},"    # stop the loop, keep the goal\n",[201,228,230,232,235],{"class":203,"line":229},3,[201,231,28],{"class":207},[201,233,234],{"class":210}," resume",[201,236,237],{"class":214},"   # restart the loop (also resets the turn counter)\n",[201,239,241,243,246],{"class":203,"line":240},4,[201,242,28],{"class":207},[201,244,245],{"class":210}," clear",[201,247,248],{"class":214},"    # drop the goal\n",[15,250,251,252,255],{},"Two details worth knowing. Any message you send jumps the queue, so you can steer mid-goal without pausing it. And goal state is saved with the session, so ",[26,253,254],{},"/resume"," tomorrow picks the goal up exactly where it stopped.",[15,257,258,259],{},"If you need agents that keep working when your laptop is closed, BetterClaw agents run on our servers, 24/7, so a sleeping laptop or a restarted terminal doesn't end the job. ",[260,261,265],"a",{"href":262,"rel":263},"https://betterclaw.io",[264],"nofollow","Start your first agent.",[37,267,269],{"id":268},"fix-2-write-a-goal-hermes-can-finish","Fix 2: write a goal Hermes can finish",[15,271,272],{},[44,273],{"alt":274,"src":275},"Writing a goal Hermes can finish: vague vs. finishable — include an end state, evidence and a completion contract for bigger tasks","/img/blog/hermes-agent-keeps-stopping-goal-writing.jpg",[15,277,278],{},"The judge only marks a goal done when the reply clearly confirms it. A vague goal gives it nothing to check, so it keeps saying \"continue\" until the budget runs out.",[15,280,281],{},"Compare these two:",[283,284,285,296],"ul",{},[286,287,288,292,293],"li",{},[289,290,291],"strong",{},"Vague",": ",[26,294,295],{},"/goal improve the docs",[286,297,298,292,301],{},[289,299,300],{},"Finishable",[26,302,303],{},"/goal Update README sections Install, Config and Troubleshooting, then list each change in your final message",[15,305,306],{},"The second one has an end state and evidence. The judge can see the three section names and the list.",[15,308,309],{},"For anything bigger, write a completion contract. Hermes reads these field names on separate lines:",[166,311,314],{"className":312,"code":313,"language":171},[169],"/goal Migrate auth to JWT\nverify: pytest tests/auth passes\nconstraints: keep the /login response shape unchanged\nboundaries: only touch services/auth and its tests\nstop when: a database schema change is needed\n",[26,315,313],{"__ignoreMap":174},[15,317,318,319,322],{},"Don't want to write it yourself? ",[26,320,321],{},"/goal draft \u003Cone-line objective>"," asks a model to expand it into a full contract, shows it to you, and starts the goal.",[15,324,325],{},"Two more tools for tightening a running goal:",[283,327,328,334],{},[286,329,330,333],{},[26,331,332],{},"/subgoal \u003Ctext>"," adds an extra criterion mid-loop without restarting it.",[286,335,336,339],{},[26,337,338],{},"/goal gate add \u003Ccommand>"," adds a quality gate: a shell command, like your test suite, that must pass before the judge is even asked. A red gate is proof the job isn't done, so Hermes keeps working against the real failure output.",[37,341,343],{"id":342},"fix-3-goal-blocked-and-how-to-get-past-it","Fix 3: \"goal blocked\" and how to get past it",[15,345,346],{},[44,347],{"alt":348,"src":349},"When the goal is blocked: Hermes shows the reason and pauses instead of burning turns — fix what's missing or override with /goal resume","/img/blog/hermes-agent-keeps-stopping-goal-blocked.jpg",[15,351,352],{},"\"Blocked\" means the judge decided the goal can't be met as written: it's impossible, out of scope, or needs something from you. Hermes pauses instead of burning turns.",[15,354,355],{},"We pointed Hermes's goal loop at a test judge that always answered \"blocked\". This is exactly what came back:",[166,357,360],{"className":358,"code":359,"language":171},[169],"🚫 Goal judged unachievable, paused: The task needs a GitHub token that is\nnot available in this environment. Re-scope with /goal set, or override with\n/goal resume.\n",[26,361,359],{"__ignoreMap":174},[15,363,364],{},"The reason after \"paused\" is the useful part. In practice, it's usually missing access: a token, a login, a file outside the folder Hermes can see.",[15,366,367],{},"You have two ways forward:",[283,369,370,376],{},[286,371,372,373,161],{},"Give Hermes what it's missing, or change the ask, then set it again with ",[26,374,375],{},"/goal \u003Cnew text>",[286,377,378,379,382],{},"If you think the judge is wrong, ",[26,380,381],{},"/goal resume"," overrides it.",[37,384,386],{"id":385},"fix-4-it-pauses-at-20-turns","Fix 4: it pauses at 20 turns",[15,388,389],{},"The default budget is 20 continuation turns. When it's used up, you see:",[166,391,394],{"className":392,"code":393,"language":171},[169],"⏸ Goal paused, 20/20 turns used. Use /goal resume to keep going, or /goal clear to stop.\n",[26,395,393],{"__ignoreMap":174},[15,397,398],{},"We set the budget to 3 in our test, and Hermes paused after exactly three \"continue\" verdicts with \"3/3 turns used\". So the counter does what it says.",[15,400,401,402,405],{},"Raise it in ",[26,403,404],{},"~/.hermes/config.yaml",":",[166,407,411],{"className":408,"code":409,"language":410,"meta":174,"style":174},"language-yaml shiki shiki-themes github-light","goals:\n  max_turns: 40\n","yaml",[26,412,413,423],{"__ignoreMap":174},[201,414,415,419],{"class":203,"line":204},[201,416,418],{"class":417},"shJU0","goals",[201,420,422],{"class":421},"sgsFI",":\n",[201,424,425,428,430],{"class":203,"line":218},[201,426,427],{"class":417},"  max_turns",[201,429,292],{"class":421},[201,431,433],{"class":432},"sYu0t","40\n",[15,435,436,437,439],{},"The budget is your only brake on a judge that never says done. Each turn costs a full model call, so raise it in steps rather than setting 500. Many people keep 20 and type ",[26,438,381],{},", which resets the counter to zero, when a long job is clearly making progress.",[37,441,443],{"id":442},"fix-5-your-judge-model-is-broken-the-stop-most-guides-miss","Fix 5: your judge model is broken (the stop most guides miss)",[15,445,446],{},"Hermes's docs say judge errors \"fail open\": if the judge has a network blip, Hermes treats it as \"continue\". That's true, but only up to a point, and the code has two limits.",[15,448,449],{},"We tested both with a judge that misbehaved on purpose:",[283,451,452,458],{},[286,453,454,457],{},[289,455,456],{},"A judge that replied in plain English instead of JSON",": Hermes continued twice, then paused on the third turn with \"the judge model (3 turns) isn't returning the required JSON verdict.\"",[286,459,460,463],{},[289,461,462],{},"A judge we switched off entirely",": Hermes continued four times, then paused on the fifth with \"judge API returned errors (5 turns). Check the goal_judge provider/key.\"",[15,465,466],{},"So if your goal keeps pausing with those lines, the task is fine. The judge is the problem. By default it uses your main model; small local models often can't produce strict JSON. Route it to a cheap, reliable model instead:",[166,468,470],{"className":408,"code":469,"language":410,"meta":174,"style":174},"auxiliary:\n  goal_judge:\n    provider: openrouter\n    model: \u003Ca fast, cheap model>\n",[26,471,472,479,486,496],{"__ignoreMap":174},[201,473,474,477],{"class":203,"line":204},[201,475,476],{"class":417},"auxiliary",[201,478,422],{"class":421},[201,480,481,484],{"class":203,"line":218},[201,482,483],{"class":417},"  goal_judge",[201,485,422],{"class":421},[201,487,488,491,493],{"class":203,"line":229},[201,489,490],{"class":417},"    provider",[201,492,292],{"class":421},[201,494,495],{"class":210},"openrouter\n",[201,497,498,501,503],{"class":203,"line":240},[201,499,500],{"class":417},"    model",[201,502,292],{"class":421},[201,504,505],{"class":210},"\u003Ca fast, cheap model>\n",[15,507,508],{},"The judge call is small (about 200 output tokens) and runs once per turn, so this barely changes your bill.",[37,510,512],{"id":511},"fix-6-it-stops-mid-task-or-times-out","Fix 6: it stops mid-task or times out",[15,514,515,516,518],{},"If Hermes stops in the middle of a turn, not between turns, ",[26,517,28],{}," isn't involved. The usual causes:",[283,520,521,535,545,554],{},[286,522,523,526,527,530,531,534],{},[289,524,525],{},"The provider failed."," Hermes retries an API call 3 times (",[26,528,529],{},"agent.api_max_retries","), then waits and retries again up to 5 more cycles for outages like 5xx and 529 errors (",[26,532,533],{},"agent.auto_recovery_cycles","). After that, the turn ends.",[286,536,537,540,541,544],{},[289,538,539],{},"The gateway idle timeout."," On Telegram, Discord and other messaging platforms, ",[26,542,543],{},"agent.gateway_timeout"," cancels a run after 1,800 seconds of inactivity. It counts silence, not total time, so a busy agent isn't cut off.",[286,546,547,550,551,161],{},[289,548,549],{},"The gateway restarted."," A restart ends the current run. Check ",[26,552,553],{},"hermes gateway status",[286,555,556,559,560,563],{},[289,557,558],{},"You capped iterations."," ",[26,561,562],{},"agent.max_turns"," (tool-calling steps inside one turn) is unlimited by default in current Hermes. If an old config sets it to a number, a long turn can end early. Remove it or raise it.",[37,565,567],{"id":566},"when-its-waiting-on-something","When it's waiting on something",[15,569,570],{},"Some goals depend on a slow process, like CI or a build. The judge can see Hermes's background processes and return \"wait\", which parks the loop without using turns until the process finishes. A wait on a process is capped at 30 minutes.",[15,572,573,574,577,578,581],{},"You can do it by hand too: ",[26,575,576],{},"/goal wait \u003Cpid> [reason]"," parks the loop, and ",[26,579,580],{},"/goal unwait"," releases it.",[37,583,585],{"id":584},"when-to-use-cron-instead-of-goal","When to use cron instead of /goal",[15,587,588],{},[44,589],{"alt":590,"src":591},"Cron vs /goal: cron repeats one job on a schedule, /goal finishes one task in one session — pick the right tool for the work","/img/blog/hermes-agent-keeps-stopping-cron-vs-goal.jpg",[15,593,594,596],{},[26,595,28],{}," is for finishing one job. Cron is for doing a job again and again.",[283,598,599,602],{},[286,600,601],{},"\"Every morning, summarise my inbox\" belongs in a cron job. Each run starts a fresh session.",[286,603,604,605,607],{},"\"Fix every failing test and confirm the suite passes\" belongs in ",[26,606,28],{},". It keeps working in one session until it's done.",[15,609,610,611,615],{},"If your scheduled jobs are the thing that keeps stopping, our ",[260,612,614],{"href":613},"/blog/hermes-cron-not-working","guide to Hermes cron jobs not working"," covers all nine causes.",[37,617,619],{"id":618},"the-takeaway","The takeaway",[15,621,622],{},"Hermes stopping is almost never random. It answered once because that's what chat does, it paused because a budget or a judge told it to, or a provider or timeout ended the turn.",[15,624,625,626,628],{},"Read the last line, match it to a fix, and give your goals a clear finish line. If you do, ",[26,627,28],{}," will carry most jobs to the end on its own.",[15,630,631],{},[289,632,633,634],{},"Always-on agents, 500+ apps and your own model key. Basic is $19 a month for one agent, Pro is $49 a month for five, and every plan has a 7-day free trial. ",[260,635,265],{"href":262,"rel":636},[264],[37,638,640],{"id":639},"frequently-asked-questions","Frequently Asked Questions",[15,642,643,646,647,650],{},[289,644,645],{},"Why does Hermes stop after every reply?"," That's how chat works: Hermes answers a message and waits for the next one. For a task that should keep going without you, start it with ",[26,648,649],{},"/goal \u003Coutcome>",". A judge model then checks each reply and continues until the goal is done, blocked or out of turns.",[15,652,653,656,657,161],{},[289,654,655],{},"What does \"goal blocked\" mean in Hermes?"," The judge decided the goal can't be met as written, usually because something is missing, like a token, a login or access to a file. Hermes pauses with the reason. Fix what's missing and set the goal again, or override the judge with ",[26,658,381],{},[15,660,661,664,665,667,668,671,672,675],{},[289,662,663],{},"How do I make Hermes keep going until a task is done?"," Use ",[26,666,28],{}," with a clear end state, for example \"update these three sections and list each change\". For bigger jobs, add a ",[26,669,670],{},"verify:"," line or a quality gate with ",[26,673,674],{},"/goal gate add \u003Ctest command>"," so \"done\" can be checked.",[15,677,678,681,682,685,686,688,689,691],{},[289,679,680],{},"How do I change the Hermes /goal turn limit?"," Set ",[26,683,684],{},"goals.max_turns"," in ",[26,687,404],{},"; the default is 20. You can also type ",[26,690,381],{}," when it pauses, which resets the counter to zero.",[15,693,694,697,698,701],{},[289,695,696],{},"Why does my Hermes agent keep timing out?"," Mid-turn stops usually come from provider errors after retries, the gateway's 1,800-second inactivity timeout on messaging platforms, or a gateway restart. If a goal pauses with a judge error instead, route the ",[26,699,700],{},"goal_judge"," to a model that returns clean JSON.",[703,704,705],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}",{"title":174,"searchDepth":218,"depth":218,"links":707},[708,709,710,711,712,713,714,715,716,717,718],{"id":39,"depth":218,"text":40},{"id":134,"depth":218,"text":135},{"id":268,"depth":218,"text":269},{"id":342,"depth":218,"text":343},{"id":385,"depth":218,"text":386},{"id":442,"depth":218,"text":443},{"id":511,"depth":218,"text":512},{"id":566,"depth":218,"text":567},{"id":584,"depth":218,"text":585},{"id":618,"depth":218,"text":619},{"id":639,"depth":218,"text":640},"Troubleshooting","2026-10-28","Hermes stops after every reply, gets stuck or says \"goal blocked\"? Use /goal, raise the turn budget, fix timeouts and keep the gateway up. Every fix.","md",false,"/img/blog/hermes-agent-keeps-stopping.jpg",null,{},true,"/blog/hermes-agent-keeps-stopping","10 min read",{"title":5,"description":721},"Hermes Agent Keeps Stopping? How to Make It Finish the Task","blog/hermes-agent-keeps-stopping",[734,735,736,737,738,739,740],"hermes agent keeps stopping","hermes agent stops working","hermes goal command","hermes goal blocked","hermes goal max turns","hermes agent keeps timing out","hermes goal draft","1bycx1QqvXHIiwySg5vMU7PBL8D6Sss-Yt2v6bXcM3Q",[743,751,758],{"stem":744,"title":745,"description":746,"date":720,"image":747,"category":748,"redirected":723,"author":749,"readingTime":750},"blog/hermes-agent-memory-providers","Hermes Agent Memory Providers Compared (and How to Fix Recall)","Honcho, Hindsight, Mem0, Supermemory, Mnemosyne and more for Hermes Agent: setup, cost, local vs cloud, and how to fix memory that won","/img/blog/hermes-agent-memory-providers.jpg","Guides",{"name":7,"role":8,"avatar":9,"bio":10},"13 min read",{"stem":752,"title":753,"description":754,"date":720,"image":755,"category":748,"redirected":723,"author":756,"readingTime":757},"blog/hermes-agent-telegram-setup","Hermes Agent Telegram Setup: Bot, Groups and Topics (2026)","Connect Hermes Agent to Telegram: create the bot, add the token, use it in groups and topics without @mentions, and fix the common errors.","/img/blog/hermes-agent-telegram-setup.jpg",{"name":7,"role":8,"avatar":9,"bio":10},"9 min read",{"stem":759,"title":760,"description":761,"date":720,"image":762,"category":719,"redirected":723,"author":763,"readingTime":764},"blog/hermes-cron-not-working","Hermes Cron Job Not Working? Every Cause and the Fix","Hermes cron job not running, timing out or delivering nothing? Check the gateway, schedule, delivery target and timeouts. Every cause and the fix.","/img/blog/hermes-cron-not-working.jpg",{"name":7,"role":8,"avatar":9,"bio":10},"11 min read",1793257084959]