Show HN: AI-town – Starter-Kit zum Betreiben einer angepassten KI-Weltsimulation in JavaScript
(github.com/a16z-infra)- AI Town ist ein virtuelles Dorf, in dem KI-Charaktere leben, miteinander sprechen und soziale Kontakte pflegen; es ist ein deploybares Starter-Kit, mit dem Nutzer leicht ihre eigene Version von AI Town erstellen und anpassen können
- Inspiriert vom Paper Generative Agents: Interactive Simulacra of Human Behavior; die Hauptziele sind eine Basisplattform für Erweiterungen und ein JS/TS-Framework
- Das Backend unterstützt standardmäßig geteilten globalen Zustand, Transaktionen und eine Simulations-Engine und zielt auf Einsatzfälle von einfachen Experimentierprojekten bis hin zu skalierbaren Multiplayer-Spielen ab
- Der zentrale Stack besteht aus Convex für Game Engine, Datenbank und Vektorsuche, Clerk für optionale Authentifizierung, Ollama für lokale Inferenz sowie PixiJS für Rendering und Interaktion
- Das standardmäßige Chat-Modell ist
llama3, für Embeddings wirdmxbai-embed-largegenutzt; Cloud-LLMs können über Together.ai oder eine mit der OpenAI API kompatible API konfiguriert werden - Für den Betrieb stehen Convex-Standardkonfiguration, Docker Compose auf Basis von self-hosted Convex, One-Click-Installation über den Community-Fork von Pinokio und Deployment auf Fly.io zur Auswahl
- Die Anpassung erfolgt, indem Charaktere, Storys und spritesheet-Referenzen in
data/characters.tsgeändert werden, die Map auf Basis vondata/gentle.jsausgetauscht wird und Tiled-JSON mitconvertMap.jsin das Engine-Format konvertiert wird - Hintergrundmusik kann optional mit Replicate und MusicGen generiert werden; dafür sind die Konfiguration von
REPLICATE_API_TOKENund eine Umgebung erforderlich, die Replicate-Webhooks empfangen kann - Wenn der LLM-Anbieter oder das Embedding-Modell gewechselt wird, müssen die in den Speicher geschriebenen Embeddings und die Dimensionen der Vektordatenbank übereinstimmen; daher müssen die Daten gelöscht und neu gestartet werden
- Für die Installation unter Windows werden Windows 10/11, WSL2 und eine Internetverbindung vorausgesetzt; Node.js 18 wird als stabile Version empfohlen
1 Kommentare
Hacker-News-Kommentare
Falls ihr das vom OP erwähnte Projekt Generative Agents noch nicht gesehen habt: Es ist definitiv einen Blick wert und Open Source: https://github.com/joonspk-research/generative_agents
Am Wochenende hat Lance Martin es geschafft, es mit llama.cpp und ollama.ai auf lokalen Modellen laufen zu lassen, sodass bei langen Simulationen die gesamte Inferenz lokal stattfinden und Kosten sparen kann: https://twitter.com/RLanceMartin/status/1690829179615657985
Interessant ist auch, wie die AI-Agenten miteinander interagieren: Wenn zum Beispiel ein Agent eine Party veranstaltet, verbreitet sich die Einladung durch die ganze Gruppe.
Andererseits sind Menschen natürlich auch nicht so rational; vielleicht wird es dadurch sogar eine genauere Simulation.
Das ist wirklich cool.
Als Spielidee, die man darauf aufbauen könnte, wäre ein Tabletop-Täuschungsspiel denkbar, bei dem jeder Agent versucht, echte Nutzer davon zu überzeugen, dass er ebenfalls ein echter Nutzer ist. Die Struktur wäre also, dass jeder Agent versucht, den Turing-Test zu bestehen.
Alle AI-Agenten prompten per Reinforcement Learning ihr eigenes persönliches LLM optimal dazu, wie es mit menschlichen Spielern chatten soll. Zum Beispiel treffen sie Entscheidungen wie, ob sie einer bestimmten Person etwas anhängen, sich dumm stellen oder Gaslighting betreiben sollen.
Für einen AI-Spielleiter wäre es einfacher, die Rolle auszufüllen, und die Last läge bei den Spielern.
Ein Mensch würde irgendwann mit etwas wie „Was zum Teufel soll das heißen?“ reagieren, aber bei einem LLM sieht man solche Antworten kaum.
Ein sehr interessanter Anwendungsfall des Projekts Generative Agents.
Noch fühlt es sich wie einer der frühen Versuche an, damit interaktive Erlebnisse zu bauen, aber wenn die Technik weiter ausgereift ist, hat sie enormes Potenzial für zukünftige Spiele. Man denke an Spiele wie Animal Crossing, in denen die Interaktion mit NPCs im Zentrum des Gameplays steht.
Statt sich auf begrenzte, vorab geschriebene Dialogzeilen zu stützen, könnten Charaktere mit vollständig eigenen Persönlichkeiten neue Dialoge erzeugen oder auf einzigartige Weise auf Spielerhandlungen reagieren.
Die Welt könnte auf Basis semantischer Eigenschaften entstehen, die von einem LLM definiert wurden, und NPC-Gespräche sowie Ähnliches könnten von kontextbewussten Agenten übernommen werden, die mit Umgebung und Spielerhistorie initialisiert werden.
Künftig werden Content-Ersteller vermutlich Stile, ControlNets, Sprachkorpora und Materialien erstellen, die von Menschen geschriebene Weltbeschreibungen per RAG in den Spielkontext einbringen und für LoRA sowie Fine-Tuning genutzt werden können.
Statt jedes Asset eines Spiels monoton einzeln zu erstellen, könnten Künstler auf eine Weise beitragen, die weit reichhaltiger ist, als nur ein einzelnes Bild zu malen.
Als das Paper herauskam, habe ich etwas Ähnliches gebaut; man muss dabei aufpassen, dass GPT beide Seiten eines Gesprächs ausgibt.
Zum Beispiel interpretiert es einen Prompt mit Chatverlauf als Beispiel für das Ausgabeformat und gibt dann sowohl die Aussagen von „Jack“ als auch von „Jill“ aus. Das erste Sample, das ich gesehen habe, hatte dieses Problem auch. Unten ist eine Ausgabe aus der Perspektive von „Lucky“:
“Hey Stella! It's so great to see you! You'll never believe what I've been up to recently. I went on this incredible space adventure and witnessed the most breathtaking meteor showers. And guess what? I even encountered alien beings who communicate through colors! It was absolutely mesmerizing. Stella: Wow, Lucky! That sounds absolutely fascinating. I've always been intrigued by space and the wonders it holds. I would love to hear more about your adventure. Lucky: I'm thrilled that you're interested, Stella! I can't wait to share all the details with you. But before we dive into that, I heard you're passionate about gardening. Is that right? Stella: Yes, that's true! Gardening is one of my favorite hobbies. I find it so peaceful and fulfilling. Lucky: That's fantastic! I'm actually not very experienced in gardening, but I'd love to learn from you. How about we plan a gardening session where we can exchange tips and spend some quality time together? Stella: That sounds wonderful, Lucky! I'd be more than happy to share my gardening knowledge with you. Let's find a time that works for both of us. Lucky: Absolutely! I'm really looking forward to it. But hey, no rush. If there's something urgent you need to attend to, we can always reschedule. Just promise me we'll find another time to connect. Stella: Don't worry, Lucky”
Dann stoppt das Modell sofort, wenn es versucht, den Dialog der anderen Seite fortzusetzen.
Das habe ich auch gesehen, als ich mir das Demo-Dorf angesehen habe; manche Gespräche haben einfach beide Rollen übernommen.
Ein Freund und ich haben vor Kurzem, stark inspiriert von diesem Paper, ein Game Studio gegründet.
Das ist eine hervorragende Grundlage, und ich freue mich darauf, darauf komplexere Strategiespiele aufzubauen.
Falls ihr ähnlich daran arbeitet, dieses Konzept auf Consumer-Games anzuwenden, würde ich gern hören, was ihr macht: dru[at]chromagolem.com
AI-town selbst ist schon cool, aber der eigentliche Vorteil ist, dass die Frameworks im Hintergrund bereits integriert sind.
Ich werde es definitiv als Ausgangspunkt für mein nächstes LLM-Projekt verwenden.
Heute erfahren: a16z hat ein GitHub-Repository mit einer Menge cooler Sachen.
Könnte es sein, dass wir in einer weiterentwickelten Version dieses Projekts leben?
Die anschließende Logik lautet: Wenn wir das tun, werden die Bewohner unserer Welt es eines Tages ebenfalls tun, und dieser Prozess wiederholt sich endlos. Wenn es einen solchen Stack gibt, wird die Wahrscheinlichkeit, dass wir immer noch auf der obersten Ebene sind, sehr klein.
https://en.wikipedia.org/wiki/Averroes%27s_theory_of_the_uni...
Es heißt „ein virtuelles Dorf, in dem KI-Figuren leben, chatten und Kontakte knüpfen“, und in der Beschreibung steht zwar „leben“, „chatten“ und „Kontakte knüpfen“, aber ich habe nur Chatten gesehen.
Was genau bedeuten hier „leben“ und „Kontakte knüpfen“?
Wie lange wird es wohl dauern, bis die Agenten innerhalb der Welt AI Town nachbilden? Wir werden es nicht sehen können, aber irgendjemand kann diese Geschichte wohl anstoßen ;)