The Virtual IT Team in Your Pocket. A framework of 28 AI Personas for enterprise software development.
Project description
The Agency
The Virtual IT Team in Your Pocket 🏢
"The Agency" is an open-source framework that models a complete Enterprise Software Development Organization using specialized AI Personas (Skills).
⚖️ Why The Agency? (vs. CrewAI, AutoGen, LangGraph)
Unlike traditional agent orchestration frameworks that require you to write hundreds of lines of complex Python code to define state variables, execution graphs, and LLM API hooks, The Agency is purely contextual.
- Zero Code Orchestration: The Agency provides the missing Domain Knowledge, Organizational Chart, and Standard Operating Procedures (SOPs) as modular logic files. You don't need to write connection code.
- Bring Your Own Editor: Instead of running a headless python script, you inject The Agency's Personas directly into the powerful AI tools you already use every day (Cursor, Roo Code, Copilot Workspaces, Gemini CLI, Aider).
- Practical Software Engineering: Other frameworks give you a generic sandbox. The Agency gives you a heavily researched, production-proven IT department ranging from a
project_managerandcmo_analystto achief_information_security_officerandsre_cloud_architect.
You don't need another orchestration engine. You just need a better team.
Simply inject these personas into your favorite AI tool and watch the Virtual IT Team design, develop, secure, test, and market your application.
🛡️ Core Value: Prompt Poisoning Defense
As an open-source framework driven purely by contextual markdown, The Agency recognizes that "Prompt Injection" and "Data Poisoning" are the largest unmitigated threats to autonomous agent ecosystems.
We maintain a strict Chain of Trust for all external contributions.
Because malicious actors could attempt to submit Pull Requests containing jailbreaks or data exfiltration commands hidden inside a Persona's System Prompt (SKILL.md), this repository treats prompt security as a first-class citizen. All incoming PRs are strictly audited, ensuring that an enterprise using The Agency is never compromised by a poisoned virtual employee.
👥 The Organization Chart
The Virtual IT Team comprises specialized "Skills", mapped precisely to a modern tech enterprise:
- Management:
project_manager,historian,workspace_manager - Architecture:
solution_architect,cmo_analyst(Digital Twin Owner),sre_cloud_architect - Development:
backend_developer,frontend_developer,coder - Design:
ux_ui_designer - Data Engineering:
relational_dba,graph_database_architect,data_scientist - Quality Assurance:
chief_test_officer,qa_automation_engineer,test_engineer,e2e_journey_tester,test_data_manager,ui_qa_engineer - Security:
chief_information_security_officer,application_security_engineer,security_operations_analyst - Deployment:
ssdlc_manager - Management & Marketing:
head_of_marketing,product_marketing_manager,content_copywriter,technical_writer - Support & AI Ops:
customer_support_triage,prompt_engineer,makefile_orchestrator - Meta-Skills (The Creators):
skill_creator(Organizational Architect),tool_smith(Internal Tooling),collab_bus(Multi-Agent Communication)
(Read each SKILL.md inside the skills/ folder to review the specific heuristics and constraints of that role).
🚀 How to Use "The Agency"
Because The Agency defines logic and processes rather than hard-coded python scripts, you can use it conceptually within any environment.
1. The Global Agency CLI (Recommended)
The most powerful way to use "The Agency" is to install it globally on your system path. This allows you to spawn any persona directly into whichever project directory you are currently working in.
Because "The Agency" is written in Python, the recommended way to install it globally without breaking your system packages is via pipx.
# Install the CLI globally in an isolated environment
pipx install the-agency-cli
# Navigate to any of your completely separate projects
cd /my/super/secret/startup/
# Launch the interactive CLI right there
agency
The CLI will guide you through:
- Initialize & Configure: Automatically scans for AI assistants — Cursor (
.cursorrules), Gemini CLI (.gemini/GEMINI.md), Roo Code / Cline (.clinerules), Claude Code (CLAUDE.md), Aider (.aider.conf.yml), GitHub Copilot (.github/directory orcopilot-instructions.md), and Windsurf (.windsurfrules). It installs the Agency skills into your.agency/folder and injects a full skill directory with workflow guidance into your AI tool's project memory file so it can immediately navigate and employ the Virtual IT Team. - Browse Skills: View the organizational chart and understand what every department does.
- Run Skill: Choose a specific skill, paste a task, and the agent will immediately context-switch into your codebase to start working.
2. In Any AI Coding Tool (Cursor, Roo Code, Copilot, Claude, Gemini…)
After running agency init, your tool's config file already contains the full skill directory.
Simply ask your assistant: "Act as the frontend_developer skill and complete this task."
It will read .agency/skills/frontend_developer/SKILL.md and adopt the persona automatically.
3. Pure Makefiles & Terminal Piping
If you prefer raw execution, you can completely ignore .agency.py and run sequential generation using the Makefile pattern.
See the example Makefile in the root directory for a proof-of-concept pipeline.
# Example: Generate an application schema using a local 8B model
make build-schema
4. Supercharging Skills with Tools
While skills have "Brains", they need "Hands" to affect the local machine. By installing common CLI tools globally on your terminal (e.g., semgrep, docker, playwright), you empower the agents to use those tools automatically via run_command capabilities.
Read the Recommended Tools Architecture to see which open-source CLIs pair best with which Virtual Employee. If a tool you need doesn't exist, spawn the tool_smith meta-skill to write a custom wrapper!
📦 Integrating into an Existing Project
If you are not starting from scratch, you can easily drop "The Agency" into a mature, existing repository.
1. Call agency init (or just agency) and select "Initialize"
The init step does two things:
- Copies the entire skills library into
.agency/skills/in your project. - Injects a full skill directory + workflow guide into your AI tool's config file (
.cursorrules,CLAUDE.md,.github/copilot-instructions.md,GEMINI.md, etc.) so the assistant immediately knows how to navigate and use the Virtual IT Team without any extra prompting.
2. Initialize the "Digital Twin" (The Most Important Step)
AI agents hallucinate when they don't know your existing architecture. Before asking the Agency to write new code for your existing app, you must map your current state. From the agency initialization menu, select "Map Digital Twin":
- The
historianreads your files to summarize the project's purpose. - The
solution_architectmaps thesrc/hierarchy to build a system architecture. - The
cmo_analystaggregates this into a master "Digital Twin" state document atdocs/cmo_state.md.
3. Resume Normal Operations
Once properly mapped and configured, your native AI editor (like Cursor or Gemini) naturally understands your new virtual employees and the structure of your application. Ask your IDE directly: "Tell the backend_developer to build a new auth route according to the architecture."
🏗️ The Project Lifecycle
If you elect to use the full agency, follow the routing lifecycle governed by the project_manager:
- Discovery:
cmo_analystchecks the system's "Digital Twin" constraints (docs/). - Design Blueprint:
ux_ui_designermaps the wireframes;prompt_engineermaps the LLM context flow. - Architecture:
solution_architectdefines the data models and component structure. - Security Check:
cisoreviews the architecture for vulnerabilities. (Must pass before coding). - Implementation: Specialized
backend_developerandfrontend_developerwrite the code. - Testing:
chief_test_officercoordinates unit, integration, and E2E tests. - Deployment:
sre_cloud_architectdictates topology, andssdlc_managerroutes it to production. - Launch: The Marketing division generates go-to-market copy while the
technical_writerbuilds the public APIs.
📜 Legacy Assets
Older, hard-coded Python SDK variants of this agentic framework have been archived in the legacy/ folder for historical reference. The future of The Agency is agnostic, prompt-driven markdown injected into powerful local or cloud execution layers.
🤝 Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Want to add a new role to the IT Team?
- Copy an existing
SKILL.mdinsideskills/. - Define their Core Responsibilities and Workflow Integration in the markdown.
- Submit a Pull Request.
🐛 Issues and Support
If you encounter any bugs, have feature requests, or need help integrating The Agency into your workflow, please open an issue on GitHub.
📄 License
Distributed under the MIT License. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file the_agency_cli-1.10.2.tar.gz.
File metadata
- Download URL: the_agency_cli-1.10.2.tar.gz
- Upload date:
- Size: 95.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f69f3001acde02500a056ca36470410341cc745d4ad6402652dba998cdd6c511
|
|
| MD5 |
b9d302ed276354e64778411694bd3816
|
|
| BLAKE2b-256 |
b3d7c939f8b2cb4a037a3f755a8c441996cd55681a7d79f93448ec851213db3b
|
Provenance
The following attestation bundles were made for the_agency_cli-1.10.2.tar.gz:
Publisher:
release.yml on flegare/the_agency
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
the_agency_cli-1.10.2.tar.gz -
Subject digest:
f69f3001acde02500a056ca36470410341cc745d4ad6402652dba998cdd6c511 - Sigstore transparency entry: 1279621412
- Sigstore integration time:
-
Permalink:
flegare/the_agency@11404b53ecfcca106c8ea3bedd75f2c6b0f5bd82 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flegare
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@11404b53ecfcca106c8ea3bedd75f2c6b0f5bd82 -
Trigger Event:
push
-
Statement type:
File details
Details for the file the_agency_cli-1.10.2-py3-none-any.whl.
File metadata
- Download URL: the_agency_cli-1.10.2-py3-none-any.whl
- Upload date:
- Size: 105.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abfc80ba88719b48a791c666d104b1f39388d7fab3967043ded6ef514dc16191
|
|
| MD5 |
931d0bd278d397b2142a72a3fd46bc7a
|
|
| BLAKE2b-256 |
34e1762285d11efca045ddf808c92d0d24e9b9e19a01b9342f46b5050a5690ac
|
Provenance
The following attestation bundles were made for the_agency_cli-1.10.2-py3-none-any.whl:
Publisher:
release.yml on flegare/the_agency
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
the_agency_cli-1.10.2-py3-none-any.whl -
Subject digest:
abfc80ba88719b48a791c666d104b1f39388d7fab3967043ded6ef514dc16191 - Sigstore transparency entry: 1279621465
- Sigstore integration time:
-
Permalink:
flegare/the_agency@11404b53ecfcca106c8ea3bedd75f2c6b0f5bd82 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flegare
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@11404b53ecfcca106c8ea3bedd75f2c6b0f5bd82 -
Trigger Event:
push
-
Statement type: