Bagaimana AI Agent dapat membaca, mengubah, membuat, hingga menandatangani dokumen secara otomatis?
![]() |
| Bagaimana AI Agent dapat membaca, mengubah, membuat, hingga menandatangani dokumen secara otomatis? |
Sebagian besar aplikasi berbasis LLM saat ini sudah cukup baik dalam mengambil informasi dari dokumen. Dengan pendekatan seperti Retrieval-Augmented Generation (RAG), model AI dapat membaca isi PDF, mengambil teks yang relevan, kemudian menggunakannya sebagai konteks untuk menghasilkan jawaban.
Namun, ada satu masalah yang lebih kompleks: bagaimana jika AI tidak hanya perlu membaca dokumen, tetapi juga harus melakukan sesuatu terhadap dokumen tersebut?
Misalnya:
- Mengubah file Word menjadi PDF.
- Melakukan OCR pada dokumen hasil scan.
- Mengambil tabel dan field formulir.
- Menggabungkan beberapa PDF.
- Membagi dokumen menjadi beberapa bagian.
- Membuat kontrak berdasarkan template.
- Memberikan password pada PDF.
- Mengirim dokumen untuk ditandatangani secara elektronik.
Di sinilah konsep agentic document workflow menjadi menarik.
Dengan menggabungkan LLM Agent, Model Context Protocol (MCP), PDF API, dan eSign API, kita dapat membangun pipeline yang memungkinkan AI memilih dan menjalankan berbagai operasi dokumen secara otomatis.
Apa Itu Agentic Document Workflow?
Agentic document workflow adalah workflow otomatis di mana sebuah AI agent tidak hanya membaca dokumen, tetapi juga menjalankan operasi terhadap dokumen berdasarkan tujuan yang diberikan.
Dalam workflow RAG biasa, prosesnya kurang lebih seperti ini:
Dokumen → ekstraksi teks → LLM → jawaban
Sementara dalam agentic document workflow, prosesnya bisa menjadi:
Dokumen → OCR → ekstraksi data → transformasi → pembuatan dokumen → tanda tangan elektronik
Perbedaannya cukup penting.
RAG berfokus pada mengambil informasi dari dokumen, sedangkan agentic workflow memungkinkan AI memproses dan mengubah dokumen.
Sebagai contoh, bayangkan sebuah perusahaan menerima invoice dalam bentuk PDF hasil scan.
AI agent dapat melakukan beberapa langkah berikut:
- Menerima invoice.
- Menjalankan OCR.
- Mengambil nomor invoice, nama perusahaan, tanggal, dan total pembayaran.
- Mengubah hasil ekstraksi menjadi data terstruktur.
- Menggabungkan data tersebut ke dalam template dokumen.
- Menghasilkan PDF baru.
- Mengirim dokumen tersebut untuk ditandatangani.
Seluruh proses tersebut dapat dijalankan sebagai rangkaian tool call oleh AI agent.
MCP sebagai Jembatan antara AI dan API
Model Context Protocol (MCP) menyediakan standar untuk menghubungkan AI agent dengan berbagai tools.
Daripada membuat integrasi REST API khusus untuk setiap kebutuhan, API dapat diekspos sebagai kumpulan tool yang dapat ditemukan dan dipanggil oleh AI agent.
Secara sederhana, arsitekturnya dapat dibayangkan seperti ini:
┌─────────────────────┐
│ LLM Agent │
│ │
│ Memahami tugas dan │
│ memilih tool │
└──────────┬──────────┘
│
│ MCP
▼
┌─────────────────────┐
│ MCP Server │
│ │
│ PDF Tools │
│ OCR │
│ Extraction │
│ Merge / Split │
│ Conversion │
└──────────┬──────────┘
│
│ REST API
▼
┌─────────────────────┐
│ PDF Services API │
└─────────────────────┘
AI agent tidak perlu mengetahui detail HTTP request yang digunakan API.
Agent cukup mengetahui bahwa tersedia sebuah tool, misalnya:
convert_word_to_pdf ocr_document extract_document merge_pdf split_pdf compress_pdf
Kemudian model menentukan tool mana yang diperlukan berdasarkan konteks tugas.
Pola ini sebenarnya mirip dengan penggunaan tool pada framework agent seperti LangChain atau AutoGen. Model menentukan tool apa yang harus digunakan, sementara detail implementasi API ditangani oleh tool tersebut.
Foxit PDF API MCP Server
Dalam contoh ini, Foxit menyediakan MCP Server untuk PDF API yang mengekspos lebih dari 30 operasi dokumen sebagai MCP tools.
Tool tersebut mencakup beberapa kategori utama:
Document Lifecycle
- Upload PDF
- Download PDF
- Delete PDF
Membuat Dokumen
- Word → PDF
- Excel → PDF
- PowerPoint → PDF
- HTML → PDF
- URL → PDF
- Text → PDF
- Image → PDF
Konversi
- PDF → Word
- PDF → Excel
- PDF → PowerPoint
- PDF → HTML
- PDF → Text
- PDF → Image
Manipulasi PDF
- Merge
- Split
- Extract pages
- Compress
- Flatten
- Linearize
- Watermark
- Operasi halaman lainnya
Security
- Menambahkan password
- Menghapus password
- Mengatur permission
Forms
- Export data form sebagai JSON
- Import data form dari JSON
Selain itu tersedia pula fitur OCR dan document comparison.
Dua Model Arsitektur
Ada dua pendekatan utama yang dapat digunakan.
1. Programmatic Pipeline
Pada pendekatan ini, AI agent seperti Claude Desktop, Cursor, VS Code dengan GitHub Copilot, atau framework agent custom terhubung ke Foxit MCP Server.
Alurnya:
AI Agent │ ▼ MCP Server │ ▼ Foxit PDF Services API │ ▼ Hasil operasi dokumen │ ▼ AI Agent
AI agent dapat menjalankan beberapa operasi secara berurutan tanpa harus menulis REST integration secara manual.
Pendekatan ini cocok untuk workflow otomatis yang berjalan tanpa banyak intervensi manusia.
2. In-App Orchestration
Pendekatan kedua menggunakan Foxit PDF Editor sebagai MCP Host.
AI Assistant di dalam aplikasi dapat terhubung dengan MCP Server eksternal dan melakukan tindakan berdasarkan dokumen yang sedang dibuka.
Contohnya, AI dapat mengambil informasi dari kontrak PDF kemudian membuat tiket di Jira atau melakukan tindakan pada layanan lain.
Model ini lebih cocok untuk knowledge worker yang tetap ingin mengawasi proses dari dalam aplikasi. Peran seperti ini sebenarnya cukup dekat dengan pola kerja yang belakangan makin populer di dunia engineering.
Persiapan Sebelum Memulai
Untuk mengikuti contoh ini, beberapa hal perlu disiapkan:
- Akun Foxit Developer.
- Foxit PDF API MCP Server.
- MCP-compatible host seperti Claude Desktop, Cursor, atau VS Code.
- Python workspace untuk contoh eSign.
- Environment variables untuk kredensial API.
Implementasi MCP Server menyediakan versi Python dan TypeScript. Versi Python menggunakan FastMCP dan membutuhkan Python 3.11+, sedangkan implementasi TypeScript membutuhkan Node.js 18+.
Untuk contoh Python, kita dapat membuat virtual environment:
mkdir agentic-docs && cd agentic-docs python3 -m venv .venv source .venv/bin/activate pip install requests
Kemudian konfigurasi environment variables:
export FOXIT_CLOUD_API_HOST="https://na1.fusion.foxit.com/pdf-services" export FOXIT_CLOUD_API_CLIENT_ID="your_client_id" export FOXIT_CLOUD_API_CLIENT_SECRET="your_client_secret"
Jangan menyimpan Client ID dan Client Secret langsung di source code atau file konfigurasi yang akan masuk repository.
MCP Server akan membaca credential tersebut ketika dijalankan dan menggunakannya untuk melakukan autentikasi ke PDF Services API.
Menghubungkan MCP Server dengan VS Code
Untuk VS Code, MCP Server dapat didaftarkan melalui file:
.vscode/mcp.json
Contoh konfigurasi:
{
"servers": {
"foxit-pdf": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/foxit-pdf-api-mcp-server",
"run",
"foxit-pdf-api-mcp-server"
],
"env": {
"FOXIT_CLOUD_API_HOST": "${env:FOXIT_CLOUD_API_HOST}",
"FOXIT_CLOUD_API_CLIENT_ID": "${env:FOXIT_CLOUD_API_CLIENT_ID}",
"FOXIT_CLOUD_API_CLIENT_SECRET": "${env:FOXIT_CLOUD_API_CLIENT_SECRET}"
}
}
}
}
Dengan konfigurasi tersebut, VS Code menjalankan MCP Server sebagai subprocess melalui uv.
Credential tetap diambil dari environment variable sehingga tidak perlu ditulis secara langsung di mcp.json.
Untuk Claude Desktop, server juga dapat dijalankan menggunakan package npm yang disediakan tanpa harus melakukan clone repository secara manual.
Operasi Dokumen yang Bisa Dilakukan AI Agent
Setelah MCP Server aktif, AI agent dapat menggunakan berbagai tool untuk membangun pipeline dokumen.
Ada lima operasi yang sangat berguna dalam workflow production:
- Conversion
- OCR
- Structural extraction
- Merge / Split
- Document generation
Mari lihat bagaimana masing-masing digunakan.
1. Conversion
Misalnya agent mendapatkan file DOCX.
Sebelum melakukan operasi berikutnya, agent dapat mengubahnya menjadi PDF terlebih dahulu.
DOCX ↓ Word → PDF ↓ PDF ↓ OCR / Extraction / Merge
Dengan membuat format dokumen menjadi konsisten sejak awal, operasi berikutnya dapat bekerja dengan format yang sama.
2. OCR
OCR sangat berguna ketika dokumen berupa hasil scan atau PDF yang sebenarnya hanya berisi gambar.
Misalnya:
invoice.pdf
│
▼
OCR
│
▼
PDF dengan teks
│
▼
Data Extraction
Tanpa OCR, agent mungkin tidak dapat membaca informasi yang terdapat di dalam gambar.
Untuk invoice, kontrak, formulir, dan dokumen administratif hasil scan, OCR biasanya menjadi langkah awal sebelum proses ekstraksi data.
3. Structural Extraction
Setelah dokumen dapat dibaca, agent dapat melakukan ekstraksi secara terstruktur.
Contohnya:
{
"invoice_number": "INV-2026-001",
"date": "2026-08-26",
"company": "Example Company",
"total": 15000000
}
Selain teks, structural extraction dapat digunakan untuk mengambil informasi seperti:
- Teks.
- Tabel.
- Form fields.
- Konten berdasarkan halaman.
- Gambar.
Hasilnya dapat diteruskan ke sistem lain seperti database, BI tools, atau LLM berikutnya untuk proses klasifikasi dan analisis.
4. Merge dan Split
Operasi sederhana seperti merge dan split menjadi sangat berguna dalam workflow otomatis.
Misalnya perusahaan memiliki:
contract.pdf invoice.pdf attachment.pdf
Agent dapat menggabungkannya menjadi:
complete-package.pdf
Sebaliknya, dokumen besar dapat dipecah menjadi beberapa bagian:
large-document.pdf
│
▼
┌────┼────┐
▼ ▼ ▼
Part 1 Part 2 Part 3
Pembagian seperti ini juga dapat membantu ketika dokumen perlu diproses secara paralel oleh beberapa langkah AI.
5. Membuat Dokumen Secara Dinamis dengan DocGen
Salah satu bagian yang menarik adalah pembuatan dokumen berdasarkan template.
Foxit Document Generation API dapat menggunakan template DOCX yang memiliki dynamic tags seperti:
{{customer_name}}
{{invoice_number}}
{{total_amount}}
Kemudian agent memberikan data dalam bentuk JSON:
{
"customer_name": "Budi",
"invoice_number": "INV-001",
"total_amount": 15000000
}
Template tersebut kemudian dapat menghasilkan dokumen PDF baru.
Arsitekturnya:
DOCX Template
+
JSON Data
│
▼
DocGen
│
▼
Generated PDF
Pendekatan ini memungkinkan satu template digunakan untuk menghasilkan banyak dokumen yang berbeda berdasarkan data dari database, CRM, atau form.
Contoh Workflow dari Awal hingga Akhir
Sekarang kita bisa menggabungkan seluruh komponen.
Misalnya perusahaan menerima purchase order dalam bentuk PDF hasil scan.
Agent dapat menjalankan workflow berikut:
Purchase Order
│
▼
OCR
│
▼
Extract Structured Data
│
▼
DocGen
│
▼
Generated Contract
│
▼
eSign
│
▼
Signed Document
Yang menarik, AI agent yang menentukan urutan operasi.
MCP Server bertanggung jawab menerjemahkan tool call menjadi request ke PDF Services API.
Dengan demikian, developer tidak perlu membuat integrasi REST khusus untuk setiap langkah workflow.
Menghubungkan Workflow dengan eSign
Proses tanda tangan menggunakan Foxit eSign API, yang merupakan layanan terpisah dari PDF Services API.
Artinya, credential untuk eSign juga berbeda.
Contoh environment variables:
export FOXIT_ESIGN_BASE_URL="https://na1.foxitesign.foxit.com" export FOXIT_ESIGN_CLIENT_ID="your_esign_client_id" export FOXIT_ESIGN_CLIENT_SECRET="your_esign_client_secret"
Workflow eSign pada dasarnya terdiri dari beberapa langkah:
PDF siap │ ▼ Request Access Token │ ▼ Create Signing Folder │ ▼ Tambahkan Signer │ ▼ Send for Signature
API menggunakan OAuth client_credentials untuk mendapatkan bearer token.
Setelah itu, PDF dapat dikirim ke endpoint createfolder, kemudian folder tersebut dikirim melalui sendDraftFolder.
Contoh sederhananya:
import base64
import os
import requests
BASE_URL = os.environ["FOXIT_ESIGN_BASE_URL"]
CLIENT_ID = os.environ["FOXIT_ESIGN_CLIENT_ID"]
CLIENT_SECRET = os.environ["FOXIT_ESIGN_CLIENT_SECRET"]
def get_access_token():
response = requests.post(
f"{BASE_URL}/api/oauth2/access_token",
data={
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"grant_type": "client_credentials",
"scope": "read-write",
},
timeout=30,
)
response.raise_for_status()
return response.json()["access_token"]
Perhatikan bahwa endpoint token tersebut menggunakan form-encoded request, bukan JSON. Mengirim body dalam format JSON dapat menghasilkan 415 Unsupported Media Type.
Signature Field pada Dokumen
Ada satu hal penting sebelum dokumen dikirim untuk ditandatangani.
Signer harus memiliki signature field.
Salah satu cara yang digunakan adalah dengan menambahkan text tag pada dokumen.
Contohnya:
${s:1:________}
Kemudian API memproses text tag tersebut menjadi signature field ketika:
{
"processTextTags": true
}
digunakan.
Jika tidak ada signature field, proses pengiriman dokumen untuk ditandatangani dapat gagal.
Hal Penting untuk Production
Membangun prototype memang relatif mudah.
Namun ketika workflow mulai digunakan dalam skala besar, ada beberapa hal yang harus diperhatikan.
1. API Credit
Setiap successful API call pada Foxit PDF Services API menggunakan satu credit.
Request yang menghasilkan HTTP 4xx atau 5xx tidak menggunakan credit.
Developer Dashboard menyediakan informasi penggunaan secara real-time sehingga biaya workflow dapat dipantau sebelum sistem diperbesar.
2. Idempotency
Tidak semua operasi aman untuk diulang.
Operasi seperti:
- Merge
- Flatten
- Convert
dapat di-retry ketika terjadi kegagalan.
Namun pembuatan signing folder tidak bersifat idempotent.
Jika agent mengulangi createfolder tanpa melakukan pengecekan status terlebih dahulu, sistem dapat membuat folder duplikat dan bahkan mengirim permintaan tanda tangan lebih dari sekali.
Karena itu, proses pembuatan signing folder sebaiknya dilindungi dengan state check.
3. Async Operation
Beberapa operasi berjalan secara asynchronous.
API dapat mengembalikan sebuah job ID terlebih dahulu.
Agent kemudian harus melakukan polling hingga status berubah menjadi:
COMPLETED
atau:
FAILED
Dokumen sumber merekomendasikan polling sekitar setiap tiga detik untuk operasi tersebut.
Kesalahan yang Sering Terjadi
Beberapa kesalahan yang perlu diperhatikan ketika menggunakan eSign API:
Lupa /api/
Endpoint eSign menggunakan prefix /api/.
Contohnya:
/api/folders/createfolder
bukan path tanpa /api/.
Mengirim access token request sebagai JSON
Gunakan form data, bukan JSON.
Lupa inputType: base64
Jika mengirim file menggunakan base64, API perlu mengetahui bahwa input tersebut menggunakan format base64.
Tidak menyediakan signature field
Signer dengan permission FILL_FIELDS_AND_SIGN harus memiliki signature field.
Menganggap signing tersedia di MCP Server
MCP Server menyediakan tool untuk operasi PDF, sedangkan proses signing menggunakan Foxit eSign API yang terpisah.
MCP + PDF API: Kenapa Menarik untuk Developer?
Pendekatan ini menunjukkan perubahan menarik dalam cara kita membangun aplikasi berbasis AI.
Sebelumnya, developer mungkin membuat workflow seperti:
Backend │ ├── REST API A ├── REST API B ├── REST API C ├── OCR Service └── Signing Service
Kemudian developer harus menulis logic untuk menentukan kapan setiap API dipanggil.
Dengan agentic architecture:
┌─────────────┐
│ LLM Agent │
└──────┬──────┘
│
MCP
│
┌─────────────┼─────────────┐
▼ ▼ ▼
OCR Convert Merge
│ │ │
└─────────────┼─────────────┘
▼
DocGen
│
▼
eSign
Agent dapat menentukan tool yang diperlukan berdasarkan tugas.
Developer kemudian lebih fokus pada desain workflow, business logic, keamanan, dan reliability, dibandingkan membuat wrapper API satu per satu.
Kesimpulan
Agentic document workflow membawa konsep AI agent satu langkah lebih jauh.
LLM tidak lagi hanya digunakan untuk membaca dokumen dan menjawab pertanyaan. Dengan bantuan MCP dan API yang dapat dipanggil sebagai tools, AI agent dapat menjalankan rangkaian operasi seperti:
- OCR
- Ekstraksi data
- Konversi dokumen
- Merge dan split PDF
- Manipulasi dokumen
- Pembuatan dokumen dari template
- Pengiriman dokumen untuk tanda tangan elektronik
Dalam arsitektur Foxit, MCP Server menyediakan lebih dari 30 tool untuk operasi PDF, sementara proses signing ditangani oleh eSign API secara terpisah.
Konsep ini sangat menarik untuk aplikasi seperti automated invoice processing, contract management, document onboarding, compliance workflow, dan berbagai sistem back-office berbasis AI. Perkembangan model AI di balik semua ini pun terus bergerak cepat — termasuk dari sisi riset di luar domain dokumen sekalipun.
Pada akhirnya, pergeseran pentingnya bukan sekadar dari chatbot ke AI agent, tetapi dari:
AI yang hanya memahami dokumen
menjadi:
AI yang dapat memahami, memproses, menghasilkan, dan menindaklanjuti dokumen.
Itulah salah satu area di mana kombinasi LLM + MCP + API mulai memberikan dampak nyata pada software engineering dan otomasi bisnis.
Artikel terkait lainnya di KonsepKoding:
- Ketika AI Coding Agent Menjadi Terlalu...
- Forward Deployed Engineer, Kenapa...?
- GeoPT, AI Baru dari MIT yang Membuat...

0 Comments