[ blog · use-case ]11 min read

Pengambilan yurisprudensi Inggris yang berlandaskan sitasi setelah Ayinde v Haringey

Sarah ChoyDiterbitkan 3 Mei 202611 menit baca
Pengambilan yurisprudensi Inggris yang berlandaskan sitasi setelah Ayinde v Haringey

Ayinde v Haringey mengubah perhitungan AI hukum Inggris dalam semalam. Seorang barrister mengutip lima kasus palsu yang dihasilkan sebuah LLM dan dirujuk ke Bar Standards Board. Sitasi yang terhalusinasi kini memiliki konsekuensi etika profesi. Berikut panduan developer untuk membangun pengambilan yurisprudensi Inggris yang berlandaskan sitasi — TNA Find Case Law, legislation.gov.uk, parsing sitasi netral, dan cara menghubungkannya ke agen yang berfungsi.

TL;DR

  • Ayinde v Haringey [2025] EWHC 1383 (Admin) menjadikan sitasi kasus yang terhalusinasi sebagai persoalan etika profesi, bukan sekadar masalah kualitas.
  • Ketentuan BAILII membatasi akses programatik massal; layanan Find Case Law dari The National Archives adalah API yang sah untuk putusan Inggris & Wales.
  • legislation.gov.uk memiliki Developer API yang stabil dengan akses point-in-time — penting untuk pekerjaan compliance, di mana 'berlaku pada 30 Juni 2024' adalah query nyata.
  • Studi 'Hallucination-Free?' dari Stanford HAI menunjukkan Westlaw dan Lexis+ AI masih berhalusinasi 17–33% dari waktu — landasan sitasi adalah jawaban arsitekturalnya, bukan pilihan vendor.
  • API Pick UK Legal Search membungkus pengambilan semantik atas yurisprudensi dan perundang-undangan primer dalam satu POST — 60 kredit per panggilan.

Kasus yang mengubah perhitungan

Pada 6 Juni 2025 Divisional Court dari King's Bench Division menjatuhkan dua putusan dalam satu keputusan — Ayinde v The London Borough of Haringey dan Al-Haroun v Qatar National Bank QPSC, sitasi netral [2025] EWHC 1383 (Admin). Pada keduanya, kuasa hukum telah mengajukan materi yang mengutip otoritas yang tidak ada; dalam Ayinde, lima kasus fiktif. Pengadilan menemukan pelanggaran kewajiban profesi dan merujuk para praktisi masing-masing ke BSB dan SRA.

Dalam 48 jam, setiap roadmap legal-tech Inggris punya butir baru di puncak: landasan sitasi. Bukan sebagai kemewahan kualitas, melainkan sebagai keharusan regulatori. Studi 'Hallucination-Free?' dari Stanford HAI (Magesh et al., Mei 2024) sudah menunjukkan bahwa alat vendor terkemuka — Lexis+ AI, Westlaw AI — berhalusinasi sitasi 17–33% dari waktu pada query benchmark. Ayinde mengubah temuan akademis itu menjadi masalah compliance.

Bagi developer yang membangun fitur AI ke dalam produk hukum Inggris, pelajaran arsitekturalnya jelas: pengambilan harus berasal dari sumber otoritatif, sitasi harus dapat diverifikasi terhadap sumbernya, dan sistem harus menolak menjawab ketika tidak bisa melandaskan sebuah respons. Apa pun selain itu adalah rujukan ke regulator yang menunggu untuk terjadi.

Berikut panduan developer untuk melakukannya dengan benar: API mana yang dipakai, apa jebakannya, dan cara menghubungkannya ke agen yang berfungsi.

Sumber-sumber otoritatif

1. National Archives Find Case Law

Dikelola oleh The National Archives (TNA). Mencakup putusan pengadilan yang dijatuhkan sejak April 2003 dari High Court, Court of Appeal, UK Supreme Court, Privy Council, dan beberapa tribunal. Dokumen dalam standar XML Akoma Ntoso (LegalDocML). API publik di caselaw.nationalarchives.gov.uk; feed data massal melalui pengajuan bersyarat untuk tujuan "computational analysis".

