Dzaky Zakiyal Fawwaz

Accenture · SaaS produksi, tim berbasis di Jerman (remote) · 2025–2026

Agen AI untuk Platform GenAI Pembuatan Iklan di Produksi

AI Engineer, tim orkestrasi AI

Proyek klien. Nama, data, dan detail identitas dirahasiakan; arsitektur dijelaskan secara umum.

Agen AI untuk Platform GenAI Pembuatan Iklan di Produksi

Masalah

Membuat kreatif iklan untuk berbagai merek, pasar, dan ukuran banner adalah pekerjaan berulang yang tersebar di brief, panduan merek, template, dan putaran review. Platform ini membutuhkan layanan AI yang bisa membaca dokumen milik merek, melakukan percakapan briefing, serta membuat atau mengadaptasi kreatif yang tetap sesuai merek.

Pendekatan

Orchestrator ini adalah microservice Python di belakang API produk. Setiap kemampuan adalah “deep agent” berbasis pydantic-ai dengan tool dan skill sendiri; agen memanggil kembali platform melalui sekitar 120 tool MCP dan mengalirkan proses berpikir serta progres ke UI lewat SSE. Saya merilis agen Campaign Brief, Template, dan Creative, memperluas Brand Agent, membangun pipeline RAG yang dipakai agen untuk membaca panduan merek, membuat gerbang evaluasi yang wajib dilewati setiap perubahan agen di CI, serta menambahkan streaming reasoning, pembatalan eksekusi, tool multi-pertanyaan, konfirmasi pengguna sebelum aksi sensitif, ingestion PPTX, dan dekomposisi layer gambar.

Arsitektur

Arahkan kursor ke komponen untuk melihat koneksinya · geser untuk menggeser · gunakan + / − untuk zoom

  • Sumber
  • Pemrosesan
  • Model
  • Agen / optimizer
  • Penyimpanan data

Cara Kerja

  1. Unggah & deduplikasiDokumen merek (PDF, DOCX, PPTX, XLSX, HTML, dan lainnya) didaftarkan dengan pelacakan status dan deduplikasi checksum.
  2. EkstraksiDocling dan PyMuPDF mengambil teks, tabel, dan gambar; LLM vision mendeskripsikan halaman dan lampiran secara paralel, dengan timeout dan retry.
  3. Chunking & embeddingChunking berbasis heading menjadi bagian ~900 token dengan overlap 15%; embedding disimpan di pgvector.
  4. RetrievalPencarian BM25 atau embedding memilih konteks dalam batas token untuk setiap pemanggilan agen.
  5. Eksekusi agenAgen brief kampanye, merek, template, dan kreatif memanggil tool MCP platform, membuat teks dan gambar dengan Gemini atau Azure OpenAI, dan mengembalikan output yang divalidasi Pydantic.
  6. Streaming & persistensiLangkah berpikir, progres tool, dan delta teks dialirkan ke UI lewat SSE; perubahan state diterapkan ulang secara atomik dan percakapan di-checkpoint di Postgres.
  7. Gerbang kualitasSuite evaluasi LLM (pydantic-evals) berjalan di CI dengan skor minimum per suite, bersama pemeriksaan coverage dan kontrak API.

Yang Saya Bangun

  • Agen Campaign Brief, Template, dan Creative berbasis harness deep agent Pydantic AI, dengan konfirmasi pengguna sebelum aksi sensitif.
  • Perluasan Brand Agent untuk mengekstrak warna, brand voice, dan logo dari PDF panduan merek dengan pipeline LLM + VLM.
  • Suite evaluasi LLM (pydantic-evals, LLM-as-judge) dan gerbang GitHub Actions yang memblokir PR saat kualitas menurun.
  • Pipeline RAG untuk agen: parsing Docling, chunking berbasis heading, embedding di pgvector, dan retrieval BM25 atau embedding atas panduan merek.
  • Streaming token reasoning lewat SSE, pembatalan eksekusi, tool multi-pertanyaan, dan ingestion PPTX untuk RAG.
  • Integrasi computer vision (LayerD, inpainting LaMa, OCR) untuk memecah gambar iklan menjadi layer yang dapat diedit.
  • Kontribusi pada pipeline dokumen, resize template, dan AI smart crop; agen brief kampanye berawal dari proof of concept LangGraph saya.

Dampak

Merilis 35 PR yang di-merge ke codebase besar lintas tim yang berjalan di produksi untuk merek konsumen global, termasuk agen yang dipakai marketer setiap hari dan gerbang kualitas yang mencegah setiap perubahan agen menurunkan kualitas.

Metrik Kunci

35Pull request saya yang di-merge
~120Tool MCP platform yang bisa dipakai agen
15k+Tes otomatis di layanan (seluruh tim)

Tumpukan Teknologi

PythonFastAPIpydantic-aiLangGraphGemini (Vertex AI)Azure OpenAIPostgreSQL + pgvectorDoclingMCPpydantic-evalsGitHub ActionsLayerDLaMaOCRAWS EKSNestJSVue 3