Inspiration
I was playing around with AutoGPT and Baby AGI agents and realised that a reflection-based memory would allow it to improve the planning capabilities. The inspiration for this came from the research paper - "Generative Agents: Interactive Simulacra of Human Behavior". Adding a reflection-based memory and having the ability to edit those reflections would allow us to fine-tune agents in production systems. I am demonstrating this capability by building a PersonalAgent for Digital Nomads/ Founders. This is also useful for my main product, Aristotle: Autonomous Growth Agents platform.
What it does
Users can create their own agents that are capable of running a high-level goal. As you run more and more goals, the agents reflect on their past actions + take in human feedback for its performance and store it in memory. Subsequent executions will feature these reflections in the prompt allowing the agent to navigate failure scenarios better. TLDR:- Self Reflection + Hacky RLHF
How we built it
For the demonstration purpose of the reflection + feedback capability, I used Mckay Wrigley's open-source chat-ui and improved it to add agents + observability to the memory. The execution agent uses lang-chain + tools to run its full capabilities.
Challenges we ran into
I initially tried to hack this with Python but ran into multiple problems in creating a UX necessary to demonstrate. Thus I began to fully re-write the idea with typescript on Wednesday. My initial thought was to use Redis as the memory store for the agents, but I realised that most Redis instances don't have ReJSON installed. I finally decided to write this as a fully in-memory solution where the agent memory is actually held in the browser memory, and it's passed to the backend each time. Ideally, this should be improved.
Accomplishments that we're proud of
Yohei Nakajima also inspired me to publish a blog post detailing the idea and putting out the code base on GitHub. I used replit Ghostwriter to do it.
What we learned
What's next for PersonalAgent
My goal is to make a contribution to the lang-chain library with this concept and put it out as an example. I will be incorporating the techniques used in this project to make autonomous agents production ready for my startup.
Built With
- langchain
- typescript
Log in or sign up for Devpost to join the conversation.