▲ | Show HN: Pickaxe – a TypeScript library for building AI agents(github.com) | |||||||
6 points by abelanger 2 days ago | 6 comments | ||||||||
Hey HN, Gabe and Alexander here from Hatchet. Today we're releasing Pickaxe, a Typescript library to build AI agents which are scalable and fault-tolerant. Here's a demo: https://github.com/user-attachments/assets/b28fc406-f501-442... Pickaxe provides a simple set of primitives for building agents which can automatically checkpoint their state and suspend or resume processing (also known as durable execution) while waiting for external events (like a human in the loop). The library is based on common patterns we've seen when helping Hatchet users run millions of agent executions per day. Unlike other tools, Pickaxe is not a framework. It does not have any opinions or abstractions for implementing agent memory, prompting, context, or calling LLMs directly. Its only focus is making AI agents more observable and reliable. As agents start to scale, there are generally three big problems that emerge: 1. Agents are long-running compared to other parts of your application. Extremely long-running processes are tricky because deploying new infra or hitting request timeouts on serverless runtimes will interrupt their execution. 2. They are stateful: they generally store internal state which governs the next step in the execution path 3. They require access to lots of fresh data, which can either be queried during agent execution or needs to be continuously refreshed from a data source. (These problems are more specific to agents which execute remotely -- locally running agents generally don't have these problems) Pickaxe is designed to solve these issues by providing a simple API which wraps durable execution infrastructure for agents. Durable execution is a way of automatically checkpointing the state of a process, so that if the process fails, it can automatically be replayed from the checkpoint, rather than starting over from the beginning. This model is also particularly useful when your agent needs to wait for an external event or human review in order to continue execution. To support this pattern, Pickaxe uses a Hatchet feature called `waitFor` which durably registers a listener for an event, which means that even if the agent isn't actively listening for the event, it is guaranteed to be processed by Hatchet and stored in the execution history and resume processing. This infrastructure is powered by what is essentially a linear event log, which stores the entire execution history of an agent in a Postgres database managed by Hatchet. Full docs are here: https://pickaxe.hatchet.run/ We'd greatly appreciate any feedback you have and hope you get the chance to try out Pickaxe. | ||||||||
▲ | almosthere 2 days ago | parent | next [-] | |||||||
What I really like about it, is that this kind of project helps people learn what an agent is. | ||||||||
| ||||||||
▲ | randomcatuser 2 days ago | parent | prev | next [-] | |||||||
Oh this is really cool! I was building out a bit of this with Restate this past week, but this seems really well put together :) will give it a try! | ||||||||
| ||||||||
▲ | zegl 2 days ago | parent | prev [-] | |||||||
As a long time Hatchet user, I understand why you’ve created this library, but it also disappoints me a little bit. I wish more engineering time was spent on making the core platform more stable and performant. | ||||||||
|