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/ "" ```
标签:逆向工具