Skip to main content

Gemma Firecrawl Agent

Small Python ADK-style scaffold for an AG2 agent that talks to a local Ollama model and can call Firecrawl to scrape web pages into LLM-ready text.

Setup

After this project is published to PyPI:

pip install gemma-firecrawl-agent

For local development from source:

python -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env

Edit .env:

FIRECRAWL_API_KEY=fc-your-key
OLLAMA_MODEL=gemma3:4b
OLLAMA_VLM_MODEL=qwen3-vl:8b
OLLAMA_HOST=http://127.0.0.1:11434
LLAMA_CPP_MODEL=llama-cpp
LLAMA_CPP_BASE_URL=http://127.0.0.1:8080/v1
LLAMA_CPP_API_KEY=sk-no-key-required

Make sure Ollama is running and the model is pulled:

ollama pull gemma3:4b
ollama pull qwen3-vl:8b
ollama serve

Run

gemma-firecrawl-agent "Scrape https://example.com and summarize the page."

Use the VLM provider profile:

gemma-firecrawl-agent --provider vlm "Scrape https://example.com and summarize the page."

Use a local llama.cpp server:

llama-server -m /path/to/model.gguf --host 127.0.0.1 --port 8080
gemma-firecrawl-agent --provider llama-cpp "Scrape https://example.com and summarize the page."

Use structured output when you want a JSON object:

gemma-firecrawl-agent --structured "Scrape https://example.com and summarize the page."

Structured output also works with the VLM provider:

gemma-firecrawl-agent --provider vlm --structured "Scrape https://example.com and summarize the page."

And with llama.cpp:

gemma-firecrawl-agent --provider llama-cpp --structured "Scrape https://example.com and summarize the page."

Sample structured output shape:

{
  "title": "Short page or task title",
  "url": "https://example.com",
  "summary": "One concise paragraph.",
  "key_points": [
    "First important point",
    "Second important point"
  ],
  "source_status": "scraped"
}

Print the sample shape from the CLI:

gemma-firecrawl-agent --show-structured-shape

You can also run the module directly:

python -m gemma_firecrawl_agent.cli "Scrape https://example.com and list the key facts."

Publishing

Release steps live in PUBLISHING.md. The short version is:

pip install -e ".[dev]"
python -m build
python -m twine check dist/*

Metadata

Release files for gemma-firecrawl-agent 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gemma-firecrawl-agent 0.1.0
File Size Uploaded
gemma_firecrawl_agent-0.1.0.tar.gz 7.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gemma-firecrawl-agent 0.1.0
File Interpreter ABI Platform
gemma_firecrawl_agent-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.2 kB

Release files / gemma_firecrawl_agent-0.1.0.tar.gz

Download URL gemma_firecrawl_agent-0.1.0.tar.gz
Size 7.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9c1cdcc5b97a31820fb7441e6b098e304095473efe623eebf6d515d485676233
BLAKE2b-256 checksum
How to use checksums
92e5f8f00f69d925b2b3d390270e1eb7046c72e7d8c1da2b955ec91f72a6ab03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / gemma_firecrawl_agent-0.1.0-py3-none-any.whl

Download URL gemma_firecrawl_agent-0.1.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2859becae40a32045f6f333d8a41db92343e85910d72a0623117cd7a367c0ac
BLAKE2b-256 checksum
How to use checksums
8c6ffd76ce058b601a9336459dd8bf095c0cc3bdeb6ec61542cf7709ca59debd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page