មើលវីដេអូមេរៀន: ការការពារប្រតិភូត AI ជាមួយរបាយការណ៍គ្រីបតូក្រាហ្វី
(វីដេអូមេរៀន និងរូបភាពខាងឆ្វេង នឹងត្រូវបានបន្ថែមដោយក្រុមមាតិកា Microsoft បន្ទាប់ពីការរួមបញ្ចូល ដោយប្រើលំនាំមេរៀនទី 14 / 15)
មេរៀននេះនឹងគ្របដណ្តប់៖
បន្ទាប់ពីបញ្ចប់មេរៀននេះ អ្នកនឹងដឹងពីរបៀប៖
សូមចូលចិត្តថាអ្នកបានបញ្ចូលប្រតិភូត AI សម្រាប់ Contoso Travel។ ប្រតិភូតនេះអានសំណើរពីអតិថិជន ទៅហៅ API សម្រាប់ស្វែងរកជម្រើសជាហោះហើរ ហើយកក់កៅអីជំនួសអតិថិជន។ ក្នុងត្រីមាសចុងក្រោយ អ្នកប្រតិភូតបានដំណើរការ ការកក់ជាង 50,000 ដង។
ថ្ងៃនេះ អ្នកត្រួតពិនិត្យមកដល់ ហើយសួរចំពោះសំណួរងាយៗ៖ “បង្ហាញជូនខ្ញុំអ្វីដែលប្រតិភូតរបស់អ្នកបានធ្វើ។”
អ្នកផ្តល់ឯកសារកំណត់ត្រារបស់អ្នក។ អ្នកត្រួតពិនិត្យមើលហើយសួរអ្វីដែលញឹកញាប់៖ “តើធ្វើយ៉ាងដូចម្តេចខ្ញុំនឹងដឹងថាកំណត់ត្រានេះមិនត្រូវបានកែប្រែ?”
នេះជាបញ្ហារបាយការណ៍តាមដាន។ ការដំឡើងប្រតិភូតភាគច្រើនសព្វថ្ងៃពឹងផ្អែកលើ៖
គ្មានអ្វីទាំងនេះអាចឆ្លើយសំណួររបស់អ្នកត្រួតពិនិត្យដោយគ្មានការទាមទារឲ្យពួកគេទុកចិត្តនរណាមួយ (អ្នក ផ្តល់សេវាកម្មក្លោឌ រឺ អ្នកផ្គត់ផ្គង់មូលដ្ឋានទិន្នន័យ)។ សម្រាប់ការប្រើប្រាស់ក្នុងផ្ទៃក្នុង ការទុកចិត្តនេះគឺអាចទទួលយកបាន។ សម្រាប់ការងារដែលត្រូវបានគ្រប់គ្រង (ហិរញ្ញវត្ថុ សុខាភិបាល ឬអ្វីដែលស្ថិតក្រោមច្បាប់ EU AI) វាមិនអាចទទួលយកបានទេ។
របាយការណ៍គ្រីបតូក្រាហ្វីដោះស្រាយបញ្ហានេះដោយធ្វើឲ្យសកម្មភាពប្រតិភូតនីមួយៗអាចផ្ទៀងផ្ទាត់ដោយឯករាជ្យ។ អ្នកត្រួតពិនិត្យមិនចាំបាច់ទុកចិត្តអ្នកទេ ពួកគេត្រូវការតែសោសាធារណៈនិងរបាយការណ៍ផ្ទាល់។
របាយការណ៍គឺជាវត្ថុ JSON មួយដែលកត់ត្រាអំពីអ្វីដែលប្រតិភូតបានធ្វើ ហើយបានចុះហត្ថលេខាដោយហត្ថលេខាឌីជីថល។
flowchart LR
A[អេឌ្សិនហៅឧបករណ៍] --> B[បង្កើតទម្រង់ប័ណ្ណទទួល]
B --> C[ធ្វើអោយ JSON ស្របតាម RFC 8785]
C --> D[ដំណើរការ SHA-256]
D --> E[ភ្លើងហត្ថ Ed25519]
E --> F[ប័ណ្ណទទួលជាមួយហត្ថលេខា]
F --> G[អ្នកត្រួតពិនិត្យបញ្ជាក់ដោយខ្លួនឯង]
G --> H{ហត្ថលេខាត្រឹមត្រូវទេ?}
H -- yes --> I[ព័ត៌មានបញ្ជាក់ការខូចខាត]
H -- no --> J[ប័ណ្ណទទួលបានបដិសេធ]
របាយការណ៍តូចបំផុតមានរូបរាងដូចខាងក្រោម៖
{
"type": "agent.tool_call.v1",
"agent_id": "contoso-travel-bot",
"tool_name": "lookup_flights",
"tool_args_hash": "sha256:a3f9c1...",
"result_hash": "sha256:7b2e1d...",
"policy_id": "contoso-travel-policy-v3",
"timestamp": "2026-04-25T14:30:00Z",
"sequence": 47,
"previous_receipt_hash": "sha256:9d4e6a...",
"signature": {
"alg": "EdDSA",
"sig": "c5af83...",
"public_key": "8f3b2c..."
}
}
លក្ខណៈបីនេះកំពុងតែបញ្ចាំងការធ្វើការ៖
ហត្ថលេខា។ របាយការណ៍ត្រូវបានចុះហត្ថលេខាដោយប្រព័ន្ធច្រករបស់ប្រតិភូត ដែលប្រើកូនសោឯកជន Ed25519។ អ្នកណាមួយដែលមានសោសាធារណៈអាចផ្ទៀងផ្ទាត់ហត្ថលេខាបានអូហ្វឡាញ។ ការបន្លំក្នុងដែនណាមួយនៃរបាយការណ៍នឹងបំបែកហត្ថលេខា។
ការអ៊ិនកូដគែនិចល (Canonical encoding)។ មុនពេលចុះហត្ថលេខា របាយការណ៍ត្រូវបានស្រាលចេញដោយប្រើស្ដង់ដារ JSON Canonicalization Scheme (JCS, RFC 8785)។ វាបញ្ជាក់ថាការអនុវត្តពីរដែលផលិតរបាយការណ៍ដូចគ្នានឹងបញ្ចេញលទ្ធផលផ្ទាល់ខ្លួនស្មើគ្នានៅក្នុងបង្ហាញបៃទ។ បើគ្មាន canonicalization អ្នកអាចមានកូដ JSON ផ្សេងៗដែលផលិតហត្ថលេខាផ្សេងគ្នាសម្រាប់មាតិកាដូចគ្នា។
ការចងខ្សែកូដ hash chaining។ ដែន previous_receipt_hash ផ្ដល់ភាពតភ្ជាប់រវាងរបាយការណ៍មួយទៅមួយមុន។ ការដកចេញ ឬប្តូរតម្រៀបរបាយការណ៍មួយនឹងបំបែករបាយការណ៍ដែលបន្ទាប់ប្រើវា។ ការបន្លំកាន់តែច្បាស់នៅលើកម្រិតសួង ទោះបីបិទសញ្ញាលេខមួយៗជោគជ័យក៏ដោយ។
លក្ខណៈទាំងនេះផ្តល់នូវការធានាដូចខាងក្រោម៖
អ្នកមិនចាំបាច់ប្រើបណ្ណាល័យពិសេសណាមួយសម្រាប់ផលិតរបាយការណ៍។ វិធីគ្រីបតូក្រាហ្វីមានស្រាប់ និងកូដភាសា Python មិនច្រើនទេ។
ការហាត់ប្រាណដៃ ក្នុង code_samples/18-signed-receipts.ipynb នឹងធ្វើការបង្ហាញជំហានពេញលេញ។ ជាសង្ខេប៖
import json
import hashlib
import base64
from nacl import signing
from jcs import canonicalize # JSON ការ្មងតាម RFC 8785
def b64url_nopad(data: bytes) -> str:
return base64.urlsafe_b64encode(data).decode("ascii").rstrip("=")
def sha256_canonical(obj) -> str:
"""SHA-256 of a Python object's JCS-canonical JSON form."""
return f"sha256:{hashlib.sha256(canonicalize(obj)).hexdigest()}"
# បង្កើត ឬផ្ទុកកូនសោហត្ថជូន (ក្នុងការផលិត, រក្សាទុកនៅក្នុងគោលដៅកូនសោ)
signing_key = signing.SigningKey.generate()
verify_key = signing_key.verify_key
# សង់ទម្រង់ប៊ិចបញ្ជាក់ (មិនទាន់មានហត្ថលេខា)
tool_args = {"origin": "SYD", "destination": "LAX"}
tool_result = [{"flight": "QF11", "price": 1850, "stops": 0}]
payload = {
"type": "agent.tool_call.v1",
"agent_id": "contoso-travel-bot",
"tool_name": "lookup_flights",
"tool_args_hash": sha256_canonical(tool_args),
"result_hash": sha256_canonical(tool_result),
"policy_id": "contoso-travel-policy-v3",
"timestamp": "2026-04-25T14:30:00Z",
"sequence": 0,
"previous_receipt_hash": None,
}
# បំលាស់ជាារ្សស្ដង់ដារ, ធ្វើ hash, ហត្ថលេខា។
canonical_bytes = canonicalize(payload)
message_hash = hashlib.sha256(canonical_bytes).digest()
signature_bytes = signing_key.sign(message_hash).signature
# ភ្ជាប់វត្ថុហត្ថលេខាប្រព័ន្ធរៀបចំ។
receipt = {
**payload,
"signature": {
"alg": "EdDSA",
"sig": b64url_nopad(signature_bytes),
"public_key": b64url_nopad(bytes(verify_key)),
},
}
នេះជាប្រព័ន្ធចុះហត្ថលេខាទាំងមូល។ ការហាត់នៅក្នុង notebook នឹងបង្ហាញជាការជំហានមួយៗ។
ការផ្ទៀងផ្ទាត់គឺជាដំណើរការផ្ទុយ៖
import base64
import hashlib
from nacl import signing
from nacl.exceptions import BadSignatureError
from jcs import canonicalize
def b64url_decode(s: str) -> bytes:
padding = "=" * ((4 - len(s) % 4) % 4)
return base64.urlsafe_b64decode(s + padding)
def verify_receipt(receipt: dict) -> bool:
# ហត្ថលេខាគឺជាវត្ថុដែលមានរចនាសម្ព័ន្ធៈ {"alg", "sig", "public_key"}.
sig_obj = receipt.get("signature")
if not sig_obj or sig_obj.get("alg") != "EdDSA":
return False
# ព្រមទាំងសង្វឹកpayload ដែលត្រូវបានហត្ថលេខាពិតប្រាកដ (អ្វីដែលមិនមែនហត្ថលេខា).
payload = {k: v for k, v in receipt.items() if k != "signature"}
canonical_bytes = canonicalize(payload)
message_hash = hashlib.sha256(canonical_bytes).digest()
try:
verify_key = signing.VerifyKey(b64url_decode(sig_obj["public_key"]))
verify_key.verify(message_hash, b64url_decode(sig_obj["sig"]))
return True
except BadSignatureError:
return False
មុខងារនេះទទួលរបាយការណ៍មួយ ហើយត្រឡប់ True ប្រសិនបើហត្ថលេខាត្រឹមត្រូវ ហើយ False ប្រសិនបើមិនត្រឹមត្រូវ។ មិនមានការហៅបណ្តាញ មិនមានការពឹងផ្អែកលើសេវា គ្មានការទុកចិត្តជាមួយភាគីទីបី។
ដើម្បីមើលការរកឃើញការបន្លំ វេចខ្ចប់ណូតប៊ុកនឹងបង្ហាញ៖
tool_args_hash។នេះជាការបង្ហាញការពិតថារបាយការណ៍កំណត់ត្រាមានភាពបន្លំមើលឃើញ៖ ការផលិតផ្លាស់ប្ដូរ, ចៃដន្យ ណាមួយគឺបំបែកហត្ថលេខា។
របាយការណ៍ចុះហត្ថលេខាតែមួយការពារសកម្មភាពមួយ។ សួងរបាយការណ៍ការពារលំដាប់រៀង។
flowchart LR
R0[បង្កាន់ដៃ 0<br/>ប្រភពដើម] --> R1[បង្កាន់ដៃ 1]
R1 --> R2[បង្កាន់ដៃ 2]
R2 --> R3[បង្កាន់ដៃ 3]
R1 -. previous_receipt_hash .-> R0
R2 -. previous_receipt_hash .-> R1
R3 -. previous_receipt_hash .-> R2
របាយការណ៍មួយម្ដងៗបានកត់ត្រាតុល្យភាពរបស់របាយការណ៍មុនវា។ ដើម្បីដករបាយការណ៍លេខ 2 ដោយមិនឲ្យគេសង្កេតឃើញ អ្នកវាយប្រហារត្រូវតែធ្វើណាមួយ៖
previous_receipt_hash របស់របាយការណ៍លេខ 3 (បំបែកហត្ថលេខារបស់របាយការណ៍លេខ 3) ឬប្រសិនបើកូនសោឯកជននៅក្នុង hardware key vault ហើយអ្នកផ្សាយសោសាធារណៈជាមួយរបាយការណ៍ រៀបរាប់រកការវាយប្រហារមិនអាចធ្វើបានដោយគ្មានការរកឃើញ។
ណូតប៊ុកនឹងបង្ហាញ៖
previous_receipt_hash របស់គ្រប់របាយការណ៍ត្រូវគ្នានឹងតុល្យភាពពិតរបស់របាយការណ៍មុន។នេះហើយជារបៀបដែលអ្នកបង្កើត audit trail ដែលអ្នកត្រួតពិនិត្យខាងក្រៅអាចផ្ទៀងផ្ទាត់ដោយមិនត្រូវទុកចិត្តអ្នក។
នេះជាផ្នែកសំខាន់បំផុតនៃមេរៀននេះ។ របាយការណ៍មានថាមពលទង្កឹម ប៉ុន្តែថាមពលរបស់វាត្រូវបានកំណត់។
របាយការណ៍បញ្ជាក់បីរឿង ៖
របាយការណ៍មិនបញ្ជាក់៖
policy_id ត្រូវបានវាយតម្លៃពិត ឬត្រូវបានអនុញ្ញាតសកម្មភាពនេះ ប្រសិនបើវាត្រូវបានពិនិត្យ។ របាយការណ៍កត់ត្រាអ្វីដែលត្រូវបានអះអាង មិនមែនអ្វីដែលត្រូវបានអនុវត្តផ្លូវការទេ។ព្រំដែននេះមានសារៈសំខាន់ពីរបារម្ភ៖
កំហុសធម្មតាគឺគិតថា “យើងមានរបាយការណ៍” មានន័យថា “យើងត្រូវបានគ្រប់គ្រង”។ វាមិនមែនបែបនោះទេ។ របាយការណ៍គឺជាគ្រឹះមួយ។ ការគ្រប់គ្រងគឺជាប្រព័ន្ធដែលអ្នកបង្កើតលើវា។
ចំណុច 3 ខាងលើមានតម្លៃអត្ថបទផ្ទាល់ខ្លួន ៖ របាយការណ៍សកម្មភាពនិយាយថា “សោនេះបានចុះហត្ថលេខាដល់មាតិកានេះ” មិនដែលនិយាយថា “មនុស្សនេះបានអនុញ្ញាត” ទេ។ សម្រាប់សកម្មភាពមានហានិភ័យខ្ពស់ (ការសងប្រាក់ ការលុប ចុះបញ្ជីផ្ទាល់ខ្លួន) បណ្តាញគ្រប់គ្រងកាន់តែទាមទារច្បាប់ពាក្យដែលខ្វះនេះ ហើយវាអាចផលិតបានដោយការប្រើប្រាស់ឧបករណ៍ដែលអ្នកបានរៀបចំក្នុងមេរៀននេះ។
ណូតប៊ុកបន្ថែម code_samples/human-authorization-receipts.ipynb បន្ថែមប្រភេទរបាយការណ៍ទីពីរ human.approval.v1 ក្នុងទ្រង់ទ្រាយដូចគ្នាដូចរបាយការណ៍មេរៀន (payload typed ដែលបានហត្ថលេខា Ed25519 លើ canonical SHA-256 របស់វា ហើយ signature ស្ថិតក្រៅបៃត៍ដែលបានហត្ថលេខា)។ អ្នកអនុម័តចុះហត្ថលេខាលើសកម្មភាព canonical ពេញលេញ និង digest របស់វា មុនពេលអនុវត្ត។ របាយការណ៍សកម្មភាពប្រតិភូតមាន digest សកម្មភាពដូចគ្នា និងមាន parent_approval_ref ដែលជាជម្រើស receipt_hash នៃការអនុម័ត ដូចប្រព័ន្ធ previous_receipt_hash នៅក្នុងសួងដែលអ្នកបានបង្កើតខាងលើ។ មុខងារ verify_chain មួយធ្វើការត្រួតពិនិត្យទាំងពីរព្រះបន្ទាត់ដោយប្រើបញ្ជីសោចាំបាច់ផ្សេងគ្នា (សោអ្នកអនុម័ត និងសោប្រតិភូត) ដូច្នេះផ្លូវកូដត្រូវបានរៀបចំជា ចែករំលែក ប៉ុន្តែមិត្តរដ្ឋាភិបាលមិនដែលស្មូតស្មារតី។
លក្ខណៈដែលបានទទួល និយាយយ៉ាងយកចិត្តទុកដាក់ ៖ មនុស្សបានអនុម័តសកម្មភាពជាក់លាក់នេះ ហើយប្រតិភូតបានអនុវត្តសកម្មភាពដែលបានអនុម័តនោះ។ ណូតប៊ុកនឹងបដិសេធជាករណី ដែលធ្វើឲ្យលក្ខណៈនេះមានភាពជាក់ស្តែង មិនមែនតែការបដិសេធ៖
ជួបបរាជ័យទាំងនេះនឹងបដិសេធដោយហេតុផលច្បាស់លាស់ ដូច្នេះអ្នកត្រួតពិនិត្យអាចដឹងថា អាជ្ញាទៅចាស់ ឬសកម្មភាពបានផ្លាស់ប្ដូរ។ ច្បាប់ដែលណូតប៊ុកបង្រៀន៖ អនុម័តបានហត្ថលេខា មិនមែនជាអាជ្ញាដោយខ្លួនឯងទេ។ អាជ្ញាមានតែបើរបាយការណ៍ទាំងពីរតยังភ្ជាប់ទៅសកម្មភាព canonical ដូចគ្នានៅពេលអនុវត្ត។ ផ្លូវហត្ថលេខារួមនៅក្នុង Internet-Draft ដែលមេរៀននេះអនុវត្ត (draft-farley-acta-signed-receipts) គឺជាទ្រង់ទ្រាយតាមផ្លូវស្តង់ដា។
កូដ Python នៅក្នុងមេរៀននេះមានសម្រួលច្រើន ដើម្បីឲ្យអ្នកអានរាល់បន្ទាត់ហើយយល់ថាអ្វីកំពុងកើតឡើង។ នៅក្នុងផលិតកម្ម មានជម្រើសពីររបស់អ្នក៖
កសាងផ្ទាល់លើ primitive គ្រីបតូក្រាហ្វី។ បន្ទាត់ ៥០ ដែលអ្នកបានឃើញខាងលើគឺគ្រប់គ្រាន់សម្រាប់ជំនួសជាច្រើនករណីប្រើ។ PyNaCl (Ed25519) និង package jcs (JSON canonical) គឺជាបណ្ណាល័យដែលរក្សាទុក និងត្រួតពិនិត្យយ៉ាងល្អ។
ប្រើបណ្ណាល័យរបាយការណ៍ក្នុងផលិតកម្ម។ គម្រោង open-source ជាច្រើនអនុវត្តលំនាំដដែលមានមុខងារបន្ថែម (បង្វិលសោ ការផ្ទៀងផ្ទាត់ចម្រុះ ការចែកចាយ JWK Set ការស្របច្បាប់ជាមួយម៉ាស៊ីនគោលការណ៍)៖
draft-farley-acta-signed-receipts, កែប្រែ 02) ដែលកំពុងនៅក្នុងដំណើរការស្តង់ដារ មានកន្លែងផ្សព្វផ្សាយតេស្តសម្រាប់ការផ្ទៀងផ្ទាត់លើ byte-identical canonical output (agent-governance-testvectors)។protect-mcp (npm) និង @veritasacta/verify (npm) ផ្តល់នូវការអនុវត្ត NodeJS សម្រាប់ចុះហត្ថលេខារបាយការណ៍ និងការផ្ទៀងផ្ទាត់អូហ្វឡាញ ទុកចិត្តសម្រាប់បូករួម MCP server ទាំងការផ្ទាល់ auditable ដែលបានរកឃើញ, រួមមាន flow ที่សកម្មភាពបានផ្អាកចេញ approval receipt បានភ្ជាប់ទៅ digest សកម្មភាព (គាំទ្រដោយ WebAuthn នៅ desktop flow), ផែនការសំខាន់ដូចជា approval-receipt pattern នៅ notebook សម្រាប់អនុម័តមនុស្សខាងលើ។pip install nobulex) ផ្តល់លំនាំចុះហត្ថលេខា Ed25519 + JCS ដូចគ្នាជាមួយនឹងការតភ្ជាប់ LangChain និង CrewAI រួមមាន vectors តេស្តបញ្ចូល និងផែនទីស្របច្បាប់ដែលបានចែកចាយតាមរយៈ OWASP PR #2210។ការសម្រេចចិត្តច្រើនរវាងការសរសេរផ្ទាល់ និងប្រើបណ្ណាល័យ ប្រៀបបាននឹងការសរសេរបណ្ណាល័យ JWT ផ្ទាល់ និងប្រើបានដែលសាកល្បង៖ ទាំងពីរយ៉ាងត្រឹមត្រូវ។ បណ្ណាល័យជា saving time និងគ្រប់គ្រាន់ audit surface. ដំណើរពីដើមបង្ហាញអ្នកយល់ព្រម primitive ទាំងអស់។ មេរៀននេះបង្រៀនផ្លូវពីដើមដើម្បីផ្ដល់គ្រឹះសម្រាប់ជម្រើសណាមួយ។
សាកល្បងការយល់ដឹងរបស់អ្នកមុនការផ្លាស់ទៅការអនុវត្ត។
1. របាយការណ៍ត្រូវបានចុះហត្ថលេខារួចជាមួយកូនសោឯកជន Ed25519 របស់ប្រតិភូត។ អ្នកត្រួតពិនិត្យមានតែសោសាធារណៈប៉ុណ្ណោះ។ តើអ្នកត្រួតពិនិត្យអាចផ្ទៀងផ្ទាត់របាយការណ៍បានលើអូហ្វឡាញទេ?
2. អ្នកវាយប្រហារកែប្រែដែន policy_id របស់របាយការណ៍ ដើម្បីអះអាងថាវាត្រូវបានគ្រប់គ្រងដោយគោលការណ៍ដែលមានភាពឥតគិតថ្លៃបន្ថែម។ ហត្ថលេខាត្រូវបានធ្វើលើpayloadដើម។ តើមានអ្វីកើតឡើងពេលផ្ទៀងផ្ទាត់?
3. ហេតុអ្វីបានជា រក្សារដ្ឋប័ត្រមាន tool_args_hash និង result_hash ជំនួស arguments និង result ដើម?
4. វាល previous_receipt_hash ភ្ជាប់រាល់រក្សារដ្ឋប័ត្រទៅនឹងរបស់មុន។ ប្រសិនបើចោរបបទំលាប់លុបរក្សារដ្ឋប័ត្រមួយចេញពីកណ្តាលខ្សែ តើអ្វីដែលក្លាយជាមិនត្រឹមត្រូវ?
5. រក្សារដ្ឋប័ត្រត្រូវបានផ្ទៀងផ្ទាត់បានស្អាត។ តើវាបញ្ជាក់ថាសកម្មភាពរបស់ភ្នាក់ងារត្រឹមត្រូវ មាំមែង ឬអនុវត្តតាមគោលការណ៍?
បើកឯកសារ code_samples/18-signed-receipts.ipynb ហើយបញ្ចប់កន្លែងទាំងបួន៖
១. ផ្នែក ១: ហត្ថលេខារក្សារដ្ឋប័ត្រដំបូងរបស់អ្នក ហើយធ្វើការផ្ទៀងផ្ទាត់វិញ។ ២. ផ្នែក ២: បំភ្លឺលើរក្សារដ្ឋប័ត្រ ហើយមើលមិនជោគជ័យនៃការផ្ទៀងផ្ទាត់។ ៣. ផ្នែក ៣: សង់ខ្សែតួរក្សារដ្ឋប័ត្រ ៣ និងធ្វើការផ្ទៀងផ្ទាត់ភាពរឹងមាំនៃខ្សែ។ ៤. ផ្នែក ៤: អនុវត្តលំនាំទៅលើភ្នាក់ងារដែលបានកសាងជាមួយ Microsoft Agent Framework: បត់ការហៅឧបករណ៍ក្នុងការហត្ថលេខារក្សារដ្ឋប័ត្រ រួចផ្ទៀងផ្ទាត់រក្សារដ្ឋប័ត្រឯករាជ្យ។
បញ្ចូលបញ្ហាការប្រឡងរឹង ១៖ ពង្រីកschema រក្សារដ្ឋប័ត្រជាមួយវាលបន្ថែមមួយដែលអ្នកជ្រើសរើស (ឧ. លេខសំណើសម្រាប់តាមដាន), បន្ទាប់មកបន្ទាន់សម័យលក្ខណៈកំណត់ហត្ថលេខា canonical ដើម្បីរួមបញ្ចូលវា ហើយបញ្ជាក់ថារក្សារដ្ឋប័ត្រនៅតែអាចត្រឡប់វិញតាមការផ្ទៀងផ្ទាត់។ បន្ទាប់ពីហត្ថលេខា ពង្រីកវាលនោះ ហើយបញ្ជាក់ថាការផ្ទៀងផ្ទាត់បរាជ័យ។ នេះបង្ខំឲ្យអ្នកយល់ពីរបៀបគ្រប់បៃនៃកូដកំណត់បណ្ដូលមានផាសកភាពលើហត្ថលេខា។
បញ្ចូលបញ្ហាការប្រឡងរឹង ២ៈ SHA-256 hash រក្សារដ្ឋប័ត្រ ២ របស់អ្នករួមគ្នា (ភ្ជាប់បៃត៌មាន canonical របស់ពួកវាតាមលំដាប់កំណត់) ហើយបន្ថែម digest លទ្ធផលជាវាលថ្មីនៅលើរដ្ឋប័ត្រទីបីមុនហត្ថលេខា។ ធ្វើការផ្ទៀងផ្ទាត់ថារក្សារដ្ឋប័ត្រ ៣ ទាំងអស់នៅតែអាចត្រលប់វិញ។ អ្នកបានបង្កើតស្នាដៃនៃការសរុបបញ្ចូលនៅជំហានមួយ៖ អ្នកណាមួយដែលកាន់រក្សារដ្ឋប័ត្រទីបី អាចបង្ហាញថារក្សារដ្ឋប័ត្រទីមួយ និងទីពីរបានមាននៅពេលវាដូចជាហត្ថលេខាត្រូវបានធ្វើ ដោយមិនចាំបាច់បង្ហាញមាតិការបស់ពួកវា។ នេះគឺជាលំនាំដែលរក្សារដ្ឋប័ត្រផ្ទាំងជ្រើសរើសប្រើនៅវិមាត្រធំ (ការប្តេជ្ញាចិត្ត Merkle, RFC 6962)។
រក្សារដ្ឋប័ត្រជាមួយការអ៊ិនគ្រីបផ្តល់ឲ្យភ្នាក់ងារ AI ជាសំណងត្រួតពិនិត្យដែល:
ពួកវាមិនមែនជាចំនុចជំនួសសម្រាប់ការត្រួតពិនិត្យចូល ប្រតិបត្តិការគោលការណ៍ ឬហេដ្ឋារចនាសម្ព័ន្ធអត្តសញ្ញាណទេ។ ពួកវាគឺជាគ្រឹះសម្រាប់ស្រទាប់ទាំងនោះ។ ពេលអ្នកចេញផ្សាយភ្នាក់ងារចូលក្នុងបរិស្ថានត្រួតពិនិត្យ កម្មវិធីមុខបានរួមជាមួយច្រើនស្ថាប័ន ឬកន្លែងណាមួយដែលអ្នកតំណាងអតីតកាលមិនអាចទុកចិត្តបាន ពួកវាជាវិធីសាស្រ្តបង្កើតសំណងត្រួតពិនិត្យដែលស្មោះត្រង់។
ចំណុចសំខាន់បំផុត៖ រក្សារដ្ឋប័ត្របញ្ជាក់ថា អ្នកណានិយាយអ្វី នៅពេលណា។ វាមិនបញ្ជាក់ថាអ្វីដែលបាននិយាយគឺពិត ឬត្រឹមត្រូវ។ សូមរក្សាសម្គាល់នោះយ៉ាងតឹងរឹង។ វាជាការប្រៀបធៀបរវាងប្រព័ន្ធប្រវត្តិសាស្ត្រដែលស្មោះត្រង់ និងប្រព័ន្ធដែលបញ្ចេញភាពច្រឡំ។
ពេលដែលអ្នកប្រកបការចេញពីមេរៀននេះទៅការចេញផ្សាយភ្នាក់ងាររក្សារដ្ឋប័ត្រហត្ថលេខារស្ថិតក្នុងបរិស្ថានពិតប្រាកដ៖
https://your-org.example.com/.well-known/agent-keys.json។ចូលរួម Microsoft Foundry Discord ដើម្បីជួបជាមួយអ្នករៀនផ្សេងទៀត ទៅរកម៉ោងការិយាល័យ ហើយទទួលបានចម្លើយសំណួរអំពី AI Agents របស់អ្នក។
មេរៀននេះគ្របដណ្តប់ការហត្ថលេខារក្សារដ្ឋប័ត្រតែមួយ និងខ្សែ hash-chained។ និរន្តរង្វិលសំខាន់ៗដូចគ្នានេះសម្របសម្រួលទៅលើលំនាំរបស់អ្នកនៅពេលខាងមុខពេលគោលការណ៍របស់អ្នករីកចម្រើន៖
authorization_*) និង post-execution (result_*) ដែលមានហត្ថលេខាឯករាជ្យ ប្រយោជន៍ពេលកំណត់ការអនុញ្ញាត និងលទ្ធផលដែលបានកត់សំគាល់ត្រូវបានផលិតដោយអ្នកដទៃ ឬនៅពេលខុសៗគ្នា។ វាអាចច្រកលើលំនាំរក្សារដ្ឋប័ត្រដែលបានបង្រៀននៅក្នុងមេរៀននេះ។result_hash ។ Payloads ក្រៅពីការហៅឧបករណ៍ជាមួយលទ្ធផលតែមួយតែងកាន់តែល្អជាងនេះ៖ ការគិតមុនចេញសេចក្តីសម្រេច (ការព្យាករណ៍ម៉ូដែល, ជម្រើសបានពិចារណា, ភស្តុតាង និងភាពលំអិតរបស់វា, ទ្រឹស្តីហានិភ័យ, ខ្សែការបញ្ជាក់, លទ្ធផលកម្រិតពិនិត្យ) អាចទប់ syllable ក្នុង payload ដែលបានចាក់ដោយរក្សារដ្ឋប័ត្រតែមួយ។ វាផ្ដល់ឱ្យទ្រង់ទ្រាយរក្សារដ្ឋប័ត្រតូចតែមិនប៉ះពាល់ការអភិវឌ្ឍ schema ផ្សេងៗ។signature.alg អាចដាក់ ML-DSA-65 (ស្តង់ដាហត្ថលេខាបន្ទាប់ក្រោយគណិតវិទ្យារបស់ NIST) នៅពេលអ្នកត្រូវការផ្លាស់ប្ដូរ។ គ្រោងទុកកំឡុងពេលដែលរក្សារដ្ឋប័ត្រត្រូវបានហត្ថលេខាពីរ។ការបង្កើតភ្នាក់ងារ AI ដំណាក់កាលក្នុងស្រុក
ការបដិសេធ: ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI Co-op Translator។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។