--- title: AgentMask - Secure Multi-Agent System emoji: ๐ก๏ธ colorFrom: green colorTo: red sdk: gradio sdk_version: 5.0.0 app_file: app.py pinned: false tags: - mcp-in-action-track-enterprise - agent - security - langgraph - merkle-tree - multi-agent - ecdsa --- # ๐ก๏ธ AgentMask - Secure Multi-Agent System > **"Don't Trust, Verify."** โ Transparent, Auditable, and Immutable Reasoning Layer for AI Agents. [](https://python.org) [](https://fastapi.tiangolo.com) []() []() ## ๐ฌ Demo & Submission Watch the system in action and check out our official submission post: [](https://youtu.be/d5VVxeBY1Ak) [-View%20Post-black?style=for-the-badge&logo=x)](https://x.com/SDogan_n/status/1995246903232246076?s=20) --- ## ๐ Hackathon Track This project was developed for the **MCP 1st Birthday Hackathon**. - **Track:** `Track 2: MCP in Action` - **Category Tag:** `mcp-in-action-track-enterprise` --- ## ๐ก Problem: The Black Box Issue Autonomous AI agents are performing increasingly complex tasks. However, there is a critical problem: > **How can you prove why an agent made a decision or if it was manipulated during the process?** In current systems, logs can be deleted or altered, and the agent's thought process remains a **black box**. --- ## ๐ Solution: Cryptographic "Chain-of-Checks" AgentMask provides not just a "Chain-of-Thought," but a **"Chain-of-Checks" (Audit Chain)**. ### Key Features | Feature | Description | |---------|-------------| | ๐ค **Multi-Agent Orchestration** | Modular agent architecture with parallel and sequential execution | | ๐ **Merkle Tree Audit Trail** | Every step is hashed with SHA-256, immutable | | โ๏ธ **ECDSA Block Signing** | Blocks are cryptographically signed (secp256k1) | | ๐ **Real Web Search** | DuckDuckGo/Serper integration with fallback support | | ๐ **Developer Console** | Monitoring with real-time graph visualization | | โก **Parallel Execution** | Concurrent agent execution with asyncio.gather | | ๐พ **Append-Only Ledger** | WORM (Write-Once-Read-Many) JSON storage | --- ## ๐๏ธ Architecture ``` โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ฅ๏ธ Developer Console (FastAPI) โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ POST /run โ โ GET / โ โ GET /health โ โ โ โ Task Execute โ โ Console UI โ โ Health Check โ โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ง Orchestrator (The Brain) โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ Task โ ResearchAgent โ SummarizerAgent โ Final Output โ โ โ โ (parallel execution support) โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ โผ โผ โผ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ ๐ ResearchAgent โ โ ๐ SummarizerAgentโ โ ๐ง Future Agents โ โ - Web Search โ โ - Text Summary โ โ - Critic โ โ - DuckDuckGo โ โ - Doc Analysis โ โ - Validator โ โ - Serper API โ โ โ โ - Planner โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ โผ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ Ledger (The Vault) โ โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโ โ โ โ LedgerStoreโ โ Merkle Treeโ โ ECDSA Sign โ โ JSON โ โ โ โ Entries โโ โ Root Hash โโ โ Blocks โโ โ Storage โ โ โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ``` --- ## ๐ Proje Tructure ``` AgentMask/ โโโ pyproject.toml # Proje konfigรผrasyonu & baฤฤฑmlฤฑlฤฑklar โโโ README.md # this file โ โโโ src/ # Ana kaynak kod โ โโโ __init__.py โ โโโ orchestrator.py # Multi-agent koordinasyonu โ โ โ โโโ agents/ # Agent modรผlleri โ โ โโโ __init__.py โ โ โโโ base.py # BaseAgent abstract class โ โ โโโ research_agent.py # Web search agent โ โ โโโ summarizer_agent.py # Text summarization agent โ โ โโโ parallel.py # Parallel execution utilities โ โ โ โโโ ledger/ # Kriptografik denetim katmanฤฑ โ โ โโโ __init__.py โ โ โโโ merkle.py # Merkle tree calculation โ โ โโโ store.py # Append-only ledger storage โ โ โโโ signing.py # ECDSA imzalama โ โ โ โโโ tools/ # Harici araรงlar โ โ โโโ __init__.py โ โ โโโ searcher.py # Web search abstraction โ โ โ โโโ web/ # Web arayรผzรผ โ โโโ __init__.py โ โโโ app.py # FastAPI application โ โโโ tests/ # Test dosyalarฤฑ โโโ __init__.py โโโ test_agents.py # Agent testleri โโโ test_ledger.py # Ledger & signing testleri โโโ test_search_integration.py # Search entegrasyon testleri โโโ test_web_console.py # Web API testleri ``` --- ## ๐ Installation ### Requirements - Python 3.10+ - pip ### Steps ```bash # 1. Clone the repo git clone [https://github.com/yourusername/AgentMask.git](https://github.com/yourusername/AgentMask.git) cd AgentMask # 2. Create virtual environment python -m venv .venv # 3. Activate # Windows: .\.venv\Scripts\activate # Linux/Mac: source .venv/bin/activate # 4. Install dependencies pip install -e ".[dev]" ``` --- ## ๐งช Running Tests Bash # Run all tests .\.venv\Scripts\python.exe -m pytest -v # Run a specific test file .\.venv\Scripts\python.exe -m pytest tests/test_agents.py -v # Run with coverage .\.venv\Scripts\python.exe -m pytest --cov=src -v Test Results: โ 44 tests passed --- ## ๐ฅ๏ธ Running Developer Console Bash # Start the web server cd src/web uvicorn app:app --reload --port 8000 # Open in browser # http://localhost:8000 ๐จ Terminal-Style Hacker UI The Developer Console features a terminal-style interface that emphasizes security and transparency: โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ AgentMask Terminal โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ โ โ [root@agentmask]$ Enter query... โ [โบ EXECUTE] โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ > EXECUTION LOG_ โ > AGENT PIPELINE GRAPH_ โ โ โโโโโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ ๐ MERKLE ROOT HASH: โ โ โ [Flow] [Sequence] [Merkle] โ โ โ โ a7f3b2c1d4e5f6... โ โ โ โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโ โ โ ๐ฅ โ ๐ โ ๐ โ โ โ โ โ โ โ โ โ โโ STEP 1 โโโโโโโโโโโโโโ โ โ Mermaid.js ile interaktif โ โ โ โ [RESEARCH] โ โ โ graph visualization โ โ โ โ SHA256: 8a4f2b... โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ > View I/O Data_ โ โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ โ โ โโ STEP 2 โโโโโโโโโโโโโโ โ โ โ โ [SUMMARIZER] โ โ โ โ โ SHA256: c3d7e1... โ โ โ โ โโโโโโโโโโโโโโโโโโโโโโโโ โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ``` ### Console Features Feature Description ๐ฅ๏ธ Terminal Aesthetic Neon green (#00ff41) + red (#ff0040) hacker theme ๐ Flow Graph Agent pipeline visualization (Mermaid.js) ๐ Sequence Diagram Agent communication sequence ๐ณ Merkle Tree View Interactive hash tree visualization ๐ Execution Log Detailed I/O log for each step ๐ Merkle Root Cryptographic verification hash โก Real-time Real-time result display ๐ฑ Responsive Mobile responsive design --- ## ๐ง API Endpoints | Endpoint | Method | Description | |----------|--------|----------| | `/` | GET | Developer Console UI | | `/run` | POST | Execute task, get results | | `/health` | GET | Health check | ### POST /run Example ```bash curl -X POST http://localhost:8000/run \ -H "Content-Type: application/json" \ -d '{"query": "AI in healthcare diagnosis"}' ``` **Response:** ```json { "success": true, "task": {"query": "AI in healthcare diagnosis"}, "steps": [ { "step": 1, "agent": "research", "hash": "a1b2c3...", "output": {"results": [...]} }, { "step": 2, "agent": "summarizer", "hash": "d4e5f6...", "output": {"summary": "..."} } ], "merkle_root": "abc123...", "total_steps": 2 } ``` --- ## ๐ Security Features ### Merkle Tree Audit Trail Every agent step is hashed with SHA-256 and added to a Merkle tree: ```python from ledger.merkle import compute_merkle_root, hash_leaf # Hash a single leaf leaf_hash = hash_leaf("agent action data") # Compute Merkle root leaves = ["step1", "step2", "step3"] root = compute_merkle_root(leaves) ``` ### ECDSA Block Signing Blocks are signed using the secp256k1 curve: ```python from ledger.signing import ECDSASigner # Generate key pair signer = ECDSASigner() # Sign signature = signer.sign(block_hash) # Verify is_valid = signer.verify(block_hash, signature) ``` ### Append-Only Ledger ```python from ledger.store import LedgerStore # Create Ledger store = LedgerStore(storage_path="ledger.json") # Add Entry store.add_entry("search", "research", input_data, output_data) # Create and sign block block = store.create_block(signer=signer) # Verify chain is_valid, message = store.verify_chain() ``` --- ## ๐ฎ Roadmap - [x] **Stage 1**: Multi-Agent core implementation - [x] **Stage 2**: Developer Console (FastAPI + UI) - [x] **Stage 3**: Gerรงek Web Search integration - [x] **Stage 4**: Ledger, ECDSA Signing, Parallel Agents - [ ] **Stage 5**: LLM integration (OpenAI/Anthropic) - [ ] **Stage 6**: Critic & Validator agents - [ ] **Stage 7**: WebSocket real-time streaming - [ ] **Stage 8**: Distributed ledger (multi-node) --- ## ๐ License MIT License - See the LICENSE file for details. ---
๐ก๏ธ AgentMask - Trust Through Transparency
"Every decision, every step, cryptographically verifiable."