Kekuatan: sumber otoritatif untuk yurisprudensi Inggris & Wales, XML terstruktur menjaga struktur putusan (nomor paragraf, sitasi, heading), ketentuan Open Government Licence mengizinkan penggunaan ulang dengan atribusi. Kelemahan: cakupan terbatas sebelum 2003, perlu pengajuan untuk feed massal, LegalDocML berat untuk di-parse jika belum pernah menyentuh XML hukum.

2. Developer API legislation.gov.uk

Dikelola oleh TNA. Mencakup perundang-undangan primer Inggris (Acts of Parliament), statutory instruments, dan padanan Irlandia Utara / Skotlandia / Wales. Yang krusial, mendukung query point-in-time: 'seperti apa ketentuan ini pada 1 April 2018'.

Kekuatan: stabil, terdokumentasi baik, akses point-in-time, berlisensi OGL. Kelemahan: skema (CLML) punya gayanya sendiri; tidak semua amandemen dilacak secara seragam ke belakang sepanjang sejarah; model tanggal mulai berlaku bisa mengejutkan Anda.

3. BAILII (hanya-baca via web manusia)

Agregator informasi hukum yang sudah lama berdiri. Krusial untuk yurisdiksi dan jenis dokumen yang tidak dicakup Find Case Law (putusan lebih lama, materi Skotlandia / NI, sebagian keputusan tribunal). Scraping massal dibatasi oleh ketentuan BAILII. Perlakukan sebagai cadangan yang dapat dibaca manusia, bukan sebagai API.

Pencarian semantik atas yurisprudensi dan perundang-undangan primer Inggris dalam satu endpoint POST. JSON in / JSON out, 60 kredit per panggilan, penagihan hanya saat berhasil. Mengembalikan judul, sitasi netral, URL sumber, dan snippet yang diperingkat berdasarkan relevansi semantik. Dirancang untuk tool calling agen AI.

Berdampingan

Sumber pada saat penulisan. Konfirmasikan ketentuan lisensi dengan TNA sebelum penerapan komersial.
Find Case Lawlegislation.gov.ukAPI Pick UK Legal Search
CakupanYurisprudensi E&W sejak 2003Statutes + SIs Inggris, point-in-timeYurisprudensi + perundang-undangan, semantik
FormatAkoma Ntoso XMLCLML XML + JSON / AtomJSON, snippet sudah terbentuk
PencarianKata kunciKata kunci + strukturalSemantik
AuthTidak ada untuk publik; feed massal via pengajuanTidak adax-api-key
LisensiOpen Government LicenceOpen Government LicenceTOS API Pick
Kecocokansource-of-truth tingkat complianceLookup statute, query point-in-timePengambilan untuk agen AI, lapisan RAG

Arsitektur yang bertahan dari Ayinde

Stack minimum viable yang berlandaskan sitasi:

Question → [LLM agent]
              ↓ tool_use(uk_legal_search)
            [API Pick UK Legal Search] → ranked authorities
              ↓ tool_use(extract_urls)
            [API Pick URL Extract] → full judgment / statute body
              ↓ Agent reads, drafts answer
              ↓ Citation-required prompt rule
          Answer with [Neutral Citation, Section/Paragraph]
              ↓ Final verification pass
          Refuse if citation can't be matched in extracted text

Tahap verifikasi adalah tempat sebagian besar tim gagal. Tidak cukup hanya meminta model 'kutip sumbermu' — Anda harus memverifikasi secara programatik bahwa setiap otoritas yang dikutip muncul dalam teks yang diekstraksi. Jika tidak, tolak jawaban itu atau munculkan untuk tinjauan manusia.

Kode yang berfungsi

import re, requests
from anthropic import Anthropic

KEY = "pk_yourkey"
client = Anthropic()

def fetch_tool(path: str) -> dict:
    return requests.get(f"https://www.apipick.com{path}/tool-schema").json()["claude"]

TOOLS = [
    fetch_tool("/api/search/uk-legal"),
    fetch_tool("/api/extract"),
]

