Skip to content

Workers with personalities, a social life and a local Ollama mind - #407

Open
GoodIsaac18 wants to merge 1 commit into
AgentSystemLabs:mainfrom
GoodIsaac18:feat/worker-minds
Open

GoodIsaac18 wants to merge 1 commit into
AgentSystemLabs:mainfrom
GoodIsaac18:feat/worker-minds

Conversation

@GoodIsaac18

Copy link
Copy Markdown

Summary

  • Personas: every hire is dealt a deterministic persona (21-persona deck seeded by project dir + desk + worker id) injected into the provider's brief, so each worker has a name, voice and character that survives restarts.
  • Wandering: idle workers leave their desks and visit real spots — they sit on actual couch/beanbag seat places, watch the TV, hit the arcade, jukebox, whiteboard, bookshelf, elevator lobby and DJ booth. Per-worker traits (sociability, energy, patience, mischief, pace, tone, quirk, taste) plus slowly-evolving needs decide where they go and how long they stay. They greet the player, keep apart (spot claiming + per-frame separation), and return instantly when work arrives.
  • Coworker chats: pairs of idle workers meet, face each other and trade speech-bubble lines in their own voices; affinity per pair drifts toward friends/rivals and cools back toward neutral without contact.
  • The office mind: server/mind.ts + POST /api/mind — a local Ollama model (llama3.2:3b, OFFICE_MIND_URL/OFFICE_MIND_MODEL) writes chat scripts while the pair walks to meet, learns from finished tasks, and shares floor-wide knowledge (OFICINA: notes). Memory lives in .agent-office/minds.json; notes carry nomic-embed-text vectors (OFFICE_MIND_EMBED) so recall picks notes relevant to the pairing — aged down over time — instead of just the newest, and large memories are distilled. Procedural chatter covers whenever Ollama is away; the mind never touches code, tools or repos.
  • New modules plug in through the existing registries (workers/wander.ts, crowd.ts, spots.ts, mind-client.ts, server/mind.ts, routes/mind.ts); no changes to main.ts/server.ts/state store/protocol.ts.

Test plan

  • npm run typecheck
  • npm test — new tests/personas.test.ts and tests/size.test.ts green; the few failures seen locally (client-registry InteractKinds, clone/codex suites) reproduce on clean origin/main and are unrelated
  • npm run build
  • Live-verified against a local Ollama: /api/mind chat returns in-character Spanish scripts, learn writes personal + OFICINA: shared notes, embeddings persist 768-dim vectors in minds.json
  • Headless-browser screenshot of wandering/seated workers

Generated with Devin

Each hire is dealt a deterministic persona (seeded by floor, desk and
worker id) that goes into the provider's brief and colours how it works
and answers. When a worker has nothing to do it wanders the floor —
really sits on the couch's seats, visits the TV, arcade, jukebox and
more — with per-worker temperament, tone, quirks, needs and favourites,
speech bubbles, hellos for the player, and chats with coworkers whose
relationships drift toward friends or rivals and cool back down when
they stop meeting.

A small local Ollama model (server/mind.ts, /api/mind) can write the
chat scripts while the pair walks to meet, learn from finished tasks,
share floor-wide knowledge, and keep per-worker memory in
.agent-office/minds.json. Notes carry nomic-embed-text vectors so recall
picks what's relevant to the pairing (aged down over time) instead of
just the latest, and big memories get distilled. Procedural chatter
covers whenever Ollama is away; the mind never touches code or repos.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants