Skip to content

Commit

Permalink
v1.6.0rc (#149)
Browse files Browse the repository at this point in the history
  • Loading branch information
operand authored Sep 26, 2023
1 parent 6d61a43 commit 8e47cd1
Show file tree
Hide file tree
Showing 42 changed files with 1,854 additions and 1,823 deletions.
59 changes: 37 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ agent-integrated systems.

The library provides an easy to use API that enables you to connect agents with
traditional software systems in a flexible and scalable way, allowing you to
develop the architecture you need.

Agency's goal is to enable others to create custom agent-based applications by
providing a minimal foundation to both experiment and build upon. So if you're
looking to build a custom agent system of your own, Agency might be for you.
develop any architecture you need.

Agency's goal is to enable developers to create custom agent-based applications
by providing a minimal foundation to both experiment and build upon. So if
you're looking to build a custom agent system of your own, Agency might be for
you.

## Features

Expand Down Expand Up @@ -46,8 +46,8 @@ looking to build a custom agent system of your own, Agency might be for you.
# API Overview

In Agency, all entities are represented as instances of the `Agent` class. This
includes all AI-driven agents, traditional software systems, or human users that
may communicate as part of your application.
includes all AI-driven agents, software interfaces, or human users that may
communicate as part of your application.

All agents may expose "actions" that other agents can discover and invoke at run
time. An example of a simple agent could be:
Expand Down Expand Up @@ -109,26 +109,23 @@ class CalculatorAgent(Agent):
A `Space` is how you connect your agents together. An agent cannot communicate
with others until it is added to a common `Space`.

There are three included `Space` implementations to choose from:
* `ThreadSpace` - which distributes and connects agents using
multithreading, suitable for simple applications and testing.
* `MultiprocessSpace` - which distributes agents using the
multiprocessing module, for better parallelism.
* `AMQPSpace` - which distributes agents across a network using an AMQP
There are two included `Space` implementations to choose from:
* `LocalSpace` - which connects agents within the same application.
* `AMQPSpace` - which connects agents across a network using an AMQP
server like RabbitMQ.

Finally, here is a simple example of creating a `MultiprocessSpace` and adding two
Finally, here is a simple example of creating a `LocalSpace` and adding two
agents to it.

```python
space = MultiprocessSpace()
space = LocalSpace()
space.add(CalculatorAgent, "CalcAgent")
space.add(MyAgent, "MyAgent")
# The agents above can now communicate
```

These are just a few of the features that Agency provides. For more detailed
information please see [the help site](https://createwith.agency).
These are just the basic features that Agency provides. For more information
please see [the help site](https://createwith.agency).


# Install
Expand Down Expand Up @@ -163,14 +160,32 @@ The following is a screenshot of the Gradio UI that demonstrates the example

# FAQ

## How does Agency compare to other agent libraries?
## What is Agency?

Agency is driven by a vision of the future where intelligent agents are
ubiquitous, powerful, and _free_. A future where agents work for us and have the
freedom to act upon systems as they see fit. In this vision, human driven
software takes a backseat to AI driven software. Why implement an interface when
an agent can build it for you as needed?

By providing a minimal messaging-based foundation that is usable not only by
humans but _by the agents themselves_, we create a common base environment that
allows AI developers to observe, train, and work with their agents
hand-in-artificial-hand.

This project seeks to enable others to experiment and create agent-based systems
of their own. I hope it helps you explore this exciting new technology, and I
hope that you use it to help others.


## How does Agency compare to other agent frameworks?

Though you could entirely create a simple agent using only the primitives in
Agency (see [`examples/demo/agents/`](./examples/demo/agents/)), it is not
intended to be an all-inclusive toolset like other libraries. For example, it
does not include support for constructing prompts or working with vector
databases, etc. Implementation of agent behavior is left up to you, and you are
free to use other libraries as needed for those purposes.
intended to be an all-inclusive LLM-oriented toolset like other libraries. For
example, it does not include support for constructing prompts or working with
vector databases. Implementation of agent behavior is left entirely up to you,
and you are free to use other libraries as needed for those purposes.

Agency focuses on the lower level concerns of communication, observation,
scalability, and security. The library strives to provide the operating
Expand Down
Loading

0 comments on commit 8e47cd1

Please # to comment.