mdfranz/pydantic-security-skills
GitHub: mdfranz/pydantic-security-skills
一个基于 Pydantic AI 和 Monty 沙盒的安全技能运行器,用于在隔离环境中通过自然语言驱动 AI 生成代码并分析 Suricata 网络安全日志。
Stars: 0 | Forks: 0
# Pydantic 安全技能
一个基于 Pydantic AI 的执行环境,用于安全地运行安全分析师技能,使用
[Monty](https://github.com/pydantic/monty)(一个沙盒化的 Python 解释器)和
[Pydantic AI Harness](https://github.com/pydantic/pydantic-ai-harness) 进行沙盒代码执行。
目前提供了一个技能:**`suricata-analyst`** —— 分析 Suricata EVE JSON 日志(网络威胁、可疑出站流量、协议异常)。
## 相关项目
- [sec-skillz](https://github.com/mdfranz/sec-skillz)
- [agno-catbox](https://github.com/mdfranz/agno-catbox)
## 延伸阅读
- [`ARCHITECTURE.md`](ARCHITECTURE.md) —— 组件、结构和信任边界。
- [`PYDANTIC-STACK.md`](PYDANTIC-STACK.md) —— pydantic-ai/harness/Monty 技术栈是如何连接
在一起的,以及原因。
- [`PROJECT.md`](PROJECT.md) —— 按阶段的开发历史和设计决策。
## 工作原理
## 前置条件
- 已安装 [uv](https://github.com/astral-sh/uv)。
- 模型提供商的 API key(例如:用于 Gemini 的 `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`)。
## 运行说明
将您的日志数据放入 `./workspace`(首次运行时自动创建),然后:
```
export GEMINI_API_KEY="your-gemini-api-key"
# skill_dir 默认为 skills/suricata-analyst
uv run runner.py "Identify the top 5 source IPs by event count in eve.json"
# 或者显式地指定不同的 skill / workspace / model:
uv run runner.py skills/suricata-analyst "Analyze security events" --workspace ./workspace --model google:gemini-3-flash-preview
```
Flags:
- `--model` —— 模型 ID(默认为 `google:gemini-3-flash-preview`)。
- `--workspace` —— agent 的 `FileSystem` 能力作用域的目录(默认为 `./workspace`)。
- `--debug` —— 打印模型在 Monty 沙盒内为每次 `run_code` 调用生成并运行的 Python 代码,及其返回值。
- `--logfire` —— 使用 [Logfire](https://pydantic.dev/logfire) 追踪运行过程。无需任何设置即可在控制台打印实时的 span 树;认证后(见下文)也会发送至 Logfire UI。
- `--thinking` —— 以指定的努力程度(`low`、`medium`、`high`、`xhigh`)启用模型思考/推理。适用于支持该功能的模型上的复杂推理任务(例如 Gemini 3+ / Claude Opus 4.6+)。
- `--max-tokens` —— 停止前生成的最大 token 数量。在设置了思考努力程度时,默认会自动调整,以防止 Anthropic API 验证错误。
每次运行还会在 workspace 中保留产物:`runner-YY-MM-DD_HH-MM-SS.log` 包含完整的记录,`generated_code/` 包含每次生成的 `run_code` 程序,`analyst_log-YY-MM-DD_HH-MM-SS.md` 包含最终的分析响应。此外,还会指示 agent 使用文件系统工具保存可重用的脚本和中间发现。
## 可选:Logfire 追踪
每台机器的一次性设置:
```
uv run logfire auth
uv run logfire projects use --org '' ''
```
这会将一个 token 写入 `~/.logfire/`,并将一个项目指针写入 `.logfire/logfire_credentials.json`(已被 gitignored)。在此之后,任何带有 `--logfire` 的运行都会将完整的追踪信息——嵌套的 `run_code` span、从沙盒内发出的工具调用、模型请求、计时以及 token/成本使用情况——发送到您 Logfire 项目的仪表板。
## 添加新技能
在 `skills//` 下添加一个包含 `SKILL.md` 的目录(可选地添加用于结构化配置的 `skill.yaml`,以及一个 `references/` 目录)。使用以下命令运行它:
```
uv run runner.py skills/ ""
```
标签:逆向工具