feat: ollama-crossword-agent — hybrid vision + constraint solver with BMasterAI telemetry#53
Conversation
… BMasterAI telemetry Adds examples/ollama-crossword-agent/ — a crossword-solving agent that combines qwen2.5vl:7b (Ollama) for clue reading and answer proposals, Playwright for deterministic browser control, and a Python constraint engine that only commits letters when crossing ACROSS/DOWN answers agree. Runs 100% locally, no API keys required. Key files: agent.py (529 lines) — CrosswordAgent with hybrid solve loop grid.py (215 lines) — CrosswordGrid constraint engine vision.py (179 lines) — Ollama vision helpers main.py (107 lines) — CLI with --demo, --url, --size flags Also updates root README with the new entry at top of 2026 section. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Claude finished @travis-burmaster's task —— View job Code Review: Ollama Crossword AgentI've analyzed this hybrid crossword-solving agent implementation. Overall, this is a well-architected example that demonstrates effective integration of vision models, browser automation, and constraint logic with comprehensive BMasterAI telemetry. Review Tasks
✅ Strengths1. Excellent Architecture
2. Comprehensive Telemetry
3. Good Error Handling
4. Documentation & Usability
|
Summary
Adds
examples/ollama-crossword-agent/— a hybrid crossword-solving agent combining:Runs 100% locally — no API keys required.
Why the hybrid architecture matters
If the LLM freestyles the whole puzzle it hallucinates freely. The constraint engine (
grid.py) enforces crossing agreement before committing any letter. If ACROSS proposesCRANEand DOWN proposesCHOIRfor cell (0,0), they agree onCso it's committed; disagreements are flagged for retry with crossing context hints (_ R _ N _).Files
agent.pyCrosswordAgent— hybrid solve loop with full BMasterAI instrumentationgrid.pyCrosswordGrid— constraint engine, crossing enforcement, conflict detectionvision.pymain.py--demo,--url,--sizeflagsrequirements.txtTest plan
python main.py --demoruns without Ollama or browser installedollama pull qwen2.5vl:7b && python main.pyruns live against NYT Minilogs/agent.jsonlwritten with structured telemetryGenerated with Claude (Cowork mode)