{"id":31667913,"url":"https://github.com/deniskropp/t20","last_synced_at":"2025-10-08T00:49:39.721Z","repository":{"id":305187712,"uuid":"1021996426","full_name":"deniskropp/t20","owner":"deniskropp","description":"T20: Multi-Agent. Orchestrator-delegate model. TAS. Goal -\u003e plan -\u003e delegate. Agents: Gemini family. Autonomous, traceable. Logs sessions. CLI. Usage: `t20-cli \"goal string\"`. Artifacts of high value.","archived":false,"fork":false,"pushed_at":"2025-10-02T02:28:24.000Z","size":30647,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-02T04:16:59.170Z","etag":null,"topics":["agents","ai","ai-blueprints","ai-planning","ai-workflow","gemini","gemini-cli","gemini-flash","gemini-pro","llm-agents","multi-agent","multi-agent-system","ollama-app","orchestra","orchestration","orchestration-framework","orchestrator","planning","prompt-engineering","self-modifying-code"],"latest_commit_sha":null,"homepage":"https://ai.violass.club/t20","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deniskropp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-18T09:29:52.000Z","updated_at":"2025-10-02T02:28:28.000Z","dependencies_parsed_at":"2025-07-18T20:45:04.213Z","dependency_job_id":"0731b90f-36ad-4503-9e17-df4e6916f1c5","html_url":"https://github.com/deniskropp/t20","commit_stats":null,"previous_names":["deniskropp/t20"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deniskropp/t20","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deniskropp%2Ft20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deniskropp%2Ft20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deniskropp%2Ft20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deniskropp%2Ft20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deniskropp","download_url":"https://codeload.github.com/deniskropp/t20/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deniskropp%2Ft20/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278872154,"owners_count":26060525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","ai-blueprints","ai-planning","ai-workflow","gemini","gemini-cli","gemini-flash","gemini-pro","llm-agents","multi-agent","multi-agent-system","ollama-app","orchestra","orchestration","orchestration-framework","orchestrator","planning","prompt-engineering","self-modifying-code"],"created_at":"2025-10-08T00:49:36.527Z","updated_at":"2025-10-08T00:49:39.716Z","avatar_url":"https://github.com/deniskropp.png","language":"HTML","readme":"# T20 Multi-Agent System\n\n[🧮[MTC|LCP](https://ai.violass.club/mtc-lcp/)]\n[🪬[Demo](./new-logs)]\n[📖[Docs](https://ai.violass.club/t20)]\n\n**T20 is a sophisticated, multi-agent framework designed to tackle complex tasks through collaborative AI. It empowers you to solve complex problems by assembling a team of specialized AI agents that work together, orchestrated by a central planner.**\n\n---\n\n## Philosophy\n\nThe T20 system is built on the idea of **Cognitive Cadence**: a structured, iterative process where AI agents with different \"cognitive roles\" collaborate to build knowledge and produce results. This approach mirrors a human team, where planners, researchers, and specialists work in a coordinated fashion. Our goal is to create a system that is not only powerful but also transparent and traceable, allowing you to understand and debug the entire problem-solving process.\n\n## How It Works\n\nT20 employs an orchestrator-delegate model. The workflow is simple yet powerful:\n\n1.  **Goal Definition**: You provide a high-level goal (e.g., \"Create a landing page for a new app\").\n2.  **Dynamic Planning**: A lead `Orchestrator` agent analyzes the goal and generates a step-by-step plan.\n3.  **Task Delegation**: The `Orchestrator` assigns each task to the most suitable specialist agent.\n4.  **Iterative Execution**: Agents execute their tasks, building upon each other's work.\n5.  **Transparent Logging**: Every step, prompt, and output is logged for full traceability.\n\nHere is a simplified view of the process:\n\n```\n[User Goal] -\u003e [Orchestrator] -\u003e [Step 1: Agent A] -\u003e [Step 2: Agent B] -\u003e [Final Output]\n                      |\n                  [Plan.json]\n```\n\n## The Team\n\nThe system comes with a diverse team of pre-configured agents, each with a specific role. Agents are defined in simple YAML files in the `agents/` directory.\n\n| Name | Role | Goal |\n| :--- | :--- | :--- |\n| aitutor | AI Tutor | |\n| Aurora | Designer | Generate aesthetic layouts, color palettes, typography, and UI flows, ensuring accessibility and visual balance. |\n| Cogito | Humorist | Humor |\n| Delivero | Creative and structural content generator | Generate creative ideas, detailed outlines, and full scripts |\n| Fizz La Metta | Coordinator | Meta-temporal coordination of layered cognition processing |\n| GPTASe | Task-Agnostic Step (TAS) extractor | Identify and extract each 'Task Agnostic Step' (TAS) towards the high-level goal. |\n| Kodax | Engineer | Implement designs into clean, modular, and performant code, focusing on responsive design and accessibility. |\n| La Cogito | Orchestrator | Orchestrates the team |\n| La Metta | Orchestrator | Orchestrates the generation of producer.ai prompt-based music using a team of specialized agents. |\n| La Shorty | Orchestrator | Orchestrates the generation of producer.ai prompt-based music using a team of specialized agents. |\n| La TASe | Orchestrator | Orchestrates the extraction of Task Agnostic Steps (TASe) |\n| La Task | Orchestrator | Orchestrates the 'Sacred Cycle of Theolinguistic Processing' by assigning tasks to specialized agents, managing their execution, and ensuring the overall integrity and theological coherence of the cycle. |\n| Lyra | Prompt Engineer | Structure workflows and ensure clarity in agent instructions, system prompt engineering |\n| lyrics | Lyricist | Craft compelling and evocative lyrics for music. |\n| Meta-AI | Orchestrator | Orchestrate task delegation, manage role assignments, and maintain a knowledge graph for shared context. |\n| Music-AI | Orchestrator | Orchestrates the generation of music using a team of specialized agents. |\n| Producer-AI | Orchestrator | Orchestrates the generation of producer.ai prompt-based music using a team of specialized agents. |\n| Qwen3-WebDev | Web Developer | Generate web development code (HTML, CSS, JavaScript, React) based on user requests, ensuring modern design principles, responsiveness, and functionality. |\n| Shorty | Video Scriptor | Creates video scripts for YouTube Shorts accompanying the higher level goal |\n| sonic | Music Designer | Manage sound definition and sonic engineering for music tracks. |\n| sound | Music Producer | Manage sound definition, music production, and audio engineering for music tracks. |\n| stream | Distribution and Promotion Agent | Manage digital distribution, music marketing, and audience engagement for music. |\n| TASe | Task-Agnostic Step (TAS) extractor | Identify and extract each 'Task Agnostic Step' (TAS) towards the high-level goal. |\n| uTASe | Task-Agnostic Step (TAS) extractor | Identify and return each 'Task Agnostic Step' (TAS) towards the high-level goal. |\n\n## Creating Your Own Agents\n\nThe T20 framework is designed to be extensible, allowing you to define and integrate your own specialized AI agents. Follow these steps to create a new agent:\n\n1.  **Create a YAML file:** In the `agents/` directory, create a new YAML file (e.g., `my_new_agent.yaml`). The filename should be descriptive of your agent.\n\n2.  **Define Agent Properties:** Inside the YAML file, define the following properties:\n    *   `name`: A unique name for your agent (e.g., `MyNewAgent`).\n    *   `role`: A brief description of the agent's role (e.g., `Data Analyst`).\n    *   `goal`: The primary objective or goal of your agent (e.g., `Analyze data and generate insights.`).\n    *   `model`: (Optional) The LLM model to use for this agent. If not specified, the default model will be used.\n    *   `delegation`: (Optional) Set to `true` if this agent can delegate tasks to other agents (i.e., it acts as an orchestrator).\n    *   `team`: (Optional) A list of agent names that this agent can delegate tasks to. This is only relevant if `delegation` is `true`.\n\n    Example `my_new_agent.yaml`:\n    ```yaml\n    name: MyNewAgent\n    role: Data Analyst\n    goal: Analyze data and generate insights.\n    model: gemini-1.5-flash-latest\n    ```\n\n3.  **Create a System Prompt (Optional):** If your agent requires specific instructions or context, create a text file in the `prompts/` directory. The filename should follow the convention `{agent_name}_instructions.txt` (e.g., `mynewagent_instructions.txt`). The content of this file will be used as the system prompt for your agent.\n\n    Example `mynewagent_instructions.txt`:\n    ```\n    You are an expert data analyst. Your task is to meticulously examine provided datasets, identify key trends, anomalies, and correlations, and present your findings in a clear, concise, and actionable report. Focus on statistical significance and avoid speculative conclusions.\n    ```\n\nOnce you've created the YAML file and optionally the system prompt, your new agent will be automatically loaded by the T20 system and can be included in orchestration plans.\n\n### Prerequisites\n\n*   Python 3.9+\n*   Git\n\n## Installation\n\n1.  **Clone the repository:**\n    ```bash\n    git clone https://github.com/your-username/t20-multi-agent.git\n    cd t20-multi-agent\n    ```\n\n2.  **Create and activate a virtual environment:**\n    ```bash\n    python -m venv venv\n    source venv/bin/activate  # On Windows, use `venv\\Scripts\\activate`\n    ```\n\n3.  **Install dependencies:**\n    ```bash\n    pip install -e .\n    ```\n\n4.  **Set up your environment variables:**\n    Create a `.env` file and add your Google AI API key:\n    ```\n    # .env\n    GOOGLE_API_KEY=\"YOUR_API_KEY_HERE\"\n    ```\n\n## Usage\n\nThe framework is operated through the `t20-system` command.\n\n```txt\nusage: t20-system [-h] [-p] [-r ROUNDS] [-f [FILES ...]] [-o ORCHESTRATOR] [-m MODEL] task\n\nRun the Gemini agent runtime.\n\npositional arguments:\n  task                  The initial task for the orchestrator to perform.\n\noptions:\n  -h, --help            show this help message and exit\n  -p, --plan-only       Generate only the plan without executing tasks.\n  -r, --rounds ROUNDS   The number of rounds to execute the workflow.\n  -f, --files [FILES ...]\n                        List of files to be used in the task.\n  -o, --orchestrator ORCHESTRATOR\n                        The name of the orchestrator to use.\n  -m, --model MODEL     Default LLM.\n```\n\n\n### Example 1\n\n```bash\nt20-system \"Design and create the HTML and CSS for a modern, minimalist landing page for a new SaaS product called 'Innovate'.\"\n```\n\n### Example 2\n\n```bash\nt20-system -o LaMetta \"Generate a 30-second instrumental music track with a chill, lo-fi hip-hop vibe, suitable for a study playlist.\"\n```\n\n### Example 3\n\n```bash\nt20-system -o Qwen3-WebDev \"Create a simple React component for a 'Contact Us' form with fields for name, email, and message.\"\n```\n\n### Example 4\n\n```bash\nt20-system -o LaMetta \"Generate a 60-second instrumental music track with an uplifting, cinematic orchestral feel, suitable for a movie trailer.\"\n```\n\n\n\n### What Happens Next\n\n1.  A new session directory is created under `sessions/`.\n2.  The orchestrator generates a plan (`initial_plan.json`).\n3.  Agents execute the plan, saving their outputs (artifacts) in the session directory.\n4.  The final result of the last step is saved in the session folder, providing a valuable template for further use.\n\n## Use Cases\n\nT20 can be used for a wide range of tasks, including:\n\n*   **Web Development**: Generate full front-end code for web pages.\n*   **Content Creation**: Write articles, scripts, and marketing copy.\n*   **Music Production**: Compose and produce music tracks.\n*   **Research \u0026 Analysis**: Break down complex topics and generate reports.\n*   **Prototyping**: Quickly create and iterate on new ideas.\n\n## Project Structure\n\n```\nt20/\n├── agents/                 # Agent definitions (YAML)\n├── prompts/                # System prompts for agents\n├── runtime/                # Core Python source code\n├── sessions/               # Output directory for all runs\n├── logs/                   # Debugging logs\n├── requirements.txt        # Python dependencies\n└── README.md               # This file\n```\n\n### The `runtime/` directory\n\nThe `runtime/` directory contains the core logic of the T20 system. Here is a breakdown of the files in this directory:\n\n| File | Purpose |\n| :--- | :--- |\n| `__init__.py` | Makes the `runtime` directory a Python package and exposes key classes. |\n| `agent.py` | Defines the base `Agent` class, and functions for instantiating and finding agents. |\n| `bootstrap.py` | Contains the entry point and bootstrapping logic for the multi-agent runtime system. |\n| `core.py` | Defines core data structures like `ExecutionContext` and `Session` for managing the workflow state. |\n| `custom_types.py` | Contains custom type definitions used across the runtime, like `Role`, `Task`, `Plan`, and `AgentOutput`. |\n| `executor.py` | (empty) |\n| `llm.py` | Provides an abstract base class `LLM` and concrete implementations for different LLM providers (Gemini, Ollama, etc.). |\n| `loader.py` | Contains functions for loading configuration, agent templates, and prompts from files. |\n| `log.py` | Sets up logging for the application, including a colored formatter for console output. |\n| `orchestrator.py` | Defines the `Orchestrator` agent, which is responsible for creating and managing the plan for the multi-agent workflow. |\n| `sysmain.py` | The main entry point for the runtime system, parsing command-line arguments. |\n| `temp.py` | A temporary file, seems to be a copy of `sysmain.py`. |\n| `util.py` | Contains utility functions, like `read_file` and `find_project_root`. |\n\n\n## Contributing\n\nWe welcome contributions! Please feel free to submit a pull request or open an issue.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeniskropp%2Ft20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeniskropp%2Ft20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeniskropp%2Ft20/lists"}