nickm980 / smallville Goto Github PK
View Code? Open in Web Editor NEWGenerative Agents for video games. Based on Generative Agents: Interactive Simulacra of Human Behavior
Home Page: https://nickm980.github.io/smallville/
License: MIT License
Generative Agents for video games. Based on Generative Agents: Interactive Simulacra of Human Behavior
Home Page: https://nickm980.github.io/smallville/
License: MIT License
Should have:
EDIT:
I have migrated to a new dashboard template and have added
Still need to migrate the following to the new dashboard:
Also add UpdateReaction to update(agent) instead of just to update(agent, observation) but make the observation the latest observation.
Should have a java client to send requests to the smallville server. The java client should have all the same features as the javascript client by also sending http requests to the smallville server.
server endpoints (some of these might be outdated): https://nickm980.github.io/smallville/server/
Reflections should not hold up sending back the response for the current activity.
When an agent is clicked on in the example game, the page should jump down to the agents "screen" (where the activity and conversation dialog is shown).
Create a simulation.yaml file as a config file next to the jar to create the initial agents, locations and other initial information next to the server directory as an option instead of through the javascript client
Currently, only locations with multiple nested objects are supported. The desired behavior is to have locations able to nest both objects and other SimulatedLocations. The fix for this would involve changing the natural language conversion of SimulatedLocation and testing the new version on the existing prompts
Hello!
Amazing project. I have been looking everywhere for an implementation of the generative agents paper in JS and open source.
I maintain a developer tool for visually building and deploying agents. I would love to speak with the creator of this project.
I tried your discord link but it isn't working.
Thanks!
The example game should have a randomly chosen sprite when new agents are created
Agents will occasionally move diagonally to the next square instead of turning right at 90 degree angles (for example at the timestamp 0:03) when calling this function
moveAgent({ scene: this, name: "Medina", location: "Red House", })
Agents should move 90 degrees to their next location without any diagonal movement
OS: Windows
Browser: Chrome
Version: 113.0.5672.127
Error message:
2023-08-12 22:29:31 INFO SmallvilleConfig:38 - Loading config.yaml...
2023-08-12 22:29:31 INFO SmallvilleConfig:29 - Loading prompts...
2023-08-12 22:29:32 INFO Smallville:39 - Starting server...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: darwin, architecture: aarch64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
at org.tensorflow.NativeLibrary.load(NativeLibrary.java:77)
at org.tensorflow.TensorFlow.init(TensorFlow.java:66)
at org.tensorflow.TensorFlow.(TensorFlow.java:70)
at org.tensorflow.SavedModelBundle.(SavedModelBundle.java:170)
at com.robrua.nlp.bert.Bert.load(Bert.java:152)
at com.robrua.nlp.bert.Bert.load(Bert.java:193)
at io.github.nickm980.smallville.math.SmallvilleMath.getBert(SmallvilleMath.java:14)
at io.github.nickm980.smallville.math.SmallvilleMath.loadBert(SmallvilleMath.java:21)
at io.github.nickm980.smallville.Smallville.main(Smallville.java:42)
Java17、mac、M1;
run io.github.nickm980.smallville.Smallville#main
Should I change the system to run?
The tilemap should have more objects and locations for the agents to interact with.
Describe the bug
Prompt templates are being cached by Mustache and only updating when changing the name used with the compile method
Expected behavior
Prompts should update whenever the template is changed
Short Term and Long Term Plans take a long time to update. Below is data based off a single run (not averaged so it's not completely accurate but is for a rough estimate of the request time
Memory Weight Updates - ~1s (1-5 memories)
Long Term Plan Updates - ~20s (5-8 plans)
Short Term Plan Updates - ~35s (20 plans)
Current Activity And Emoji - ~3s
Plan Memory Weight Updates - ~2s
Location State Updates - about ~6s
Agents should indicate a loading icon next to their dialog bubble to show that they are receiving an update
Hi, I encounter some issues when trying to start the smallville server with the command you provided in README.
After building the server project with mvn package, I tried to start the server with command:
java -jar target/smallville-1.3.0.jar --api-key xxx
And get the following error logs:
Exception in thread "main" io.javalin.util.JavalinException: io.javalin.util.JavalinException: Static resource directory with path: './' does not exist. Depending on your setup, empty folders might not get copied to classpath.
at io.javalin.Javalin.start(Javalin.java:186)
at io.javalin.Javalin.start(Javalin.java:148)
at io.github.nickm980.smallville.api.SmallvilleServer.start(SmallvilleServer.java:44)
at io.github.nickm980.smallville.Smallville.startServer(Smallville.java:74)
at io.github.nickm980.smallville.Smallville.main(Smallville.java:44)
Caused by: io.javalin.util.JavalinException: Static resource directory with path: './' does not exist. Depending on your setup, empty folders might not get copied to classpath.
at io.javalin.jetty.ConfigurableHandler.getResourceBase(JettyResourceHandler.kt:112)
at io.javalin.jetty.ConfigurableHandler.(JettyResourceHandler.kt:76)
at io.javalin.jetty.JettyResourceHandler.init(JettyResourceHandler.kt:31)
at io.javalin.jetty.JettyServer.start(JettyServer.kt:80)
at io.javalin.Javalin.start(Javalin.java:171)
... 4 more
BTW, some tests in the java project are broken, like MemoryStreamTest.
Explore what LLM to use for running locally
There should also add a setting in config.yaml to change whether to use ChatGPT's token embedding API or run it using a local model, and if a local model then which one. Will also have to change the code where ChatGPT is instantiated and change it to finding the class from the config.
The new class should also implement LLM https://github.com/nickm980/smallville/blob/main/smallville/src/main/java/io/github/nickm980/smallville/llm/LLM.java
Describe the bug
The discord link is invalid, may need to recreate the link and set it to never expire.
When prompts fail (timeouts, too many tokens, server issues), they should attempt to retry sending
java-client should attempt to reconnect until a connection is established or maximum amount of retries has been reached when first creating the client
Need to test interactions with multiple agents, how they react to observations of seeing other agents, planning with other agents, and conversations.
Include a new button next to the update state button which would update the state automatically every 5 minutes. If it is clicked again, it will stop automatically updating.
Observations of surroundings should be sent to the server (state of nearby objects and the nearby agents) whenever
For now, it's fine to have the observations just be the states of the objects and the activities of other agents (the latter would probably help fix issues with multiple agents). smallville#addObservation
should work for this requirement
It's possible for an object to be null and instead just be given a root location
For example, with a location path of Forest: Campfire it's possible for agents to choose not to interact with the campfire but instead perform an activity in the forest. In such a case, Forest: null will be the resulting path.
Currently game locations show up as null but should only show the root location.
The location from the attached image should display
Location: Forest
instead of
Location: Forest: null
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.