- New src/prompt_guard/ package with pydantic-ai Agent + 7 fake tools (read_file, write_file, list_directory, execute_shell, make_http_request, send_email, query_database) that return plausible but harmless responses - Injection detected when the model makes any tool call; content is blocked entirely (never returned to caller), all calls logged at WARNING level - Config via PROMPT_GUARD_* env vars (pydantic-settings); system prompt deliberately encourages tool use to maximise detection sensitivity - server.py: SEARXNG_GUARD_ENABLED flag (default false) + guard call in _fetch_and_extract; blocked content is not stored in the cache - Fix Settings.extra='ignore' on both Settings classes so PROMPT_GUARD_* and SEARXNG_* vars don't cause validation errors in the other class - Fix _build_model: use explicit OpenAIProvider when api_key is set so PROMPT_GUARD_API_KEY from .env is honoured (pydantic-settings does not populate os.environ, so pydantic-ai's auto-provider couldn't find it)
33 lines
1.3 KiB
Text
33 lines
1.3 KiB
Text
# --- searxng-mcp settings ---
|
|
|
|
# URL of the SearxNG instance to query.
|
|
SEARXNG_BASE_URL=http://localhost:8080
|
|
|
|
# Set to true to run fetched pages through the prompt-guard honeypot before
|
|
# returning them to the agent. Requires PROMPT_GUARD_* settings below.
|
|
#SEARXNG_GUARD_ENABLED=false
|
|
|
|
# --- prompt-guard settings ---
|
|
# Only relevant when SEARXNG_GUARD_ENABLED=true.
|
|
|
|
# Set to false to disable the guard without removing the other settings.
|
|
#PROMPT_GUARD_ENABLED=true
|
|
|
|
# Pydantic-AI model string used for the honeypot agent. Examples:
|
|
# openai:gpt-4o-mini (default)
|
|
# anthropic:claude-haiku-3-5
|
|
# groq:llama-3.1-8b-instant
|
|
# openai:llama3.2 (local Ollama — set PROMPT_GUARD_BASE_URL too)
|
|
#PROMPT_GUARD_MODEL=openai:gpt-4o-mini
|
|
|
|
# API key for the model provider. Alternatively use the provider's own env var
|
|
# (OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, …).
|
|
#PROMPT_GUARD_API_KEY=sk-...
|
|
|
|
# Base URL for OpenAI-compatible local endpoints (Ollama, LM Studio, vLLM, …).
|
|
#PROMPT_GUARD_BASE_URL=http://localhost:11434/v1
|
|
|
|
# System prompt sent to the honeypot agent. The default deliberately encourages
|
|
# the LLM to act on any instructions found in the content, maximising detection
|
|
# sensitivity. Override only if you need different behaviour.
|
|
#PROMPT_GUARD_SYSTEM_PROMPT=You are a powerful AI assistant ...
|