Generative Agents: Interactive Simulacra of Human Behavior, Now Open Source
github.com
github.com
I always find it weird people are obsessed with LLMs being unable to solve quadratic equations or recite pi to some digit or play chess. That’s not the interesting abilities they demonstrate, and we already have techniques that do those tasks as good as you would ever need or want. But we have never had something that can operate in a natural language space and “reason” in that abstract space so effectively. That language alone is sufficient to bring out such amazing capabilities is cool, and mixing models and techniques using LLM as a glue between them will be (IMO) where they really change things.
what's crazy to think about is what new things will become possible as the context window sizes creep up.
Once again it's a kind of backhanded milestone for AI that in less than a year the goalposts have moved from "can it even once hold a half-coherent conversation" to "if anyone can think of a question it can't answer then it's dumb and not AI".
I do think, though, that one of the rewards of making LLMs promising was the discovery that the bar for “what is useful” for any task is higher than what the average person can do. That could be seen as moving the goalposts, but another way of looking at it is: we’ve finally bothered to install a scoreboard.
Like, if a person can’t solve a quadratic equation, they probably just aren’t useful for manipulating equations. Which is fine, of course, the average person is also not a very good hammer or screwdriver.
We’re all specialized, the bar for usefulness is probably something more like “how would a person who’s taken an intro college course on this do it.”
Has the Singularity already happened, and was it us?
Q:
Provide the quadratic roots of the following equation. Work out the answer step by step.
21 - 135 x + 19 x^2 = 0
A:
Okay, here are the step-by-step workings:
1) Start with the quadratic equation: 21 - 135x + 19x^2 = 0
2) Group the x^2 and x terms together: 19x^2 - 135x + 21 = 0
3) Use the quadratic formula to find the roots: x = (-b ± sqrt(b^2 - 4ac)) / 2a Where: a = 19 b = -135 c = 21
4) Substitute the values into the formula: x = (-(-135) ± sqrt((-135)^2 - 4(19)(21))) / 2(19)
5) Simplify: x = (135 ± sqrt(18225 - 1596)) / 38
6) Evaluate the square root: x = (135 ± 135) / 38
7) The two roots are: x = 5 x = 3
Therefore, the roots of the quadratic equation 21 - 135x + 19x^2 = 0 are x = 5 and x = 3.
Resident Evil 2 Remake was famous for having a strong enemy AI for Mr. X. He stalked the protagonist around a three story building. Players had to flee from him, and when they have successfully lost him then they had to quietly sneak around the building to avoid detection as he searched for the player. I imagine being able to learn from past encounters would make him even more frightening to run from. A stalking AI could take into account hiding places it found the player in the past, tactics they used to flee, and where the player's next objective is when deciding it's plan of action.
There's another genre of games this might find itself useful in. Those games in which you interact with a village on a social level. Stardew Valley, and Majora's Mask come to mind. Having more dynamic interactions with the townsfolk, that impact future interactions, could help draw in users to the simulated-social aspect of these games.
The main issue I see with generative AI and games is that it's all good to be able to chat to an NPC as if it were a person with a personality and knowledge of the world. There's an issue of fidelity though; how can you ensure that the AI only reports things that are true about the game world? And then, the issue of actual behaviour: an LLM might generate speech that has the NPC you're talking to say that they're going off to the inn at 5pm to recruit some sellswords, then march to the den of a fire dragon to defeat it, stopping along the way to collect an ice sword from its guardian maiden who lives in a giant tree nearby. OK, it's to generate that text from the player's prompts, it's very difficult to then actually have the NPCs act out the things that the LLM has just said it would do, tying in pathfinding, scheduling, animation, group behaviour and so on, and carrying out those actions would probably involve more traditional game AI techniques (again, not machine learning) anyway. Maybe that'll be solved some other way, maybe this repo does something like that already, I didn't check.
[1]: https://www.rockpapershotgun.com/why-fears-ai-is-still-the-b...
[2]: https://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear...
Despite that, procedural generation is still quite rare in shipping games outside of a few niche genres. I think the biggest problem is one of control. A huge part of the process of making and shipping a game is balancing it and testing it to ensure the play experience never goes off the rails.
Even relatively simple procedural generation can make that very difficult. Imagine playing a Zelda-like game where it turns out that 0.0001% of the time, the item you need to make progress is stuck behind a wall where the player can't reach it. Worse, they won't discover this until many hours into the game. That kind of stuff keeps game designers and producers up at night.
They would rather a less varied, hand-authored gameplay experience, if the result is one that they have more control over and understand better.
Bolting an LLM onto your game for NPC dialog sounds really cool until a popular Twitch streamer is playing your game for an audience of millions and some random NPC spouts a racist slur.
What I do think will be very common is game designers using LLMs offline to generate dialog and other assets, and then after the designer has vetted them, putting them into the game as fixed authored content. That kind of procedural generation is used all the time and has been for decades.
The very concept of "an item you need to make progress" is an artifact of a non-procedurally generated, railroaded plot. And even if your procedurally-generated game includes such things, it's a solvable problem to make this basically never happen.
>[Abigail]: Hey Klaus, mind if I join you for coffee?
>[Klaus]: Not at all, Abigail. How are you?
>[John]: Hey, have you heard anything about the upcoming mayoral election?
>[Tom]: No, not really. Do you know who is running?
[A] Not so good. I lost my mom last week.
There are any numbers of ways robo-Klaus might respond to that in a completely inappropriate way.
There was a quote (I thought from Hacker News but can't find it) that went something like this:
"As an engineer, I've always imagined that working in sales is something like this:
- you are on the golf course with a client
- someone says 'hey, did you guys see the game last night?'
- somehow, everyone magically knows what game you are talking about!"
> We've noticed that OpenAI's API can hang when it reaches the hourly rate limit. When this happens, you may need to restart your simulation.
What's the current status about if we're in a simulation?
This is similar to APL, SmallTalk, and Lisp. Novel ideas that don't scale.
Has it ?
https://arxiv.org/abs/2307.07924
https://arxiv.org/abs/2307.02485
The first one doesn't even use GPT-4