Action System Refactor and Serialization Improvements
Version Update: 0.2.8 → 0.3.0
Major Changes
- Introduced a new
Action
class to formalize and standardize agent actions - Migrated from
pickle
todill
for better serialization support - Moved default actions (
talk
andthink
) to a dedicated module - Improved action management API with
add_action
,remove_action
, andexecute_action
methods
Key Features
- New Action Class: Actions are now first-class objects with clear interfaces and validation
- Better Action Management: More intuitive API for managing agent actions
- Improved Serialization: Using
dill
for better function serialization support - Cleaner Architecture: Default actions moved to
actions/default_actions.py
- Enhanced Type Safety: Added type hints and validation throughout
Breaking Changes
add_new_action()
replaced withadd_action()
- Action format changed from dictionary to
Action
class instances - Pickle files (.pickle) replaced with dill files (.dill)
Minor Updates
- Added
.DS_Store
to gitignore - Bumped version to 0.3.0
- Updated examples to use new action system
- Removed unused Environment import
- Added Action to
__all__
exports
Migration Guide
Creating custom actions
# Old way
agent.add_new_action(
{
"format": "[ACTION][param]",
"prompt": "Description",
"example": "[ACTION][value]"
},
action_function
)
# New way
agent.add_action(
Action(
name="action",
description="Description",
parameters=["param"],
function=action_function
)
)
Calling custom actions
# Old way
action_function(agent, "param_value")
# New way
agent.execute_action("action", "param_value")