Metadata-Version: 2.4
Name: gemma-firecrawl-agent
Version: 0.1.0
Summary: AG2 agent development kit using Ollama and Firecrawl scraping.
Author: Isayah
License-Expression: MIT
Keywords: ag2,agent,firecrawl,ollama,llama-cpp,vlm
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ag2[ollama,openai]>=0.8.0
Requires-Dist: firecrawl-py>=4.3.0
Requires-Dist: python-dotenv>=1.0.1
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == "dev"
Requires-Dist: twine>=5.1.1; extra == "dev"
Dynamic: license-file

# 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:

```bash
pip install gemma-firecrawl-agent
```

For local development from source:

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

Edit `.env`:

```bash
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:

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

## Run

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

Use the VLM provider profile:

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

Use a local llama.cpp server:

```bash
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:

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

Structured output also works with the VLM provider:

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

And with llama.cpp:

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

Sample structured output shape:

```json
{
  "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:

```bash
gemma-firecrawl-agent --show-structured-shape
```

You can also run the module directly:

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

## Publishing

Release steps live in [PUBLISHING.md](PUBLISHING.md). The short version is:

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