1.6 KiB
1.6 KiB
Tool Management
SIA uses and creates tools to extend its capabilities.
A tool in the SIA context refers to a clearly packaged software component that provides specific functionality.
This document outlines how tools are structured, managed, and developed.
All tools reside in the /root/sia/tools/ directory and are part of the main git repository.
Typical patterns
Tools in SIA follow these established patterns:
- Independence: Each tool functions as a standalone component with clear boundaries
- Python: The preferred language for tools is Python
- Installation: The Dockerfile and bootstrap script intall all tools in the directory using
pip install -e - Documentation: Each tool has a README.md file that provides requirements, usage instructions and documentation
- Modification: Tools can be modified by SIA as part of its self-improvement process
- Procedures: Tools are created to support procedures
- Training: No separate training data is maintained, this is included in the procedure training
Tool Directory Structure
Each tool follows a consistent structure:
tools/
└── tool_name/
├── README.md # Documentation
├── requirements.txt # Tool-specific dependencies
├── setup.py # Installation configuration
├── tool_name/ # Main package code
│ └── __init__.py
├── bin/ # Command-line executables
│ └── tool_command
└── test/ # Tool-specific tests
└── test_tool.py