# Phantasy

> AI agent framework for creating agents and games: character identity, memory, tools, approvals, and operator workflows in one engine.

- Role: Runtime / systems engineer
- Status: Engine behind Rally and future character products; source private
- Stack: TypeScript, agent tools, memory systems, operator workflows
- Page: https://thomasjvu.com/projects/phantasy
- Markdown: https://thomasjvu.com/projects/phantasy.md

## Links

- [Site (Access-gated)](https://phantasy.bot)
- [Rally demo (Access-gated)](https://app.rally.sh)
- [Rally portfolio proof](/projects/rally)

## Metrics

- Roleplay evals: ~60% lift — Internal roleplay evaluation improvement from browser-optimized SLM fine-tuning.
- Shipped proof: Rally on the runtime — Consumer companion product built on the shared identity / memory / tools boundary.
- Operator control: Tool approvals — Governance path so character tools can run without forking the engine per product.

## Writeup

## Overview

Phantasy is the engine layer for Rally and other AI-native character products. A model call can produce text. A product needs continuity, private state, tool permissions, and a way to ship character-specific workflows without rewriting the stack every time.

Source is private; available on request for serious hiring conversations. Live product hostnames are Access-gated today. Ungated proof: the [Rally portfolio page](/projects/rally) (SFW clip + architecture) and the writeups on this site.

## Problem

Companion apps keep getting rebuilt as one-off prompt wrappers. Identity, memory, tools, and operator control end up copied, drifted, or missing. Phantasy is the shared runtime so those pieces have a boundary.

## What I built

- Agent runtime and operator UI for character-led products.
- Tool governance, approval modes, workspace scaffolding, and local setup.
- A hard split: Rally owns affection, dates, purchases, and launch gates; Phantasy owns reusable character behavior.

## Hard parts

The useful work is the boundary, not the prompt. What state is private to the browser? What can a tool do without an operator? How do you add a new character product without forking the engine? Those questions are the product.

## Result

Internal roleplay evals improved ~60% with browser-optimized SLM fine-tuning. Rally is the first playable proof on the runtime. Site: [phantasy.bot](https://phantasy.bot). Repositories are private.
