diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..746c800e --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,9 @@ +@misc{mayoralvilches2025caiopenbugbountyready, + title={CAI: An Open, Bug Bounty-Ready Cybersecurity AI}, + author={Víctor Mayoral-Vilches and Luis Javier Navarrete-Lozano and María Sanz-Gómez and Lidia Salas Espejo and Martiño Crespo-Álvarez and Francisco Oca-Gonzalez and Francesco Balassone and Alfonso Glera-Picón and Unai Ayucar-Carbajo and Jon Ander Ruiz-Alcalde and Stefan Rass and Martin Pinzger and Endika Gil-Uriarte}, + year={2025}, + eprint={2504.06017}, + archivePrefix={arXiv}, + primaryClass={cs.CR}, + url={https://arxiv.org/abs/2504.06017}, +} diff --git a/README.md b/README.md index 24056392..0b0e6394 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,8 @@ Cybersecurity AI is a critical field, yet many groups are misguidedly pursuing i pip install cai-framework ``` +Always create a new virtual environment to ensure proper dependency installation when updating CAI. + The following subsections provide a more detailed walkthrough on selected popular Operating Systems. Refer to the [Development](#development) section for developer-related install instructions. ### OS X @@ -286,6 +288,16 @@ CAI does NOT provide API keys for any model by default. Don't ask us to provide The OPENAI_API_KEY must not be left blank. It should contain either "sk-123" (as a placeholder) or your actual API key. See https://github.com/aliasrobotics/cai/issues/27. +:warning: Note: + +If you are using alias0 model, make sure that CAI is >0.4.0 version and here you have an .env example to be able to use it. + +```bash +OPENAI_API_KEY="sk-1234" +OLLAMA="" +ALIAS_API_KEY="" # note, add yours +CAI_STEAM=False +``` ### 🔹 Custom OpenAI Base URL Support @@ -301,6 +313,7 @@ Or directly from the command line: OLLAMA_API_BASE="https://custom-openai-proxy.com/v1" cai ``` + ## :triangular_ruler: Architecture: CAI focuses on making cybersecurity agent **coordination** and **execution** lightweight, highly controllable, and useful for humans. To do so it builds upon 7 pillars: `Agent`s, `Tools`, `Handoffs`, `Patterns`, `Turns`, `Tracing` and `HITL`. diff --git a/pyproject.toml b/pyproject.toml index 005c1a81..25ddd6fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,8 @@ dependencies = [ "mkdocs-material>=9.6.0", "paramiko>=3.5.1", "dnspython", - "flask" + "flask", + "PyPDF2", ] classifiers = [ "Typing :: Typed",