Inspiration

I met Matt Dicks on portraits.google.com--well, his avatar anyway, and I bought his book, "Storyworthy". I realized that everyone has wonderful stories to share, but maybe they don't have the tools or opportunity to get them out. My hope for AI is that it augments humans capacities in ways that create more joy and enrich lives. Loreworthy was built to help a specific audience create rich characters by inventing great backstories for them.

What it does

The user starts by providing some general framing, then the Loreworthy uses that to being a kind of Socratic dialog where the user answers questions about the character which contain additional assertions that can be interrogated and so on. The Loreworthy agent is looking for the kernel of the story--the "I was X, then some stuff happened, now I'm Y."

When it finds it, it keeps dialoging with the user until the entire Storyworthy frame is complete, then it generates a story and solicits feedback from the user. Along the way the user can ask for inspiration--essentially a completion--rather than answering a question directly. They can provide a feedback signal on that completion as well.

These signals and any feedback provided in the dialog are used to develop a profile of the user's preferences offline. That profile is fed back into the agent in the next session on top of the system prompt that is shared by everyone.

How I built it

I used Antigravity CLI, Cloud Spanner, Cloud Run, etc. The repo has architecture artifacts. I also used other tools for brainstorming, design, and coding: Claude, Gemini (web), Excalidraw, my iPad, etc.

Basically, I sketched the idea, then wrote it up and asked agy to spike the backend and Claude Design to create the UI. I pull that over into agy and wired things up. From there it was a lot of iteration.

Challenges I ran into

I started late, like really late, like two days ago late. I also had to add Vertex AI as a backend because I ran out of Tier 1 quota on the TTS model calls. Also, I spent an inordinate amount of time trying to be sure I didn't violate any copyrights or other IP entanglements; I hope I succeeded. In retrospect, I should have just gone wider with a more generally story-creating agent rather the D&D angle, but usually constraints are generative, and I liked the name.

Frankly the D&D angle was kept mostly to have an unstructured data source to ingest to meet the scoring rubric for the project. The idea was to connect the user's generated story to the facts of the campaign setting.

Accomplishments that I'm proud of

I'm just happy to get something in before the deadline. I'm amazed at how much can be accomplished by one person in a couple of days. AI is amazing.

What we learned

I think the biggest breakthrough was writing an eval loop that has the Loreworthy agent working with another agent standing in for the user. The Storyworthy frame has several parts and the agent only invokes the "weave" tool (actually story generation) once

What's next for Loreworthy

I'm going to finish it. I have at least a dozen more features to add. I want to take advantage of the fast diffusion story generation to let the user highlight things they like and keep refining from there.

Not sure after that. I bought the domain. I'm going to show it to some friends and see if they get excited about it. I'll go from there.

Built With

  • adk
  • antigravity
  • cloud
  • python
  • spanner
Share this project:

Updates

Submission history