Skip to content

Commit 06a7a82

Browse files
authored
Merge pull request #76 from vortezwohl/autono
UPDATE: Rename project ceo-py to autono.
2 parents d38dd49 + 47f8fb9 commit 06a7a82

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+166
-463
lines changed

CITATION.cff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ authors:
99
- Fujian University of Technology
1010
email: vortez.wohl@gmail.com
1111
github: https://github.com/vortezwohl
12-
title: CEO-Autonomous-Agent-Framework
13-
version: 0.13.1
14-
date-released: 2024-10-25
12+
title: Autono: A ReAct-Based Highly Robust Autonomous Agent Framework
13+
version: 1.0.0
14+
date-released: 2025-04-06
1515
abstract: >
16-
This research proposes a lightweight autonomous agent framework based on the ReAct paradigm, designed to solve complex tasks through adaptive decision making and multi-agent collaboration. Unlike traditional frameworks that rely on fixed workflows generated by an LLM-based scheduler, this framework dynamically generates next actions during agent execution based on prior trajectories, which enhances their robustness. To address potential termination issues caused by adaptive execution paths, I propose a timely abandonment strategy with a probabilistic penalty mechanism. For multi-agent collaboration, I introduce a memory transfer mechanism that enables shared and dynamically updated memory among agents. The framework's innovative timely abandonment strategy dynamically adjusts the probability of task abandonment via probabilistic penalties, allowing developers to balance conservative and exploratory tendencies in agent execution strategies by tuning hyperparameters. This significantly improves adaptability and task efficiency in complex environments. Additionally, agents can be expanded through external tool use, supported by modular design and MCP protocol compatibility for flexible action space expansion. Through explicit division of labor, the multi-agent collaboration mechanism enables agents to focus on specific task components, thereby significantly improving execution efficiency and quality.
16+
This paper (project) proposes a highly robust autonomous agent framework based on the ReAct paradigm, designed to solve complex tasks through adaptive decision making and multi-agent collaboration. Unlike traditional frameworks that rely on fixed workflows generated by LLM-based planners, this framework dynamically generates next actions during agent execution based on prior trajectories, thereby enhancing its robustness. To address potential termination issues caused by adaptive execution paths, I propose a timely abandonment strategy incorporating a probabilistic penalty mechanism. For multi-agent collaboration, I introduce a memory transfer mechanism that enables shared and dynamically updated memory among agents. The framework's innovative timely abandonment strategy dynamically adjusts the probability of task abandonment via probabilistic penalties, allowing developers to balance conservative and exploratory tendencies in agent execution strategies by tuning hyperparameters. This significantly improves adaptability and task execution efficiency in complex environments. Additionally, agents can be extended through external tool integration, supported by modular design and MCP protocol compatibility, which enables flexible action space expansion. Through explicit division of labor, the multi-agent collaboration mechanism enables agents to focus on specific task components, thereby significantly improving execution efficiency and quality.
1717
keywords:
18-
- LLM
19-
- Autonomous Agent
2018
- ReAct
19+
- Robustness
20+
- Autonomous Agent
2121
- Multi-Agent
2222
license: GPL-3.0
23-
url: https://github.com/vortezwohl/CEO-Autonomous-Agent-Framework
23+
url: https://github.com/vortezwohl/Autono

README.md

Lines changed: 37 additions & 334 deletions

ceo/__init__.py renamed to autono/__init__.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@
2626

2727
__AUTHOR__ = '吴子豪 / Vortez Wohl'
2828
__EMAIL__ = 'vortez.wohl@gmail.com'
29-
__VERSION__ = '0.13.1'
29+
__VERSION__ = '1.0.0'
3030
__GITHUB__ = 'https://github.com/vortezwohl'
3131
__BLOG__ = 'https://vortezwohl.github.io'
3232

33-
logger = logging.getLogger('ceo')
33+
logger = logging.getLogger('autono')
3434
logger.setLevel(logging.ERROR)
3535
console_handler = logging.StreamHandler()
3636
console_handler.setLevel(logging.DEBUG)
3737
formatter = logging.Formatter('[%(levelname)s] %(asctime)s %(name)s : %(message)s')
3838
console_handler.setFormatter(formatter)
3939
logger.addHandler(console_handler)
4040

41-
logger = logging.getLogger('ceo.prompt')
41+
logger = logging.getLogger('autono.prompt')
4242
logger.setLevel(logging.ERROR)
43-
logger = logging.getLogger('ceo.ability')
43+
logger = logging.getLogger('autono.ability')
4444
logger.setLevel(logging.ERROR)
45-
logger = logging.getLogger('ceo.agent')
45+
logger = logging.getLogger('autono.agent')
4646
logger.setLevel(logging.ERROR)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
from typing_extensions import Callable, override
55

6-
from ceo.util.synchronized_call import synchronized_call
7-
from ceo.ability.base_ability import BaseAbility
6+
from autono.util.synchronized_call import synchronized_call
7+
from autono.ability.base_ability import BaseAbility
88

99

1010
class Ability(BaseAbility):
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@
44

55
from typing_extensions import override
66

7-
from ceo.ability.ability import Ability
8-
from ceo.brain.memory_augment import MemoryAugment
7+
from autono.ability.ability import Ability
8+
from autono.brain.memory_augment import MemoryAugment
99

1010
PREFIX = '__AgenticAbility__'
1111

12-
from ceo.brain.hook.after_action_taken import BaseHook
13-
from ceo.brain.base_agent import BaseAgent
12+
from autono.brain.hook.after_action_taken import BaseHook
13+
from autono.brain.base_agent import BaseAgent
1414

15-
log = logging.getLogger('ceo.ability')
15+
log = logging.getLogger('autono.ability')
1616

1717

1818
class AgenticAbility(Ability):
1919
def __init__(self, agent: BaseAgent | MemoryAugment):
2020
try:
2121
_test_mem = agent.memory
2222
except AttributeError:
23-
raise TypeError("The 'agent' of AgenticAbility should be instance of 'ceo.Agent'.")
23+
raise TypeError("The 'agent' of AgenticAbility should be instance of 'autono.Agent'.")
2424
self._agent = agent
2525
self.__name__ = f'{PREFIX}talk_to_{agent.name}'
2626
self.__doc__ = json.dumps({
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from mcp import ClientSession
44
from mcp.types import Tool, CallToolResult
55

6-
from ceo.ability.base_ability import BaseAbility
6+
from autono.ability.base_ability import BaseAbility
77

88
DEFAULT_RETURNS = "<class 'str'>"
99
NONE = '/'
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
from typing_extensions import override
44

5-
from ceo.ability.agentic_ability import AgenticAbility
6-
from ceo.brain.base_agent import BaseAgent
5+
from autono.ability.agentic_ability import AgenticAbility
6+
from autono.brain.base_agent import BaseAgent
77

88

99
class McpAgenticAbility(AgenticAbility):

0 commit comments

Comments
 (0)