A multi-agent collaborative development framework built on phidata, supporting configurable workflows and intelligent toolchains
Features β’ Quick Start β’ Documentation β’ Contributing β’ License
- Pre-configured Professional Roles: Product Manager, Tech Lead, Senior Engineer, QA Engineer
- Workflow-based Collaboration: Clear state transitions and task flow
- Well-defined Role Responsibilities: Each Agent focuses on specific domains, improving collaboration efficiency
- JSON Configuration Files: Define agents and workflows through configuration files without code changes
- Standardized Validation: Ensures correctness and completeness of configuration files
- Multi-model Support: Supports multiple language models (via phidata), including AWS Bedrock (Claude)
- Core Tools:
FileManager: Unified file operation interfaceDevOps: Environment management and deployment operationsDuckDuckGo: Web search capabilities
- Extensible Architecture: Tool configuration separated from implementation, easy to extend new tools
- Permission Control: Supports tool-level permission management
- State-driven Engine: Workflow execution based on state machines
- Configurable State Transitions: Define state transition rules through configuration files
- Complete Validation: Ensures correct workflow execution
- Serial and Parallel Execution: Supports complex workflow scenarios
nimship-agent/
βββ agents/ # Agent implementations
β βββ base_agent.py # Agent base class
βββ config/ # Configuration files
β βββ agents/ # Agent configurations
β βββ workflows/ # Workflow configurations
β βββ tools/ # Tool configurations
β βββ system.config.json # System configuration
βββ docs/ # Documentation
β βββ workflow_developer.md
β βββ AGENT_DESIGN.md
βββ tests/ # Test cases
β βββ integration/ # Integration tests
β βββ tools/ # Tool tests
βββ tools/ # Tool implementations
βββ utils/ # Utility functions
βββ workflows/ # Workflow implementations
βββ main.py # Main entry point
βββ requirements.txt # Dependencies
βββ README.md # Project documentation
- Python 3.9+
- Virtual environment management tool (recommended:
venv)
-
Clone the repository
git clone https://github.com/ovenzeze/nimship-agent.git cd nimship-agent -
Create a virtual environment
python3.9 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Environment configuration
Create a
.envfile and configure necessary environment variables:# AWS configuration (for Bedrock) AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_REGION=us-east-1 # Phidata API Key (if needed) PHI_API_KEY=your_phi_api_key
python main.pypython main.py --workflow developerpython main.py --mode ui- Configuration file location:
config/agents/directory - File suffix:
.agent.json - Required fields:
name,description,model,tools
Example configuration structure:
{
"name": "engineer",
"description": "Senior Engineer",
"model": "anthropic.claude-instant-v1",
"tools": ["file_manager", "git"]
}- Configuration file location:
config/workflows/directory - File suffix:
.workflow.json - Required definitions: State transitions and conditions
- Unit tests:
tests/directory - Integration tests:
tests/integration/directory - Run tests:
pytest tests/
For more development guidelines, please refer to DEV_GUIDE.md
- π Workflow Development Guide - Learn how to create and configure workflows
- π Agent Design Document - Agent architecture and design philosophy
- π Developer Guide - Development environment setup and common tasks
- π Test Architecture - Testing framework and best practices
The project is currently in active development:
- β Completed basic configuration system
- β Completed workflow framework design
- β Implemented core functional modules
- π§ Improving test coverage
- π§ Performance optimization
- π Documentation improvements
To use remote development features, you need to configure:
- VSCode Server
- SSH key authentication
- Git and GitHub configuration
Main dependencies:
phidata- AI application frameworkboto3- AWS SDK (for Bedrock)paramiko- SSH connections (for remote operations)pytest- Testing frameworkpython-dotenv- Environment variable managementrich- Terminal output formatting
We welcome all forms of contributions! Please check CONTRIBUTING.md for detailed contribution guidelines.
Quick start:
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- Built on the phidata framework
- Thanks to all contributors for their support
If this project helps you, please give it a β Star!
Made with β€οΈ by the Nimship Agent Team