Fury Agents Manifesto

Starting date: 21st October, 2023

ChainFury’s first commit was on 7th April, 2023. It has been about 6 months since then and it has undergone lot of production usage. With multiple API changes and engines, we are now at a stable place. This is also a good time to check up on the things that have released in the wild till now.

tl;dr

Predictable automated chains as agents, that use tree searching algorithms to find solution to a problem with given set of actions. Has ability to create new actions and learn from feedback.

Agents

There have been several “agent like” systems that have been released. Some can create code, others can perform advanced searching. Ultimately all of them can be modelled as a Chain and use different algorithms. chainfury can support all algorithms and has a type-based robust chaining engine. This means building agents is the next logical step. There is a lot of theory and academic research done on the topic of agents. All of them have different tradeoffs. But first let’s start with the requirements of an agent.

  • Agent should be able to execute task without human intervention

  • Agent should stop when it can’t proceed

  • Agent should be interruptible to take in feedback

  • Agent should take inputs from it’s environment

  • Agent should be able to remember things over time

  • Agent should be predictable in its behaviour, debuggable

Von-Neumann machine

We are followers of the agent as a Von-Neumann machine, which means each chain has a complete I/O mechanism where each input and output can be accessed independently. chainfury can use different memory systems like VectorDB, etc. meaning that it can persist data over time. For the CPU analogy we have chainfury.base.Chain which models the execution as a DAG of chainfury.base.Node objects. Each node contains the unit step of the chain. We can parallellise and speed up executions by using chainfury.utils.threaded_map.

chainfury is already being used in production and thus with the infrastructure layer sorted we can then think about what to build on top of it.

Automated

One of the most important things is that these agents be automated and run without human in the loop.

Edits