This folder contains runnable code samples that map to the workshop plan. The practical flow is built around an email triage agent that classifies incoming emails into task, event, or no_action and routes them to downstream agents.
Step 01 uses a direct OpenAI-compatible HTTP call with no SDK, and falls back to naive keyword routing when OPENAI_API_KEY is not set. Step 02 uses the Google ADK (@google/adk) to define reusable agents. Later steps reuse those same agents for orchestration, n8n, and wrapper-based production concerns.
cd 2026-02-28-holyjs-workshop
node -v
npm install
npm run start:01- Теория про агентов. Что такое вообще
- See
src/runtime/README.mdfor the runtime model and architecture notes.
- See
- Разработка агента "на коленке"
- Run
npm run start:01and opensrc/01-standalone/run.js.
- Run
- Теория про SDK для агентов
- See
src/02-sdk/README.mdfor the Google ADK overview.
- See
- Разработка агента на SDK
- Run
npm run start:02and opensrc/02-sdk/run.js.
- Run
- Теория про оркестрацию. Что делать, когда агентов несколько
- Run
npm run start:03and opensrc/03-orchestrator/run.js.
- Run
- Разработка ещё одного-двух агентов и встраивание его в n8n
- Run
npm run start:04and opensrc/04-n8n/README.md.
- Run
- Теория общих правил оркестрации. Безопасность, мониторинг и т.д.
- Run
npm run start:05and opensrc/05-security-observability/run.js.
- Run
- Практика
- Use
src/examples/for exercises and tasks.
- Use
- Конец
src/01-standalone/raw LLM email triage over HTTP without an SDKsrc/02-sdk/Google ADK agents: classify email, simulate task creation, simulate agenda item creationsrc/03-orchestrator/monolithic single-file orchestration over the step 02 agentssrc/04-n8n/n8n integration nodes for visual orchestration over the step 02 agentssrc/05-security-observability/wrappers for prompt-injection checks and success/error observabilitysrc/examples/practice tasks and sample emailssrc/runtime/runtime model notes (kept for theory section)- Also includes the small OpenAI-compatible helper reused by step
01
- Also includes the small OpenAI-compatible helper reused by step
- Step
01uses a real model whenOPENAI_API_KEYis set, otherwise it falls back to naive keyword routing. - Step
02stays on the ADK code path even without credentials by using a local keyword-basedBaseLlmfallback. - Step
02also supports Gemini, OpenAI, or a local OpenAI-compatible endpoint viaSDK_PROVIDER; seesrc/02-sdk/README.md. - Step
03is intentionally monolithic and reuses the step02agents from one file. - Step
04reuses the same step02agents in n8n nodes, plus the step03router as a shortcut node. - Step
05wraps existing agents for prompt-injection blocking and success/error monitoring instead of re-implementing routing.