{"id":25424792,"url":"https://github.com/reku-push/AI-Agent-Framework","last_synced_at":"2025-10-31T15:30:24.792Z","repository":{"id":277153079,"uuid":"905335960","full_name":"atlas-2192/AI-Agent-Framework","owner":"atlas-2192","description":"Python AI agent Framework","archived":false,"fork":false,"pushed_at":"2025-02-12T11:41:49.000Z","size":1048,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T12:49:52.250Z","etag":null,"topics":["actor-model","agent","ai","ai-agent","api","artificial-intelligence","autonomous-agent","framework","llm","machine-learning","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atlas-2192.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-18T16:08:35.000Z","updated_at":"2025-02-12T11:41:52.000Z","dependencies_parsed_at":"2025-02-12T12:49:58.980Z","dependency_job_id":"f546a704-6d69-4f99-84e6-3030bb234fb0","html_url":"https://github.com/atlas-2192/AI-Agent-Framework","commit_stats":null,"previous_names":["atlas-2192/ai-agent-framework"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-2192%2FAI-Agent-Framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-2192%2FAI-Agent-Framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-2192%2FAI-Agent-Framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atlas-2192%2FAI-Agent-Framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atlas-2192","download_url":"https://codeload.github.com/atlas-2192/AI-Agent-Framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239207392,"owners_count":19599966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actor-model","agent","ai","ai-agent","api","artificial-intelligence","autonomous-agent","framework","llm","machine-learning","python"],"created_at":"2025-02-16T23:17:50.035Z","updated_at":"2025-10-31T15:30:24.763Z","avatar_url":"https://github.com/atlas-2192.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Summary\n\nAgency is a python library that provides an [Actor\nmodel](https://en.wikipedia.org/wiki/Actor_model) framework for creating\nagent-integrated systems.\n\nThe library provides an easy to use API that enables you to connect agents with\ntraditional software systems in a flexible and scalable way, allowing you to\ndevelop any architecture you need.\n\nAgency's goal is to enable developers to create custom agent-based applications\nby providing a minimal foundation to both experiment and build upon. So if\nyou're looking to build a custom agent system of your own, Agency might be for\nyou.\n\n## Features\n\n### Easy to use API\n* Straightforward class/method based agent and action definition\n* [Up to date documentation](https://createwith.agency) and [examples](./examples/demo/) for reference\n\n### Performance and Scalability\n* Supports multiprocessing and multithreading for concurrency\n* AMQP support for networked agent systems\n\n### Observability and Control\n* Action and lifecycle callbacks\n* Access policies and permission callbacks\n* Detailed logging\n\n### Demo application available at [`examples/demo`](./examples/demo/)\n* Multiple agent examples for experimentation\n  * Two OpenAI agent examples\n  * HuggingFace transformers agent example\n  * Operating system access\n* Includes Gradio UI\n* Docker configuration for reference and development\n\n\n# API Overview\n\nIn Agency, all entities are represented as instances of the `Agent` class. This\nincludes all AI-driven agents, software interfaces, or human users that may\ncommunicate as part of your application.\n\nAll agents may expose \"actions\" that other agents can discover and invoke at run\ntime. An example of a simple agent could be:\n\n```python\nclass CalculatorAgent(Agent):\n    @action\n    def add(a, b):\n        return a + b\n```\n\nThis defines an agent with a single action: `add`. Other agents will be able\nto call this method by sending a message to an instance of `CalculatorAgent` and\nspecifying the `add` action. For example:\n\n```python\nother_agent.send({\n    'to': 'CalcAgent',\n    'action': {\n        'name': 'add',\n        'args': {\n            'a': 1,\n            'b': 2,\n        }\n    },\n})\n```\n\nActions may specify an access policy, allowing you to control access for safety.\n\n```python\n@action(access_policy=ACCESS_PERMITTED) # This allows the action at any time\ndef add(a, b):\n    ...\n\n@action(access_policy=ACCESS_REQUESTED) # This requires review before the action\ndef add(a, b):\n    ...\n```\n\nAgents may also define callbacks for various purposes:\n\n```python\nclass CalculatorAgent(Agent):\n    ...\n    def before_action(self, message: dict):\n        \"\"\"Called before an action is attempted\"\"\"\n\n    def after_action(self, message: dict, return_value: str, error: str):\n        \"\"\"Called after an action is attempted\"\"\"\n\n    def after_add(self):\n        \"\"\"Called after the agent is added to a space and may begin communicating\"\"\"\n\n    def before_remove(self):\n        \"\"\"Called before the agent is removed from the space\"\"\"\n```\n\nA `Space` is how you connect your agents together. An agent cannot communicate\nwith others until it is added to a common `Space`.\n\nThere are two included `Space` implementations to choose from:\n* `LocalSpace` - which connects agents within the same application.\n* `AMQPSpace` - which connects agents across a network using an AMQP\n  server like RabbitMQ.\n\nFinally, here is a simple example of creating a `LocalSpace` and adding two\nagents to it.\n\n```python\nspace = LocalSpace()\nspace.add(CalculatorAgent, \"CalcAgent\")\nspace.add(MyAgent, \"MyAgent\")\n# The agents above can now communicate\n```\n\nThese are just the basic features that Agency provides. For more information\nplease see [the help site](https://createwith.agency).\n\n\n# Install\n\n```sh\npip install agency\n```\nor\n```sh\npoetry add agency\n```\n\n\n# The Demo Application\n\nThe demo application is maintained as an experimental development environment\nand a showcase for library features. It includes multiple agent examples which\nmay communicate with eachother and supports a \"slash\" syntax for invoking\nactions as an agent yourself.\n\nTo run the demo, please follow the directions at\n[examples/demo](./examples/demo/).\n\nThe following is a screenshot of the Gradio UI that demonstrates the example\n`OpenAIFunctionAgent` following orders and interacting with the `Host` agent.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.ibb.co/h29m5S4/Screenshot-2023-07-26-at-4-53-05-PM.png\"\n      alt=\"Screenshot-2023-07-26-at-4-53-05-PM\" border=\"0\"\u003e\n\u003c/p\u003e\n\n\n\n# Contributing\n\nPlease do!\n\nIf you're considering a contribution, please check out the [contributing\nguide](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freku-push%2FAI-Agent-Framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freku-push%2FAI-Agent-Framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freku-push%2FAI-Agent-Framework/lists"}