This episode traces the evolution from static chatbots to AI agents that take action, compares agent architecture with model-only workflows, and then unpacks the strengths of Hermes AI Agent: event-driven, plugin extensibility, and the orchestration that ties it all together.

In episode 0 you prepared the foundational skills and tooling: Node.js, VS Code, the Hermes CLI, LLM provider credentials, and Docker for sandboxing. Now it is time to understand why we go to the trouble of building an agent — rather than just calling the model directly.
Here is the roadmap for this episode: we will trace how AI agents have taken on a role in modern applications, compare agent architecture with model-only workflows, and then break down the three main strengths of Hermes AI Agent — event-driven, plugin extensibility, and orchestration — along with when you should choose Hermes and when you should not.
Ten years ago, an "AI application" usually meant a chatbot that answered FAQs using if-else rules. Five years ago, it became an LLM API wrapper: prompt in, text out. Both are reactive — waiting for input, producing output, then stopping.
Modern applications demand more. Applications need systems that can:
This is the role that AI agents fill. They are no longer a chat widget pinned to the corner of an application, but a processing component on par with a backend service — with one advantage: they can decide which tool to use to complete a task. In companies, agents handle support tickets, run scheduled reports, moderate content, and analyze conversations. All of it without handwritten branching code.
The simplest pattern is model-only: one request to the LLM, one text answer. All the surrounding logic is written manually in the application code.
async function answerQuestion(question: string): Promise<string> {
const response = await llmClient.chat({
messages: [
{ role: "system", content: "Kamu adalah asisten yang ringkas." },
{ role: "user", content: question },
],
});
return response.text;
}Notice the limitations. If the question is "what is the stock level of product X?", this workflow must first know how to call the stock endpoint, then inject the result into the prompt. Every variation of the question needs a new code branch. The model never "makes a decision" — all decisions rest with the developer.
In agent architecture, the model is given a list of tools and the freedom to choose when to call them. The model returns a tool call; the runtime executes it; the result is returned to the model; the loop continues until a final answer.
const agent = new HermesAgent({ model: "gpt-4o" });
agent.registerTool(getStockLevel);
agent.registerTool(getProductInfo);
const answer = await agent.run(
"Berapa stok produk SKU-123?",
);The difference is fundamental: the code above does not dictate the sequence of steps. The agent decides, from the conversational context, that checking stock requires calling getStockLevel — and then assembles the answer from the result. Correctness is determined by the model, not by the developer. That is why agent evaluation and testing (episodes 13 and 19) has become its own serious discipline.
Hermes is built as an event-driven runtime. The execution flow is not rigid linear code but a sequence of events: message received, turn started, tool called, tool finished, message sent. Each of these points emits an event that your application can hook into.
hermes run --profile support --eventsWith event-driven architecture, you can observe every agent step in real time, inject logic in the middle of execution (for example, rejecting a dangerous tool), or forward events to an observability pipeline. This is what sets Hermes apart from other agent SDKs that treat execution as a monolithic function.
Hermes is modular: the kernel provides core services, and almost everything else — tools, memory providers, the context engine, even messenger platforms — is a plugin. You do not need to fork the repository or rewrite the runtime to add capability.
With plugins, teams can share modules across projects without copying code — we will write our first plugin in episode 16.
The third strength is orchestration: Hermes can manage work far more complex than a single conversation. A cron scheduler runs scheduled tasks; subagents are delegated for parallel work; multiple agents coordinate to achieve one big goal. All of it is controlled by the same kernel as a single agent — there is no separate runtime.
This matters in practice: an agent you build today for simple chat can grow into a multi-agent orchestrator without changing the foundation. Episodes 10, 14, and 17 will deepen each of these patterns.
Honestly, not every problem needs an agent. Some practical guidelines:
Info
The principle is simple: model-only suits answers; agents suit actions; and Hermes excels when those actions need observability, extensibility, and orchestration in a single runtime.
This episode placed Hermes AI Agent in context: the role of AI agents in modern applications that no longer just talk but act; the fundamental difference between agent architecture and model-only workflows; and Hermes's three strengths — event-driven, plugin extensibility, and orchestration.
Key takeaways:
In the next episode 2 we will take apart the core concepts and main architecture of Hermes AI Agent — the controller, kernel, tools, memory, and environment components; the agent lifecycle from perception, planning, and action to reflection; as well as LLM integration, tool invocation, and custom actions. Brace yourself, because this is the most technical episode of the early phase!