Observed since 20 Oct, 23:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentsecops
AI-Powered Security Analysis Tool for detecting vulnerabilities, prompt injections, and hallucination risks
AgentOps Guardian is a self-healing DevOps framework built for the Mistral AI Hackathon 2026 that automatically detects and repairs LLM vulnerabilities in real-time. By integrating Mistral AI, it monitors agentic workflows for prompt injections and "hallucination crashes," autonomously pushing verified code fixes to secure the pipeline.
Install uv - a fast Python package installer:
# On macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with pip:
pip install uv
# Clone the repository
git clone <your-repo-url>
cd agentSecOps_Guardian
# Create a virtual environment and install dependencies
uv venv
source .venv/bin/activate # On macOS/Linux
# .venv\Scripts\activate # On Windows
# Install dependencies
uv pip install -r requirements.txt
To install the secure CLI tool system-wide:
# Install in development mode (recommended for development)
pip install -e .
or
uv build
After installation, you can run the secure command from anywhere:
# Run security analysis on a file
secure ./tests/example_backend.py
# With Mistral AI analysis (requires API key)
secure ./tests/example_backend.py --mistral --mistral-key your_api_key
📋 Report generated: report.md
After installation, you can use the secure command:
# Basic usage - analyze a text file and generate security report
secure input_file.txt
# With output file specification
secure input_file.txt -o security_report.md
# With text processing options
secure input_file.txt -l -s -w --lines
# With Mistral AI analysis (requires API key)
secure input_file.txt --mistral --mistral-key your_api_key
# With different analysis types
secure input_file.txt --mistral --analysis-type prompt_injection
# Advanced options
secure input_file.txt --verbose --no-patterns
# Available options:
# -l, --lowercase Convert text to lowercase
# -s, --strip Strip leading/trailing whitespace
# -w, --remove-whitespace Remove extra whitespace between words
# --lines Process line by line (removes empty lines)
# -o, --output Output report file path (default: report.md)
# --mistral Enable Mistral AI analysis
# --mistral-key Mistral API key (overrides MISTRAL_API_KEY env var)
# --analysis-type Type of Mistral analysis (prompt_injection, hallucination, etc.)
# --verbose Enable verbose output
# --no-patterns Skip pattern-based security analysis
Analyze a configuration file for security issues:
python -m agentsecops.main config.txt -o config_security_report.md
Process and analyze a log file:
python -m agentsecops.main app.log --lines -s -o log_analysis.md
Analyze code files for potential vulnerabilities:
python -m agentsecops.main source_code.py -o code_security_report.md
# Install development dependencies
uv pip install -r requirements-dev.txt
# Run tests
pytest
# Run specific test files
pytest tests/test_main.py
pytest tests/test_textfile_parsing.py
# Run linter
flake8 agentsecops tests
# Format code
black agentsecops tests
The current architecture focuses on text analysis and security reporting:
agentsecops/
├── __init__.py # Package initialization
├── main.py # Main CLI orchestrator
├── cli.py # Original CLI (deprecated, use main.py)
├── parsing/
│ └── textfile.py # Text file parsing utilities
├── securityinstructions/ # Security analysis module
│ └── __init__.py # Security pattern detection
└── reporting/ # Reporting module
└── __init__.py # Markdown report generation
tests/
├── test_main.py # Main workflow tests
└── test_textfile_parsing.py # Text parsing tests
agentsecops/parsing/textfile.py reads and processes text files with various transformation optionsagentsecops/securityinstructions/ analyzes content for:
agentsecops/reporting/ creates comprehensive markdown reports with findingsagentsecops/main.py coordinates the entire workflowThe system detects various security issues:
password=, passwd=, pwd= patternsapi_key=, secret=, token= patterns and long hex stringseval(), exec(), pickle.load(), insecure HTTP, path traversalWhen you run the analysis, it generates a detailed markdown report:
# Security Analysis Report
**Generated:** 2026-02-28 12:34:56
---
## Analysis Metadata
- **Content Length:** 1024 characters
- **Line Count:** 42 lines
---
## 🔴 Potential Passwords Found (2)
### Line 15
**Match:** `password = secret123`
**Context:** `database_password = secret123`
### Line 23
**Match:** `api_key = abc123`
**Context:** `config.api_key = abc123`
---
## 📊 Summary
- **Total Findings:** 5
- **Passwords:** 2
- **API Keys:** 1
- **Sensitive Data:** 1
- **Security Issues:** 1
⚠️ **Recommendation:** Review the findings above and address any genuine security issues.
Contributions are welcome! Please see CONTRIBUTING.md for details.
git checkout -b feature/security-enhancement)git commit -m 'Add security enhancement')git push origin feature/security-enhancement)This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ for Mistral AI Hackathon 2026
This project was created for the Mistral AI Hackathon 2026, showcasing the potential of AI-driven security automation in DevOps workflows. AgentOps Guardian demonstrates how advanced language models can be leveraged to create self-healing systems that protect against emerging LLM security threats.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | requests>=2.31.0 | runtime |
python-dotenvEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | python-dotenv>=1.0.0 | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.4.0; extra == "dev" | runtime |
pytest-covEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pytest-cov>=4.1.0; extra == "dev" | runtime |
pytest-mockEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pytest-mock>=3.11.0; extra == "dev" | runtime |
httpxEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.28.0; extra == "dev" | runtime |
blackEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | black>=23.7.0; extra == "dev" | runtime |
flake8Environment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | flake8>=6.1.0; extra == "dev" | runtime |
pylintEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pylint>=2.17.0; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | mypy>=1.5.0; extra == "dev" | runtime |
ipythonEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | ipython>=8.14.0; extra == "dev" | runtime |
ipdbEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | ipdb>=0.13.13; extra == "dev" | runtime |
buildEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | build>=1.0.0; extra == "dev" | runtime |
twineEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | twine>=4.0.0; extra == "dev" | runtime |
bdist_wheel · 16.73 KB · Python py3
sdist · 22.07 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:a36ec53b834f4eb7c9d6b26ba034fb813e3311edd70f5b344ca3f754bed321b5