Agent
What is an agent
An AI agent is an LLM wrapped in a loop that can act, not just answer. The model decides which tool to call, observes the result, and repeats until the goal is met. The essential ingredients are:
- A model โ the reasoning engine.
- Tools โ functions it can call (run a command, read a file, search the web).
- A loop โ plan โ act โ observe โ re-plan, until done.
- Context / memory โ the task, prior steps, and relevant project knowledge.
A plain chatbot returns text. An agent edits files, runs tests, fixes the failures, and reports back โ it closes the loop on real work.
What is an agent plugin
A plugin packages reusable capability so you don’t re-teach the agent every time. Across today’s tools a plugin typically bundles some of:
- Slash commands โ custom prompts/workflows you invoke by name.
- Subagents โ specialized helpers the main agent can delegate to.
- Skills โ domain knowledge loaded on demand.
- Hooks โ scripts that fire on events (e.g. before a commit).
- MCP servers โ connections to external systems (see MCP).
Plugins make an agent extensible and shareable: install one and the agent gains new commands and integrations instantly.
Three mainstream agents
| Agent | Form | Strength | Trade-off |
|---|---|---|---|
| Claude Code | CLI / IDE | Deep autonomy, rich plugin + MCP + skills ecosystem | Terminal-first; needs a Claude subscription/API |
| Cursor | Full IDE (VS Code fork) | Best inline editing UX, multi-model, great for exploration | You switch editors; agent autonomy is shallower |
| GitHub Copilot | IDE extension + coding agent | Native GitHub/PR integration, huge install base | Less open/customizable, ecosystem-locked |
The differences in short:
- Claude Code is the most agentic and the most open to extend โ plugins, skills, hooks and MCP make it programmable. Best when you want the agent to drive multi-step work autonomously.
- Cursor wins on editing experience. It’s an IDE, so completions, diffs and context-picking feel native. Best for hands-on, in-editor coding.
- Copilot wins on integration and ubiquity. It lives where your code already is (GitHub, VS Code, JetBrains) and its coding agent can take an issue to a PR. Best for teams already standardized on GitHub.
There is no single winner โ pick by how much autonomy vs. inline control you want, and how much you care about extensibility vs. zero-setup integration.
Developing a plugin
Using Claude Code’s plugin system as the concrete example, a plugin is just a directory with a manifest plus the components it adds:
my-plugin/
โโโ .claude-plugin/plugin.json # name, version, description
โโโ commands/ # slash commands (markdown prompts)
โโโ agents/ # subagent definitions
โโโ skills/ # on-demand knowledge
โโโ hooks/ # event scripts
โโโ .mcp.json # MCP servers to wire in
The workflow is roughly:
- Scaffold the directory and
plugin.jsonmanifest. - Add a command โ a markdown file whose body is the prompt the agent runs.
- Optionally add subagents, skills, hooks, or MCP servers.
- Install it locally to test, then publish via a marketplace/repo so others can install it.
You’re not writing model code โ you’re writing prompts, configuration, and small scripts that compose into reusable behavior.