Inspiration
The world is moving faster than you. Everyday new technology comes out, faster, better and sometimes more adept at using the technologies you created. When the web(internet) came out the entire world was skeptic, and yet here we are; intertwined ever so deeply with internet. When web 2.0 came out, everyone was extremely excited to push what we already knew about the web to greater heights, then web 3 came along, the feared at one point crypto phase, we all know how this panned out and though it still exists it is met with criticism for most. But there is a web 4.0, you may have guessed it already; It is the web of agents, AI, interacting with the world like a human would whilst using the web. I am using this platform to announce Act in a certain sense, born from the startup I will be creating later called The Agent Company of the Internet. Act is a way for users to own, manage and control agents that will use the web for them, that will perform tasks and actions for them and that will do whatever the user chooses (legally of course) for them. That is the inspiration for Act.
What it does
Act acts as an agent orchestration and management platform (see what I did there?). With Act a user can spawn an agent, give this agent real money and put it on a budget and give the agent a task to accomplish. The agent will perform said task, and give the answer to the user or perform an action for the user. Think about this, I ask the agent to give me news on a certain event, most of the news sites are paywalled these days, but because I gave the agent a budget and let it go wild, it actually spent prudently based on the budget for the best news site by checking and vetting it as well as other sites and picking the best.
How I built it
Well, it wasn't easy I'll tell you that, I will save the token vault bit for the blog but I basically made use of nuxtjs and typescript for the entire thing, authentication is handled by auth0 (both user and AI) and I made use of langchain to create agents when neessary with the required tools. Making use of specialized tools for the best results like tavily for searches, firecrawl for scraping and created a purchase tool (using stripe). I have also included as much auth0 integrations as I can within a period of time and will continue to increase support for more after the judging process (or locally but not pushed).
Challenges I ran into
The documentation for auth0 is really something to go through, creating tools and letting it interact with auth0 is something quite tasking despite the docs saying it was easy, or maybe it is just a skill issue for me :) However, my experience while building is mainly making the tools work and building the UI for everything to come together. Token Vault is also an issue but more on that later on
Accomplishments that I'm proud of
I love Act, I love the new startup I am bringing to the table, don't get me wrong the platform isn't too product worthy in UI right now, but I can say it is pretty well done, I quite like the platform, everything works, agents use the internet and return data, everything works just fine.
What I learned
I learned a lot, this is honestly the first time I would be building agents with tools via code, so it was quite revealing, as well as really using auth0 for a lot of things, I honestly had no idea they were so flexible, I kinda feel embarrassed, but I learned a lot about agents, authentication for agents, Humans in the loop and much much more
What's next for Act and The Agent Company of the Internet
What's next? Simple, to keep building, I have already created an organisation on github for act, if I do win my exact plans would be to get a really good PC so I can build faster and better (this one is a really old chunky PC). so yeah, I also have a couple of ideas for The Agent Company of the Internet (TACI) but yeah, a lot, I have thoughts for a payment processor for agents to interact with the real world, and other fun ideas to try.
Bonus Blog Post
Token Vault, the best way as I understand to store your agents token when it wants to securely interact with an app. Not only is this feature quite useful for agents but also the user since it isolates and makes token delegation and management less messy when it comes to external apps and integrations. Setting up this token though is quite the process and whilst the docs expressively give instructions I can't help but wish it were shorter or easier.
What is a token vault, a token vault as I understand (stated above) is simply a safe or a storage room of some sort that provides an isolated environment for your agent to interact with external apps when necessary with the input of a human. It works by storing all tokens that your agents may have used to connect to an external application perhaps to read from the application or perform a task for the user in that application. Auth0 has some pretty good docs on it here: token vault docs.
My personal experience with it has been quite interesting to say the least. When I first stared at it, I remember scratching my head in a daze. "this seems...tedious", these were the exact words I muttered as I typed away to integrate it to my agent. It wasn't easy at all, not to mention the somewhat annoying fact that every instruction seemed to have a documentation of its own, like a multi-layered complex rabbit hole you had to go through. Just in the off chance you are like me and want to start somewhere, I would severely recommend you start here: A good start.
However, while I started building with token vault, it easier it became, the clearer the bigger picture became, so much so that I was lost in the docs (or sauce as I can call it). The underlying principle is actually really cool, and what I thought was a lot of work was honestly me clicking buttons, the rest was simply adding tools to my createAgent method, ironic right? Once you use the doc I recommended you start with, token vault becomes really easy, sure I still had to write some tools, and write a few lines of code, but it was actually better compared to what I thought it would be. Of course you shouldn't expect something really simple, you are playing with authentication no? and honestly it has as much consequence as giving a user agent the ability to spend money on behalf of the user, so there is definitely going to be some stringent rules you have to follow. Oh yes, by the way, this may be isolated to me, but the package should you ever choose to install langchain and then install the auth0 ai langchain package aren't compatible yet, please ensure you install and enable a legacy-peer-deps when installing. It will save you soo much stress like it did me, I basically wasted a good 10 to 15 minutes trying to scour the internet to see why they aren't compatible, even on my live deploy.
Give token vault a whirl, with it, I am able to give my agents the power to connect to an app depending on the task securely without bothering about leaking any personal information on the user by error or design. They are made by auth0 after all so you know it's the best when it comes to security design. Try out the app at Act agent and let me know what you think. I started building a bit late but I think I got the hang of it for the most part, you may experience some bugs but that will be fixed in later iterations as time goes on, after the judging of course. Have fun, I may write this in my medium article as I do with most of my projects. Well, till then, tata.
Built With
- auth0
- langchain
- nuxt
- postgresql
- redis
- typescript
Log in or sign up for Devpost to join the conversation.