SYSTEM = """You are a UK legal research assistant. You answer questions about
England & Wales case law and UK primary legislation using the tools available.

Rules — non-negotiable:

1. Use uk_legal_search to find authorities relevant to the question.
2. For authorities you intend to cite, use extract_urls to retrieve the
   full text. Do not cite anything you have not extracted.
3. Cite every legal proposition with a neutral citation in standard form:
   [YYYY] EWHC|EWCA|UKSC NNN (Court), §[paragraph] — for cases.
   Section N(M) of the [Act Name] YYYY — for statutes, with point-in-time
   noted if relevant.
4. If the search returned no relevant authority, or the relevant text was
   not extracted, say so explicitly: "I could not retrieve a sufficient
   authority for this question. Please escalate to qualified counsel."
   Do not infer from training-data knowledge.
5. Distinguish ratio from obiter where it matters. Note when an authority
   is first instance, appellate, or Supreme Court.
6. For legislation, default to the in-force version. State the date you used.
7. This output is informational retrieval, not legal advice."""

def call_tool(b):
    paths = {"uk_legal_search": "/api/search/uk-legal", "extract_urls": "/api/extract"}
    r = requests.post(
        f"https://www.apipick.com{paths[b.name]}",
        json=b.input,
        headers={"x-api-key": KEY},
        timeout=60,
    )
    return {"type": "tool_result", "tool_use_id": b.id,
            "content": r.text, "is_error": r.status_code != 200}

NEUTRAL_CITATION = re.compile(r"\[(\d{4})\]\s+(EWHC|EWCA|UKSC)\s+\d+")

def verify_citations(answer: str, extracted_text: str) -> list[str]:
    """Return list of citations in the answer that don't appear in extracted text."""
    cites = NEUTRAL_CITATION.findall(answer)
    return [
        f"[{year}] {court}" for year, court in cites
        if f"[{year}] {court}" not in extracted_text
    ]

def legal_research(question: str) -> str:
    msgs = [{"role": "user", "content": question}]
    extracted_buffer = ""

    while True:
        r = client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=4096,
            system=SYSTEM,
            tools=TOOLS,
            messages=msgs,
        )
        msgs.append({"role": "assistant", "content": r.content})

        if r.stop_reason == "end_turn":
            answer = "\n".join(b.text for b in r.content if b.type == "text")
            unverified = verify_citations(answer, extracted_buffer)
            if unverified:
                return (
                    "REFUSED: the answer cited authorities that were not retrieved. "
                    f"Unverified: {unverified}. Escalate to qualified counsel."
                )
            return answer

        if r.stop_reason == "tool_use":
            results = []
            for b in r.content:
                if b.type != "tool_use":
                    continue
                tr = call_tool(b)
                if b.name == "extract_urls":
                    extracted_buffer += tr["content"]
                results.append(tr)
            msgs.append({"role": "user", "content": results})

print(legal_research(
    "What is the test for breach of duty by a public authority "
    "post Roberts v Soldiers, Sailors, Airmen and Families Association?"
))

Tiga hal yang dilakukan kode ini dan tidak dilakukan implementasi yang malas: (1) menarik teks lengkap setiap otoritas yang dikutip lewat extract sebelum mengandalkannya, (2) menolak jawaban yang string sitasi netralnya tidak benar-benar muncul dalam teks apa pun yang diambil, (3) menanamkan penolakan 'Saya tidak dapat mengambil otoritas yang memadai' ke dalam system prompt sehingga model punya jalan keluar yang anggun ketika pengambilan gagal.

Batas atas biaya

Sebuah panggilan riset hukum yang khas:

  • 1 panggilan pencarian — 60 kredit (~$0.06)
  • 1 panggilan extract yang mencakup 2–4 otoritas — 4–8 kredit (~$0.004–$0.008)
  • ~6.000 token input + 1.500 output Claude — ~$0.05

Angka bulat: ~$0.12 per jawaban yang diriset dengan sitasi. Pada 100 pertanyaan/hari untuk tim hukum internal kecil itu $12/hari — jauh di bawah biaya langganan legal-tech komersial mana pun, dan Anda mengendalikan jejak auditnya.

Di mana ini menggeneralisasi

