FeaturedMarketing & SEO#Decision Model#Humanizer#AI Writing#Agent#Loop#Noul#Score#Content Quality

Decision Model AI Text Humanizer

Humanize AI-assisted text in up to five agent rounds. Decision Models check every five-sentence batch and keep the best-scoring rewrite.

Workflow at a glance

The full canvas, before you import it

Click any node to see its config.

#Decision Model#Humanizer#AI Writing#Agent#Loop#Noul#Score#Content Quality

Click a node to select it — same as the Heym editor; the panel shows its settings.

19 nodes · Free & source-available

Decision Model AI Text Humanizer

AI-assisted drafts tend to share a sound: even sentence lengths, formal transitions, textbook definitions, and filler such as "delve", "moreover" or "leverage". Readers pick it up in a line or two. This template gives the rewrite to an agent and the judging to Decision Models. The agent fixes the message five sentences at a time and checks each batch as it goes. The workflow then scores the whole message after every round and keeps the best version it has seen.

Before and after

One run on a mixed draft: a product blurb, a personal note, and a textbook definition.

Before: AI score 0.96

Not every step in an AI workflow needs the same model.

Heym Decision Models can route tasks across different LLMs, evaluate outputs, add confidence gates, and make runtime decisions inside agentic workflows.

We also show JEV and Laya as examples of a decision model. I used AI to help sharpen my draft. The structure is cleaner now, but the core idea — that procrastination is fear, not laziness — is still mine.

Procrastination is defined by the voluntary delay of intended actions despite awareness of negative consequences. Research indicates it stems from emotional regulation difficulties rather than poor time management.

After: AI score 0.27

You don't need the same model for every little step tbh.

With Heym I just send stuff where it fits. I'll try like two or three LLMs real quick, pick whatever doesn't suck, sometimes I add a confidence gate if I'm not sure. Then the agent just keeps going.

I dropped in JEV and Laya cause they show the decision thing well imo. Used AI a little to tighten up my draft. Reads smoother now but that fear not laziness bit on procrastination, yeah that was all me.

Procrastinating is just pushing stuff back even when you know it'll screw you over. Honestly from what I've seen it's not really about managing time, it's you dodging the stressy feelings that come with it.

The score fell from 0.96 to 0.27 because the rewrite changed what a reader notices first. The em dashes are gone, contractions replace formal phrasing, sentence lengths vary, first-person asides ("imo", "yeah that was all me") carry the voice, and the dictionary-style definition becomes one plain sentence. The links, line breaks and the order of ideas stay where they were. Your numbers depend on the decision model, the LLM and the draft itself.

How the workflow works

  1. Score the whole message. scoreBefore asks two questions about $userInput.body.text. is_ai is a Noul question: the probability that at least one sentence shows AI-writing signals such as em or en dashes, formulaic structure, generic filler, triple parallel constructions or an evenly polished tone. ai_level is a Score question across five levels, from fully_human to fully_ai.
  2. Set up the rounds. Five Variable nodes store currentText, currentScore, bestText, bestScore and rounds, an array of five items that humanizeLoop iterates over.
  3. Rewrite while the score is high. Each round, needsFix checks $vars.currentScore >= 0.20. Above the target, humanizeAgent runs. Once a round lands under 0.20, the remaining rounds pass through breakLoop and the agent is not called again.
  4. Fix five sentences at a time. humanizeAgent splits the message into numbered sentences and sends each batch of five to checkAi, a Decision node attached as a tool. The agent writes the batch into the tool's state field at run time. Batches under 0.20 stay as they are. Batches above it get their AI-sounding sentences rewritten and re-checked, up to 15 attempts per batch, with ai_level telling the agent how hard to push. URLs, line breaks and the signature are kept exactly.
  5. Keep the best round. scoreRound scores the full rewrite with the same two questions as scoreBefore. scoreImproved compares the new score with bestScore, and only a lower score moves the text into bestText. A weaker round never replaces a stronger one.
  6. Return the result. When the loop is done, finalOutput returns beforeText, afterText, beforeScore and afterScore, where the after values are the best round.

Three checkpoints, one yardstick

CheckpointNodeReadsDecides
BeforescoreBeforeThe full messageThe starting score and the first bestScore
Per batchcheckAi (agent tool)Five sentencesWhether the agent rewrites or keeps the batch
Per roundscoreRoundThe full rewriteWhether this round becomes bestText

All three ask the same questions with the same criteria, and a decision model returns a calibrated probability instead of generated text. That is what makes the numbers comparable: 0.27 after a round means the same thing as 0.96 before it, so "keep the best version" is a plain numeric comparison. Our write-up on System One models explains how decision models such as Jev and Laya produce these probabilities.

Setup

  1. Copy the template into the Heym canvas.
  2. Create a Decision Model credential and select it on scoreBefore, checkAi and scoreRound. The example model is jev-latest. Laya speaks the same wire format, so a self-hosted Laya endpoint works with the same questions.
  3. Select an LLM credential on humanizeAgent. The example uses muse-spark-1.3-contributor with the Responses API at temperature 0.1. Pick a model your credential serves, and turn the Responses API toggle off for a Chat Completions endpoint.
  4. Run with the sample draft, then paste your own message into the text field of userInput.

Tune it

  • Target score: 0.20 appears in needsFix and in the agent's system instruction. Change both together.
  • Rounds: $array(1, 2, 3, 4, 5) in initRounds sets up to five whole-message rounds.
  • Batch size and attempts: five sentences per batch and 15 attempts per batch live in the agent's system instruction. maxToolIterations is 100; raise it for long messages.
  • AI signals: edit the question instructions on all three Decision nodes at once so the checkpoints keep measuring the same thing.

Read the output

  • beforeScore and afterScore are probabilities from 0 to 1. Lower means the text reads more like a person wrote it.
  • An afterScore above 0.20 means no round reached the target and afterText is the closest version the workflow produced.
  • The score describes writing style as your decision model reads it, which makes it a strong editing signal. Read the rewrite for accuracy before you publish it, since a casual voice can soften a precise claim.

Keep node labels stable so the expressions continue to resolve.

How to import this template

  1. 1Click Import → Copy JSON on this page.
  2. 2Open your Heym and navigate to a workflow canvas.
  3. 3PressCmd+V/Ctrl+V— nodes appear instantly.
  4. 4Add your API keys in the node config panels and click Run.
More workflow templates
View all templates
Heym
incident analysis · production AI
Observed across 100s of AI rollouts

AI workflows don't fail because of prompts.
They fail because of orchestration.

symptom · glue code01
5 tools
Scripts, vector DB, approval bot, tracing, browser runner — none of them talk.
symptom · visibility02
~0%
Observable behavior across the stack. Debugging is guesswork.
with heym · one runtime▲
1 canvas
Agents, RAG, HITL, MCP, traces & evals. Self-hosted. Observable.
AI-Native RuntimeProduction-Grade
github.com/heymrun/heym