Inspiration

It started with kids. I wanted to make lots of different stories for children, new worlds and new characters every time, and I kept getting the same few plots back from AI tools.

The bigger problem was how AI writes a story: one long draft in one go. Characters forget who they are, the world changes between chapters, and after a while everything sounds the same. And the idea itself is usually generic, because the AI knows nothing about what you actually like to read or watch.

So I split the work. A small team of AI agents, each doing one job, keeps the story together. And Qloo comes in at the very start, so the idea is built from the books, films and places you love.

What it does

Story Muse (Qloo). You type a few favorite books, films and places. Storyteller looks them up in Qloo's taste graph and finds what else people with that taste love: related books, films and places. Then it writes 3 different story ideas from those connections, each with a title, logline, premise, opening hook, setting and main character. Pick one and it fills in the creation wizard for you.

Taste profile. When you sign up you can add up to 5 favorite books and 5 films. Storyteller keeps your Qloo connections on your profile and uses your favorites to pre-fill the Story Muse next time.

The writers' room. After you launch, six agents build the story step by step, and you can watch it happen live:

  1. World & Cast builds the places, the rules of the world, and a file for each character: what they want, what they need, their flaw, their secret, how they talk.
  2. Story Matrix plans what each character does in each chapter.
  3. Scene Director splits every chapter into scenes with a time, place, point of view, goal and conflict.
  4. Character agents act out each scene turn by turn. Each character is its own agent and only knows what it has seen or heard.
  5. Novelist turns those scenes into prose, and a craft filter cleans out typical AI phrases.
  6. Memory Keeper tracks what happened and what's still open, so later chapters stay consistent.

The reader. Every chapter gets its own illustration. There are day, sepia and night modes. And a Behind the Scenes drawer shows what each character was secretly thinking, doing and saying in every scene.

How we built it

How Qloo is used

  • GET /search turns your favorite books and films into Qloo entities (urn:entity:book, urn:entity:movie).
  • GET /v2/insights with signal.interests.entities set to those entities returns what that audience also loves, for urn:entity:book, urn:entity:movie and urn:entity:place.
  • Those results go into the prompt that writes the 3 story ideas, and each idea says which of them inspired it.
    • The picks you choose are saved with the novel and passed to the writing agents, so Qloo's taste data keeps shaping the world, scenes and prose, not just the starting idea.
  • If Qloo returns nothing for an input, the app shows a curated backup list and labels it as a backup, so made-up picks are never shown as Qloo data.

The rest

  • Backend in Python and FastAPI, with Pydantic models for the story, characters, scenes and memory.
  • Each agent stage is its own module with its own prompts. Stages return JSON, with a repair step for broken JSON and fallbacks, so one bad answer from the model doesn't stop the whole book.
  • Every character agent gets its own system prompt, built from its character file, with only its own knowledge.
  • A craft layer with banned words, banned sentence patterns and punctuation rules, applied before and after writing.
  • The story model and the image model are set up separately in the admin panel. It works with any OpenAI-compatible API, Gemini, OpenRouter or Ollama. If image generation fails there's a free backup, and then simple generated cover art.
  • The Qloo client runs only on the server, so the key never reaches the browser.
  • SQLite for users and sessions with salted PBKDF2 password hashing, and JSON files for each story's plan, chapters and memory.
  • Frontend in plain JavaScript, HTML and CSS, no build step.

Challenges we ran into

  • Long stories drifting. By chapter 3 things started to contradict chapter 1. Now the story plan, earlier chapter summaries and the Memory Keeper's notes go into every later step, and the last chapter is told to actually end the story.
  • Characters knowing everything. At first every character knew every secret, which kills any tension. Each agent now only gets what its character knows.
  • The model ignoring the user. It would rename or drop the characters you typed in. The World & Cast step now has to keep every character and place you gave it.
  • Prose that sounds like AI. The same words and sentence shapes kept coming back, so I wrote a filter for them.
  • Making Qloo actually matter. Calling the API was easy. Getting the taste data to really shape the idea, and being clear when it didn't, took much longer.
  • Long runs. One book takes several minutes, so generation runs in the background with a live log, auto-continue and retries.

Accomplishments that we're proud of

  • You can go from "here are three books I love" to finished, illustrated chapters in one place.
  • The characters keep secrets from each other. The first time I saw two agents talking around something neither wanted to say, I knew the approach worked.
  • The Behind the Scenes drawer. You can see how each scene was staged, and people like reading it.
  • Qloo sits at the start of the flow, so the idea comes from real taste data.
  • I built and launched it on my own, and it's live on its own domain.

What we learned

  • One big prompt doesn't work for long stories. Giving each agent one job made the writing better and much easier to control.
  • People care about the behind-the-scenes part almost as much as the story.
  • Keeping a story consistent turned out to be the easier part. Making it fit the reader is harder, and that's the part taste data helps with.

What's next for Storyteller AI

  • Kids: story series for different ages and interests.
  • Marketers: building a story around a product or service, then turning it into video scripts.
  • Producers: using the world, cast and story plan as the center of a whole production, scene by scene.
    • More Qloo: use Qloo for each character's own tastes and for real places in the story's city.

How to try it

You can create your own free account at storytellerapp.xyz, or use this test account:

To see Qloo in action:

  1. Open New Novel and go to Story Muse.
  2. Type a few favorite books, films and a place, then click generate.
  3. You'll get 5 related picks from Qloo and 3 story ideas.
  4. Pick one to load it into the wizard, then launch the novel and watch the agents write it live.

Built With

Share this project:

Updates

Submission history