Explore the three core approaches to directing LLMs: prompting to steer output through instructions, fine-tuning to reshape model behavior through training, and agents to extend capabilities with tools and multi-step actions. Develop practical decision-making frameworks for choosing the right intervention level based on your task's constraints and requirements.
Understanding what a large language model is gets you only so far. The more pressing question is: how do you make it do what you actually need? This course addresses exactly that — the practical methods and systems that bridge the gap between a raw model and a useful, reliable tool.
There are three broad layers to working with LLMs effectively: prompting, fine-tuning, and agentic systems. Each layer represents a different level of intervention, a different cost-benefit tradeoff, and a different class of problems it solves best.
LLMs are trained on vast quantities of text and develop a general-purpose ability to generate coherent, contextually appropriate language. But "general-purpose" is precisely the problem — a model trained on everything is not automatically optimised for your specific task, your tone, your domain, or your workflow. The methods in this course are answers to that problem.
Think of a pre-trained LLM as a highly capable but unconstrained collaborator. Prompting is how you give it instructions. Fine-tuning is how you reshape its habits. Agents are how you give it tools and let it act.
Prompting is the most immediate and accessible way to steer a model. You write text — a question, an instruction, a few examples — and the model responds. No code changes, no model training, no infrastructure beyond API access.
But prompting is not just asking questions. Prompt engineering is the disciplined practice of designing inputs that reliably elicit high-quality outputs. This includes structuring instructions clearly, providing examples (few-shot prompting), specifying the desired format, and iterating based on observed failures.
Within a conversation, the system prompt plays a special role: it is an instruction given before the user's message that sets the model's persona, constraints, or behavioral guidelines. A well-written system prompt can make the same underlying model behave like a customer service agent, a coding assistant, or a Socratic tutor.
Prompting is fast and costs nothing beyond the API call itself. Its limitation is that it works within the model's existing knowledge and capabilities — you cannot prompt your way to new factual knowledge the model lacks, and you cannot prompt a model into consistently following a very unusual style or format without significant prompt overhead.
Where prompting guides a model at inference time, fine-tuning changes the model itself. Additional training on a curated dataset adjusts the model's weights so that the new behavior becomes the default — not something you have to re-specify every time.
Fine-tuning is the right tool when:
Fine-tuning carries real costs: you need training data, compute, and tooling. It also locks in behavior — a fine-tuned model is less flexible than a prompted one, because the weights themselves have been shifted.
Both prompting and fine-tuning treat the LLM as a responder — it receives input and produces output. Agentic systems change this fundamentally. An agent is a system where the LLM is given tools and the ability to take actions: calling APIs, searching the web, writing and executing code, reading files, or chaining multiple steps in pursuit of a goal.
Agents unlock a qualitatively different class of tasks — ones that require information the model doesn't have at inference time, or that involve multiple sequential decisions, or that produce side effects in the world (sending an email, updating a database). The model becomes less like a text generator and more like an autonomous planner.
This power comes with new challenges: reliability, error handling, safety, and the difficulty of debugging multi-step reasoning chains.
The three layers of working with LLMs, ordered by degree of intervention: prompting requires no model changes; fine-tuning adjusts weights; agents extend the model with tools and multi-step action.
These three approaches are not mutually exclusive. In practice, real systems combine them:
Developing intuition for which layer to reach for — and when combining layers makes sense — is one of the central skills this course builds.
By working through this material, you will gain:
These are the skills that turn knowledge of what LLMs are into the ability to build things with them.