Agentic engineering
AI engineer focused on innovation, and a generalist on purpose: I can implement AI anywhere. Multi-agent engines, MCP servers and clients, skills and tooling for agents, and local agents optimized for whatever hardware the project actually runs on. Everything ships production-ready, as my deployed products show. Proven experience: the repos on this page, verified through endorsements and recommendations on LinkedIn. Fully remote.
🏆 1st place, Anna AI-Native App Hackathon 2026, with gamentic: an AI dungeon RPG, ported to run natively on the Anna platform in one week (port repo).
Systems where agents run loops with real responsibilities: tools, state, memory, recovery.
| Repo | What it is |
|---|---|
| Censurado | Self-hosted AI news portal run end to end by an agent harness, live at elcensuradoweb.com. A stdlib Python brain the agent drives through tool calls, with a gated editorial walk and a 24/7 serve loop with a multi-agent fallback chain (Gemini, Codex, Claude, local model). |
| gamentic | The hackathon winner above, fully local: state-machine engine, every character its own agent with bounded memory, 40 validated tools, swappable text/image/voice layers. 850+ tests. |
| noob-cli | Compact Rust agent CLI for local OpenAI-compatible models: Docker isolation, sessions, skills, MCP, plan mode, sub-agents, web search. 673 tests, release binary under 4 MB. |
| open-research | Deep-research pipeline: Planner / Finder / Summarizer / Reviewer / Writer agents, SSE telemetry, durable sessions, PDF and Markdown exports. |
| rebel-forge | Autonomous social-media agent: 11-tool loop with error recovery, per-platform voice memory, publishes to five networks from one prompt. |
The layer that makes agents useful anywhere: skills they install themselves, tools they can trust, MCP surfaces that plug them into anything.
| Repo | What it is |
|---|---|
| telegram-bot-skill | Any local CLI coding agent (Claude Code, opencode, Codex, Gemini) as a private Telegram bot. One repo, three surfaces: installable skill, npm toolkit, MCP server over stdio or Streamable HTTP. Zero-dependency Node core, deterministic access tiers, 87 tests. |
| agentickit | React copilot framework on AG-UI: reads app state, fills forms, confirms destructive actions, calls your tools, .pilot/ markdown skills. 579 tests, on npm. |
| websearch-skill | Keyless multi-engine web search and page reading for agents: rank fusion, clean Markdown extraction, fetched content fenced as untrusted. PyPI and MCP Registry. |
| research-skill | Persistent project-scoped knowledge base for SKILL.md agents: progressive disclosure, contrarian-pass investigation, survives context compaction. |
| mcp-dashboard | Browser-only MCP explorer: discover servers, connect over HTTP or SSE, inspect capabilities, run tools live. |
| mcp-ollama-studio | Local-first MCP client studio: ReAct agent, OpenAI-compatible backend, React UI with reasoning rail. |
Hallucination is an engineering problem before it is a model problem. At Ohara I removed it from Modu's generated integrations by moving the agent from probabilistic prompting to deterministic template injection: the model fills validated templates instead of free-writing API code. Retrieval is not always the answer either: when the knowledge fits the window, CAG (cache-augmented generation: preload it once into the KV cache and answer from it, no retriever in the loop) beats RAG; RAG earns its place when the corpus outgrows the context. Each repo below grounds the model a different way.
| Repo | How it keeps the model honest |
|---|---|
| rag-base | Hybrid search backend: pgvector + ParadeDB BM25 + LightRAG graph, 4-mode rerank on CPU and GPU sidecars, GLiNER NER. 19 endpoints, 115 integration tests, and evals that report hit@1 / hit@5 / MRR including the cases where the reranker makes results worse. |
| gamentic | The world is an explicit state machine and the narrator advances it: anything the model does to the world must pass through one of 40 validated tools that write to SQLite, the single source of truth. The narrator cannot change reality by hallucinating it, and bounded, capped state keeps long adventures consistent. |
| Censurado | The agent loop validates every story against real sources through a gated editorial workflow before anything goes live, and the only writer is an append-only publish API, so nothing rewrites history afterward. |
| noob-cli | Accuracy also dies by context bloat. noob-cli keeps the system surface lean: nine core tools, MCP schemas that enter context only after connection, live budget accounting with compaction receipts. Compare that to agent stacks that spend ~32k tokens of context before the first user message, like the Hermes agent. |
| rag-suite | Production-focused RAG platform: four isolated backends (inference, ingestion, RAG, reranker) with dense + BM25 hybrid and reranked retrieval. |
| Repo | What it is |
|---|---|
| ai-music-studio | Local AI album generation: an LLM plans the album, ACE-Step 1.5 generates the tracks, FLUX renders the cover art. SSE-streamed FastAPI backend, React frontend, MP3/MP4 and YouTube-ready exports. |
| gamentic | Three swappable generative layers behind one game engine: text (Gemma 4 26B MoE on llama.cpp + Vulkan), images (FLUX.2 klein via ComfyUI, rendered in the background off the request path), and voice (Maya1 TTS + SNAC codec, every character with its own voice). Each layer swaps for any OpenAI-compatible API, ComfyUI endpoint, or hosted vendor without touching the game. |
| comfyui-strix-docker | ComfyUI image generation packaged for AMD gfx1151, fixing the silent CPU fallback stock images hit. |
Shipped in production at Ohara (Modu's generation layer, one middleware, swappable vendors):
Video: Hedra, HeyGen, Luma, Veo 3, Runway · Image: GPT-Image, Flux · Voice and audio: ElevenLabs, PlayHT, Lyria 2 · Internal pipelines: sprite-sheet generation (one run to 16 game-ready assets), text-to-image-to-3D ending in a GLB model
AMD Strix Halo (Ryzen AI Max+ 395, gfx1151, 128 GB unified memory) is the box on my desk, so every number below was measured there. The practice is hardware-agnostic: CUDA, ROCm, Vulkan, or CPU, I tune local models for whatever the target runs and ship them as Docker with measured benchmarks. Everything serves OpenAI-compatible endpoints.
| Repo | What it is |
|---|---|
| vllm-awq4-qwen | vLLM + Qwen 3.6-27B AWQ-INT4 + DFlash speculative decoding. Measured 24.8 t/s single-stream, vision, tool calling, 256K context. Matches a DGX Spark at a third of the cost. |
| llama-vulkan-strix | llama.cpp server on Vulkan, GGUF weights pinned to GTT, plus an opt-in ROCm FP4 + MTP stack. Real measured benchmarks. |
| vllm-qwen / llama-qwen | BF16 and Q8_0 OpenAI-compatible servers for the same board, 256K context, TheRock ROCm. |
Off the agent path: xubamp, a from-scratch Winamp-style audio player for Wayland written in Rust; music, a static no-backend YouTube playlist player with agent bulk-import; and eva, AI-narrated Spanish micro-fables for smart TVs, read by a cloned voice.
Where the AI arc started. computer-vision (2024) benchmarks YOLOv8, EfficientDet, Detectron2, and SAM2 head to head for object detection and segmentation in video, PyTorch on CUDA, with a React viewer for the results (computer-vision-frontend). Same era: nerex extracts financial entities and numbers over four engines (regex, spaCy, word2number, BERT).
More than 3 years deploying and shipping AI solutions, on top of 23+ years of production software: games, real-time apps, and frontend platforms before the AI arc. Open to remote senior Applied AI roles and specialist contracts: agent systems, MCP integrations, RAG, generative AI, local inference. Reach me through hec-ovi.dev or LinkedIn.


