diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..a299d0a --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,52 @@ +name: Deploy GitHub Pages + +on: + push: + branches: ["main"] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.x" + + - name: Install MkDocs and dependencies + run: pip install mkdocs-material + + - name: Build site + run: mkdocs build --strict + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: site + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 19a08a3..7a440d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Microbots Project Specific +.playwright-mcp/ # Log files *.log @@ -201,9 +202,9 @@ cython_debug/ .abstra/ # Visual Studio Code -# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore -# and can be added to the global gitignore or merged into this file. However, if you prefer, +# and can be added to the global gitignore or merged into this file. However, if you prefer, # you could uncomment the following to ignore the entire vscode folder # .vscode/ diff --git a/docs/images/overall_architecture.png b/docs/images/overall_architecture.png index 8f91f7d..f3d7b4b 100644 Binary files a/docs/images/overall_architecture.png and b/docs/images/overall_architecture.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..97ca984 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,64 @@ +# 🤖 Microbots + +MicroBots is a lightweight, extensible AI agent for code comprehension and controlled file edits. It integrates cleanly into automation pipelines, mounting a target directory with explicit read-only or read/write modes so LLMs can safely inspect, refactor, or generate files with least-privilege access. + +## 🚀 Quick Start + +### Pre-requisites + +- Docker +- AI LLM Provider and API Key + +### Install + +```bash +pip install microbots +``` + +### Example + +```python +from microbots import WritingBot + +myWritingBot = WritingBot( + model="azure-openai/my-gpt5", + folder_to_mount=str("myReactApp"), +) + +data = myWritingBot.run( + "Fix the build error and make sure the build is successful.", + timeout_in_seconds=600, +) +print(data.results) +``` + +## 🤖 Available Bots + +| Bot | Description | +|-----|-------------| +| **ReadingBot** | Reads files and extracts information based on instructions (read-only) | +| **WritingBot** | Reads and writes files based on instructions (read/write) | +| **BrowsingBot** | Browses the web to gather information | +| **LogAnalysisBot** | Analyzes logs for debugging | +| **AgentBoss** | Orchestrates multiple bots for complex tasks | + +## ⚙️ How it works + +![Overall Architecture](images/overall_architecture.png) + +MicroBots creates a containerized environment and mounts the specified directory, restricting permissions to read-only or read/write based on the Bot used. This ensures AI agents operate within defined boundaries, enhancing security and control over code modifications while protecting the local environment. + +## ✨ LLM Support + +Azure OpenAI Models — add environment variables in a `.env` file: + +```env +OPEN_AI_END_POINT=your-endpoint-url +OPEN_AI_KEY=your-api-key +``` + +## 📚 Links + +- [GitHub Repository](https://github.com/microsoft/minions) +- [Contributing Guide](https://github.com/microsoft/minions/blob/main/CONTRIBUTING.md) +- [Code of Conduct](https://github.com/microsoft/minions/blob/main/CODE_OF_CONDUCT.md) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..0002fed --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,41 @@ +site_name: Microbots +site_url: https://microsoft.github.io/microbots +site_description: A lightweight, extensible AI agent for code comprehension and controlled file edits. +repo_url: https://github.com/microsoft/microbots +repo_name: microsoft/microbots + +theme: + name: material + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: Switch to light mode + features: + - navigation.instant + - navigation.sections + - navigation.top + - content.code.copy + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - admonition + - tables + - attr_list + +nav: + - Home: index.md