Sofia Santos commited on
Commit
96b2235
·
1 Parent(s): dfea95d

feat: git merge

Browse files
Files changed (4) hide show
  1. README.md +50 -2
  2. requirements-dev.txt +10 -1
  3. requirements.txt +10 -1
  4. uv.lock +0 -0
README.md CHANGED
@@ -8,9 +8,57 @@ sdk_version: 5.31.0
8
  app_file: app.py
9
  pinned: false
10
  license: apache-2.0
11
- short_description: tdb
 
 
 
12
  ---
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  # TDA Agent
15
 
16
  # Development setup
@@ -27,4 +75,4 @@ code _readable_.
27
 
28
  ## Old content
29
 
30
- An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
 
8
  app_file: app.py
9
  pinned: false
10
  license: apache-2.0
11
+ tags:
12
+ - agent-demo-track
13
+ short_description: AI-driven TDAgent to automate threat analysis with MCP tools
14
+
15
  ---
16
 
17
+ # Hackathon Participation: Cybersecurity AI Agents
18
+
19
+ This project is our contribution to Tracks 1 and 3 of the [Agents-MCP-Hackathon](https://huggingface.co/Agents-MCP-Hackathon), focused on applying AI technologies in the cybersecurity domain. Our aim is to develop solutions that improve the operational efficiency in cybersecurity through automation and data-driven insights.
20
+
21
+ ## Team Overview
22
+
23
+ Our team is part of the AI division in our company's cybersecurity department. We focus on implementing AI-based solutions to assist cybersecurity operations. Our team members include:
24
+
25
+ - **Pedro Completo Bento**
26
+ - **Josep Pon Farreny**
27
+ - **Sofia Jeronimo dos Santos**
28
+ - **Rodrigo Dominguez Sanz**
29
+ - **Miguel Rodin**
30
+
31
+ ## Project Goals
32
+
33
+ We are exploring the application of AI agents to aid cybersecurity analysts in threat data enrichment and threat analysis. Our main goals are:
34
+
35
+ 1. To experiment with agentic technologies like Gradio and MCP.
36
+ 2. To explore how AI can improve data enrichment capabilities in threat analysis.
37
+ 3. To develop autonomous agents capable of API interaction, data enrichment, and threat evaluation.
38
+
39
+ ## Track 1: MCP Tool / Server
40
+
41
+ In Track 1, we developed **TDAgentTools**, a Gradio-powered MCP server offering a set of public cybersecurity intelligence tools. This tool is designed to assist cybersecurity professionals in their threat analysis and response tasks.
42
+
43
+ Access TDAgentTools here: [TDAgentTools Space](https://huggingface.co/spaces/Agents-MCP-Hackathon/TDAgentTools)
44
+
45
+ ## Track 3: Agentic Demo Showcase
46
+
47
+ For Track 3, we created **TDAgent**, an AI agent with a chat interface that connects to MCPs, defaulting to TDAgent MCP. The agent utilizes **TDAgentTools** or other MCP servers to gather additional threat intelligence, providing enriched data for more comprehensive threat evaluations.
48
+
49
+ ## Usage and Purpose
50
+
51
+ - **TDAgentTools**: Provides cybersecurity professionals with essential analysis tools via a user-friendly interface.
52
+ - **TDAgent**: Facilitates interactive AI-supported threat analysis, enhancing efficiency, by leveraging data from MCP servers for improved insights.
53
+
54
+ Our work aims to reduce the manual effort involved in threat analysis, allowing cybersecurity teams to focus on strategic activities by utilizing AI for operational tasks.
55
+
56
+ ## Conclusion
57
+
58
+ This project seeks to demonstrate the practical applications of AI agents in cybersecurity, providing tools and frameworks to improve security operations.
59
+
60
+
61
+
62
  # TDA Agent
63
 
64
  # Development setup
 
75
 
76
  ## Old content
77
 
78
+ An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
requirements-dev.txt CHANGED
@@ -1,8 +1,13 @@
1
  # This file was autogenerated by uv via the following command:
2
  # uv export --format requirements-txt --no-hashes --no-annotate --group dev --group test -o requirements-dev.txt
3
  aiofiles==24.1.0
 
 
 
4
  annotated-types==0.7.0
5
  anyio==4.9.0
 
 
6
  audioop-lts==0.2.1 ; python_full_version >= '3.13'
7
  boolean-py==5.0
8
  boto3==1.38.27
@@ -23,7 +28,8 @@ exceptiongroup==1.3.0 ; python_full_version < '3.11'
23
  fastapi==0.115.12
24
  ffmpy==0.6.0
25
  filelock==3.18.0
26
- fsspec==2025.5.1
 
27
  gradio==5.32.1
28
  gradio-client==1.10.2
29
  groovy==0.1.2
@@ -58,6 +64,7 @@ mcp==1.9.0
58
  mdurl==0.1.2
59
  mpmath==1.3.0
60
  msgpack==1.1.0
 
61
  mypy==1.16.0
62
  mypy-extensions==1.1.0
63
  networkx==3.4.2 ; python_full_version < '3.11'
@@ -94,6 +101,7 @@ pip-requirements-parser==32.0.1
94
  platformdirs==4.3.8
95
  pluggy==1.6.0
96
  pre-commit==3.8.0
 
97
  py-serializable==2.0.0
98
  pycparser==2.22 ; platform_python_implementation == 'PyPy'
99
  pydantic==2.11.5
@@ -150,4 +158,5 @@ virtualenv==20.31.2
150
  websockets==15.0.1
151
  xdoctest==1.2.0
152
  xxhash==3.5.0
 
153
  zstandard==0.23.0
 
1
  # This file was autogenerated by uv via the following command:
2
  # uv export --format requirements-txt --no-hashes --no-annotate --group dev --group test -o requirements-dev.txt
3
  aiofiles==24.1.0
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.12.9
6
+ aiosignal==1.3.2
7
  annotated-types==0.7.0
8
  anyio==4.9.0
9
+ async-timeout==5.0.1 ; python_full_version < '3.11'
10
+ attrs==25.3.0
11
  audioop-lts==0.2.1 ; python_full_version >= '3.13'
12
  boolean-py==5.0
13
  boto3==1.38.27
 
28
  fastapi==0.115.12
29
  ffmpy==0.6.0
30
  filelock==3.18.0
31
+ frozenlist==1.6.2
32
+ fsspec==2025.3.0
33
  gradio==5.32.1
34
  gradio-client==1.10.2
35
  groovy==0.1.2
 
64
  mdurl==0.1.2
65
  mpmath==1.3.0
66
  msgpack==1.1.0
67
+ multidict==6.4.4
68
  mypy==1.16.0
69
  mypy-extensions==1.1.0
70
  networkx==3.4.2 ; python_full_version < '3.11'
 
101
  platformdirs==4.3.8
102
  pluggy==1.6.0
103
  pre-commit==3.8.0
104
+ propcache==0.3.1
105
  py-serializable==2.0.0
106
  pycparser==2.22 ; platform_python_implementation == 'PyPy'
107
  pydantic==2.11.5
 
158
  websockets==15.0.1
159
  xdoctest==1.2.0
160
  xxhash==3.5.0
161
+ yarl==1.20.0
162
  zstandard==0.23.0
requirements.txt CHANGED
@@ -1,8 +1,13 @@
1
  # This file was autogenerated by uv via the following command:
2
  # uv export --format requirements-txt --no-hashes --no-annotate --no-dev -o requirements.txt
3
  aiofiles==24.1.0
 
 
 
4
  annotated-types==0.7.0
5
  anyio==4.9.0
 
 
6
  audioop-lts==0.2.1 ; python_full_version >= '3.13'
7
  boto3==1.38.27
8
  botocore==1.38.27
@@ -17,7 +22,8 @@ exceptiongroup==1.3.0 ; python_full_version < '3.11'
17
  fastapi==0.115.12
18
  ffmpy==0.6.0
19
  filelock==3.18.0
20
- fsspec==2025.5.1
 
21
  gradio==5.32.1
22
  gradio-client==1.10.2
23
  groovy==0.1.2
@@ -49,6 +55,7 @@ markupsafe==3.0.2
49
  mcp==1.9.0
50
  mdurl==0.1.2 ; sys_platform != 'emscripten'
51
  mpmath==1.3.0
 
52
  networkx==3.4.2 ; python_full_version < '3.11'
53
  networkx==3.5 ; python_full_version >= '3.11'
54
  numpy==1.26.4 ; python_full_version < '3.12'
@@ -74,6 +81,7 @@ packaging==24.2
74
  pandas==2.2.3
75
  pillow==11.2.1
76
  pluggy==1.6.0
 
77
  pycparser==2.22 ; platform_python_implementation == 'PyPy'
78
  pydantic==2.11.5
79
  pydantic-core==2.33.2
@@ -125,4 +133,5 @@ uvicorn==0.34.3 ; sys_platform != 'emscripten'
125
  websockets==15.0.1
126
  xdoctest==1.2.0
127
  xxhash==3.5.0
 
128
  zstandard==0.23.0
 
1
  # This file was autogenerated by uv via the following command:
2
  # uv export --format requirements-txt --no-hashes --no-annotate --no-dev -o requirements.txt
3
  aiofiles==24.1.0
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.12.9
6
+ aiosignal==1.3.2
7
  annotated-types==0.7.0
8
  anyio==4.9.0
9
+ async-timeout==5.0.1 ; python_full_version < '3.11'
10
+ attrs==25.3.0
11
  audioop-lts==0.2.1 ; python_full_version >= '3.13'
12
  boto3==1.38.27
13
  botocore==1.38.27
 
22
  fastapi==0.115.12
23
  ffmpy==0.6.0
24
  filelock==3.18.0
25
+ frozenlist==1.6.2
26
+ fsspec==2025.3.0
27
  gradio==5.32.1
28
  gradio-client==1.10.2
29
  groovy==0.1.2
 
55
  mcp==1.9.0
56
  mdurl==0.1.2 ; sys_platform != 'emscripten'
57
  mpmath==1.3.0
58
+ multidict==6.4.4
59
  networkx==3.4.2 ; python_full_version < '3.11'
60
  networkx==3.5 ; python_full_version >= '3.11'
61
  numpy==1.26.4 ; python_full_version < '3.12'
 
81
  pandas==2.2.3
82
  pillow==11.2.1
83
  pluggy==1.6.0
84
+ propcache==0.3.1
85
  pycparser==2.22 ; platform_python_implementation == 'PyPy'
86
  pydantic==2.11.5
87
  pydantic-core==2.33.2
 
133
  websockets==15.0.1
134
  xdoctest==1.2.0
135
  xxhash==3.5.0
136
+ yarl==1.20.0
137
  zstandard==0.23.0
uv.lock CHANGED
The diff for this file is too large to render. See raw diff