# auto-agent **Repository Path**: mkwchecking/auto-agent ## Basic Information - **Project Name**: auto-agent - **Description**: 个人用多 agent 协作库 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Auto-Agent A multi-agent system based on MAF (Microsoft Agent Framework). ## Features - **Multi-channel Support**: Telegram, Discord, Slack, Feishu, DingTalk, WebSocket, Terminal - **Multi-agent Collaboration**: Handoff workflow for agent coordination - **Memory System**: Short-term and long-term memory with context engineering - **Skill System**: SKILL.md files for skill definition - **Tool System**: @tool decorator for tool registration - **Scheduled Tasks**: Cron and Heartbeat for task scheduling - **Approval System**: Safe handling of sensitive operations - **LLM Support**: Azure OpenAI, OpenAI, Anthropic, Ollama ## Requirements - Python >= 3.11 - Operating System: Linux, macOS, or Windows ## Installation ### Option 1: Using Installation Script (Recommended) **Linux/macOS:** ```bash ./install.sh ``` **Windows:** ```cmd install.bat ``` The script will: - Check for existing Python installations - Use system Python (>= 3.11) if available - Install Miniconda only if no suitable Python is found - Create a virtual environment and install dependencies ### Option 2: Manual Installation ```bash # Create virtual environment python -m venv .venv source .venv/bin/activate # Linux/macOS # or .venv\Scripts\activate # Windows # Install package pip install -e . ``` ## Quick Start ### Using run.sh (Linux/macOS) The `run.sh` script provides a convenient way to run the application: ```bash # CLI mode (interactive chat) ./run.sh cli # CLI with additional arguments ./run.sh cli chat ./run.sh cli config ./run.sh cli status # API server mode ./run.sh api # API server with custom host/port AUTO_AGENT_HOST=127.0.0.1 AUTO_AGENT_PORT=3000 ./run.sh api ``` ### CLI Mode ```bash # Interactive chat python -m auto_agent.app chat # Configuration management python -m auto_agent.app config # Show system status python -m auto_agent.app status ``` ### Server Mode ```bash # Start backend server python -m auto_agent.app server --api-port 8000 --ws-port 8765 ``` ### Programmatic Usage ```python from auto_agent import Application app = Application() await app.start() ``` ## Project Structure ``` auto-agent/ ├── src/auto_agent/ │ ├── app/ # Application layer │ │ ├── api/ # REST API routes │ │ ├── cli.py # CLI commands │ │ └── server.py # Backend server │ ├── core/ # Core components │ │ ├── agent/ # Agent definitions │ │ ├── llm/ # LLM providers │ │ ├── memory/ # Memory system │ │ ├── runner/ # Execution runner │ │ ├── skill/ # Skill system │ │ └── tool/ # Tool registry │ └── ext/ # Extensions │ ├── channel/ # Channel plugins │ ├── config/ # Configuration │ └── cron/ # Scheduling ├── tests/ # Test suite ├── install.sh # Unix installation script ├── install.bat # Windows installation script └── pyproject.toml # Project configuration ``` ## CLI Commands | Command | Description | |---------|-------------| | `chat` | Start interactive chat session | | `config` | Interactive configuration | | `status` | Show system status | | `channel start` | Start all channels | | `channel stop` | Stop all channels | | `channel list` | List all channels | | `llm list` | List LLM providers | | `llm activate ` | Activate LLM provider | ## Configuration Configuration is stored in `.auto-agent/config.db` (SQLite). Key configuration items: - `default_workflow`: Default workflow name - `websocket_host`: WebSocket server host - `websocket_port`: WebSocket server port ## Development ```bash # Run tests python -m pytest tests/ -v # Run linter ruff check src/ # Type check mypy src/ ``` ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.