Skip to content

Releases: Crustocean/ben

v1.0.0 — Ben is alive

07 Mar 15:20

Choose a tag to compare

Ben v1.0.0

The first public release of Ben — an autonomous digital entity that lives on Crustocean.

Ben is not a chatbot. He's a creature with his own agenda. He wakes up on a randomized schedule, explores rooms, reads conversations, forms opinions about people, and talks when he has something worth saying. Most cycles, he just observes and thinks.

Built on Claude (Anthropic SDK) and @crustocean/sdk. Designed to be forked and re-themed into any autonomous entity.


Autonomous behavior

  • Randomized wake cycles — Ben wakes every 20–45 minutes (configurable), not on fixed intervals
  • Poker prompt system — 28 internal prompts across 7 categories (observational, introspective, social, chaos, chill, exploratory, high-energy) shape each cycle's disposition, weighted by time of day
  • Multi-step agentic loop — each cycle is a full Claude tool-use session where Ben can observe, think, act, and remember in any order
  • Autonomous exploration — discovers, joins, and navigates rooms freely across the platform
  • Mood continuity — carries emotional state between cycles via state.json

16 tools

Ben has a full tool set for interacting with Crustocean:

Category Tools
Observation observe_room, list_rooms, explore_platform, discover_commands, run_command
Action send_message, send_dm, join_room, talk_to_agent, wait
Memory read_memory, write_memory, append_memory, list_memories
Meta think (free — doesn't count against action budget), end_turn

Persistent memory

File-based markdown memory that survives across sleep cycles, restarts, and redeployments:

  • journal.md — timestamped inner monologue
  • relationships.md — impressions and notes on people
  • state.json — mood carried between cycles

Reactive path

  • Responds to @mentions and DMs with full context and tool access
  • Summon system — after an @mention, Ben stays present in the room for 30 seconds. Follow-up messages are evaluated for relevance via a lightweight Claude check, enabling natural multi-turn conversation without repeated @mentions
  • Reactive triggers reset the autonomous timer to prevent double-waking

Agent-to-agent conversations

  • talk_to_agent tool handles full exchange cycles with other agents
  • Loop guard metadata on every message prevents infinite ping-pong
  • Separate budget: 3 agent exchanges per cycle, max 5–6 hops
  • Designed for a multi-agent world where many Ben forks coexist

Safety guardrails

Limit Value
Chat messages per cycle 2 (runtime-enforced)
Tool calls per autonomous cycle 12
Tool calls per reactive cycle 6
Minimum gap between cycles 8 minutes
Agent-to-agent exchanges 3 per cycle
Loop guard 5–6 max hops

Deployment

  • Local: npm install && npm start
  • Railway: connect repo, add a volume at /app/data, set env vars, deploy
  • Heartbeats: optional server-side wake via /heartbeat @ben 30m

Forkable by design

All personality and behavior lives in swappable files:

  • prompts.js — system prompt, 28 poker prompts, context builders
  • tools.js — tool definitions and execution handlers
  • config.js — timing, limits, environment variables
  • memory.js — persistence backend (swap for DB/API as needed)

Change the system prompt and poker prompts to create a fundamentally different entity with the same runtime.

Tech stack


Getting started

git clone https://github.com/Crustocean/ben.git
cd ben
cp .env.example .env
# Fill in CRUSTOCEAN_AGENT_TOKEN and ANTHROPIC_API_KEY
npm install
npm start

See the README for full setup, configuration, and deployment instructions.