Pokemon Showdown AI Agents Built with Free LLM APIs and Tool-Calling

A developer built a system where LLMs like Llama 3, Qwen, and Gemma autonomously play Pokémon Showdown battles. The agents analyze the full battle state each turn—type matchups, HP, weather, field conditions, revealed opponent info—and decide whether to attack or switch using structured tool calls.
Key Details
- Routes everything through LiteLLM and exclusively uses models with free API tiers (Groq, Cerebras, OpenRouter, Google AI Studio).
- Zero inference cost to run locally.
- Two modes: Human vs. AI (play against the bot) and AI vs. AI (pit two models against each other).
- Supports 15+ free models out of the box.
- Full observability via Langfuse to see exact tool calls and reasoning per turn.
Architecture Highlights
The agent uses tool-calling to structure decisions—rather than simple prompt-response—raw battlefield data is fed into the LLM, which then selects attack or switch actions via predefined tool schemas. This allows reasoning about complex board states like type advantages and dynamic field effects.
GitHub Repo
Code and setup instructions: github.com/MohamedMostafa259/pokemon-ai-agent
📖 Read the full source: r/LocalLLaMA
👀 See Also

Markdown as Protocol for Agentic UI with Streaming Execution
A prototype uses Markdown as a unified protocol for AI agents to stream text, executable code, and data in a single response. It features streaming execution where code runs statement-by-statement as it arrives and a mount() primitive for creating React UIs with data flow between client, server, and LLM.

Mia: Local AI Workspace Daemon with Native Android App and P2P Streaming
Mia is a daemon that runs on your machine and pairs with a native Android app over P2P, allowing you to kick off and monitor long-running AI coding tasks from your phone. It supports OpenCode, Claude Code, Gemini CLI, and Codex agents, streaming output directly to your device in real time.

Echo-TTS Ported to Apple Silicon with MLX for Native TTS with Voice Cloning
Echo-TTS, a 2.4B parameter diffusion text-to-speech model with voice cloning, has been ported from CUDA to run natively on Apple M-series silicon using MLX. On a base 16GB M4 Mac mini, a 5-second voice clone takes about 10 seconds to generate, while 30-second clones take about 60 seconds.

Sense: Go SDK for LLM-powered test assertions and structured text extraction
Sense is a Go SDK that uses Claude for two main functions: evaluating non-deterministic output in tests with plain English assertions, and extracting typed structs from unstructured text through reflection and forced tool_use.