Client work

Custom GPT Manager

Several chat agents from wp-admin, each with its own prompt, model, knowledge base, and access rules, embedded with a shortcode.

  • Per-agent prompts & models
  • Shortcode embed
  • Conversation & token logs
  • Rate limits
Custom GPT Manager agent editor with the shortcode for embedding the chat

WORDPRESS · PHP · JAVASCRIPT · OPENROUTER

I do not hold ownership rights to this plugin; it was custom-developed for a client.

The problem

One WordPress site, lots of jobs for AI. The client wanted several assistants, each with its own instructions, its own model, its own knowledge, and its own audience. Most chat plugins give you a single bot. Some expose the API key in the browser, and a public chat box with no limits can burn through an AI budget overnight.

What I built

Custom GPT Manager lets the client create as many agents as they need from the WordPress dashboard. Each one gets its own prompt, model, and settings, and goes on any page with a shortcode. Several agents can share a page without getting in each other’s way.

Agents can learn from the client’s own material: uploaded files (PDF, Word, CSV, or text) or pages pulled in from websites. Answers stick to that material and show where they came from. A content-coach agent reads the site’s own pages and links back to them.

The API key never leaves the server. Filters check every message before and after each reply, including attempts to trick an agent into misbehaving. Access can depend on a member’s role or plan, and limits and cool-downs stop anyone from running up the bill. The dashboard shows every conversation, what it cost, how fast it was, and any errors, and sends an email or Slack alert when something looks wrong.

How it went

I built it end to end, then kept extending it for six months. Rated 5 stars.

What’s public

The client owns the plugin, so the source is private. The engagement is on Upwork.

Later, I rebuilt the core idea from scratch as ARWP Agents, a free plugin on WordPress.org. It shares no code with the client’s version. It keeps the essentials: separate agents with their own prompt and model, shortcodes, streaming replies, message filters, role-based access, usage limits, and a chat log with token counts. The knowledge bases, citations, alerts, and exports stayed with the client. The source is on GitHub.