Pola arsitektural 'landasan sitasi' tidak hanya berlaku untuk yurisprudensi Inggris — ini pola yang sama yang membuat RAG atas filings SEC andal untuk due diligence investasi dan yang memungkinkan sebuah agen literatur ilmiah menghindari rujukan paper yang terhalusinasi. Tiga aturan menyatukannya:

  • Ambil dulu, hasilkan kemudian. Jangan pernah biarkan model menghasilkan sitasi yang tidak ada dalam konteks yang diambil.
  • Verifikasi secara deterministik. Sebuah regex atas teks yang diekstraksi itu murah dan menangkap sebagian besar pemalsuan.
  • Tolak dengan anggun. Latih system prompt untuk mengatakan "Saya tidak dapat menjawab dengan andal" sebelum melatih model untuk membantu.

Ayinde adalah momen ketika aturan-aturan ini beralih dari 'praktik rekayasa terbaik' menjadi 'satu-satunya cara merilis AI hukum Inggris tanpa menempatkan pengguna Anda di hadapan BSB'. API Pick UK Legal Search adalah balok bangunan lapisan pencarian; sisanya tinggal Anda hubungkan.

Pertanyaan yang Sering Diajukan

Apa yang sebenarnya terjadi dalam Ayinde v Haringey?

Pada Juni 2025 High Court (Ritchie J) menemukan bahwa kuasa hukum telah mengajukan skeleton argument yang mengutip lima kasus tak nyata yang dihasilkan sebuah LLM, ditambah satu otoritas fiktif lain oleh praktisi berbeda dalam Al-Haroun v Qatar National Bank. Putusan dijatuhkan bersama sebagai Ayinde v Haringey & Al-Haroun v Qatar National Bank [2025] EWHC 1383 (Admin). Pengadilan merujuk para praktisi ke Bar Standards Board dan Solicitors Regulation Authority. Keputusan ini kini menjadi otoritas standar yang dikutip setiap kali topik 'halusinasi AI dalam praktik hukum' muncul di Inggris.

Bisakah saya men-scrape BAILII?

Tidak. Ketentuan BAILII membatasi akses programatik massal, dan operatornya telah tegas soal ini — lihat dokumentasi Transparency Project tentang posisi BAILII. Jalur yang sah adalah layanan Find Case Law dari The National Archives untuk putusan Inggris & Wales, yang memiliki API publik dan feed data massal terpisah yang harus melalui pengajuan.

Apa perbedaan antara Find Case Law dan legislation.gov.uk?

Find Case Law (caselaw.nationalarchives.gov.uk) mencakup putusan pengadilan — keputusan EWHC, EWCA, UKSC, dan tribunal. legislation.gov.uk mencakup perundang-undangan primer dan sekunder: Acts of Parliament, statutory instruments, dan (krusial untuk pekerjaan compliance) versi historis point-in-time. Sebuah stack RAG hukum Inggris yang lengkap membutuhkan keduanya.

Mengapa perundang-undangan point-in-time penting bagi agen AI?

Sebagian besar pertanyaan hukum menyangkut seperti apa hukumnya pada tanggal tertentu — hari dugaan pelanggaran, tanggal kontrak ditandatangani, saat sebuah lembaga membuat keputusan. Mengembalikan versi terkini perundang-undangan memberi jawaban keliru untuk pertanyaan historis apa pun. Endpoint bergaya /data.feed?type=ukpga&prospective=true dari legislation.gov.uk menyelesaikan ini. Sebagian besar alat hukum AI yang berhalusinasi tanggal gagal karena tidak menghubungkan ini.

Apakah output ini dianggap nasihat hukum?

Tidak. Output dari API pengambilan mana pun (termasuk milik kami) adalah pengambilan informasi, bukan nasihat hukum. Solicitor dan barrister yang berpraktik di Inggris & Wales tetap terikat pada aturan perilaku SRA / BSB. Arsitektur yang dijelaskan postingan ini dirancang untuk mendukung — bukan menggantikan — tinjauan hukum yang berkualifikasi. Preseden Ayinde menjadikan pembedaan itu tidak dapat ditawar.

API yang digunakan dalam artikel ini

Sarah Choy
Ditulis oleh
Sarah Choy
CEO, API Pick

Sarah Choy adalah CEO API Pick. Ia menulis tentang membangun API siap produksi untuk AI agent dan alur kerja LLM.