๊ฒŒ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•˜์„ธ์š”.๋ช…๋ น ํ•˜๋‚˜๋กœ.

์‹ค์ œ ๊ถŒํ•œ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”. ํŒ๋‹จ, ๋‹จ๊ธฐ ๋Šฅ๋ ฅ ํ† ํฐ ๋ฐœ๊ธ‰, ์•ก์ถ”์—์ดํ„ฐ์—์„œ ๊ฒ€์ฆ, ์„œ๋ช…๋œ ์˜์ˆ˜์ฆ๊นŒ์ง€. ํด๋ผ์šฐ๋“œ ๊ณ„์ •์ด๋‚˜ ๋…์  ์Šคํƒ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

Experimental open draft. Open source.

๋‹จ๊ธฐ ๋Šฅ๋ ฅ ํ† ํฐ๋ฒ”์œ„๊ฐ€ ํ•œ์ •๋œ ์ ‘๊ทผ๊ธฐ๊ธฐ์—์„œ ๊ฒ€์ฆ ๊ฐ€๋Šฅ๊ฐ์‚ฌ ๊ฐ€๋Šฅ

์„œ๋น„์Šค๋Š” ํ”„๋กœํ† ์ฝœ์˜ ์„ธ ์—ญํ• ์„ ์ผ๋ฐ˜ HTTP/JSON์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ๋ฅผ ์ง€ํ‚ค๋Š” ์ปดํ“จํ„ฐ์— Python 3.11+๋งŒ ์žˆ์œผ๋ฉด ๋˜๊ณ , ์œ ์ผํ•œ ์˜์กด์„ฑ์€ ์ž๋™์œผ๋กœ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ HTTP ๊ธฐ๋ณธ ๊ฑฐ๋ถ€ ์žฌ์ „์†ก ๋ฐฉ์ง€ ํŽธ์ง‘ ํ›„ ์ €์žฅ

Windows ๋ฌด์„ค์น˜ ๋ฒ„์ „(๊ถŒ์žฅ)

๋‹ค์šด๋กœ๋“œ ํ›„ ์••์ถ•์„ ํ’€๊ณ  kinegrant-serve.exe๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜์„ธ์š”. Python์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

Windows ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ

Windows โ€” ๋”๋ธ” ํด๋ฆญ์œผ๋กœ ์™„๋ฃŒ

kinegrant-deploy.zip์˜ ์••์ถ•์„ ํ’€๊ณ  start.cmd๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜์„ธ์š”. listening on http://127.0.0.1:8770์ด ๋ณด์ด๋ฉด ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ ์ฐฝ์€ ์—ด์–ด ๋‘์„ธ์š”.

macOS / Linux โ€” ๋ช…๋ น ํ•˜๋‚˜

# ์••์ถ•์„ ํ‘ผ ํด๋” ์•ˆ์—์„œ ์‹คํ–‰
sh start.sh

PyPI ๊ฒŒ์‹œ ํ›„ โ€” ์–ด๋””์„œ๋“  ๋ช…๋ น ํ•˜๋‚˜

pip install kinegrant-protocol
kinegrant-serve --demo
curl http://127.0.0.1:8770/health
curl -X POST http://127.0.0.1:8770/run -H "Content-Type: application/json" -d '{"agent":"urn:robot:delivery-1","target":"urn:space:demo:door-7","action":"open","purpose":"delivery","context":{"risk_tier":1}}'

์‘๋‹ต์—๋Š” decision, ์„œ๋ช…๋œ capability, ๊ฒŒ์ดํŠธ์˜ claims, ์„œ๋ช…๋œ receipt, receipt_chain_valid: true๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. action์„ record๋กœ ๋ฐ”๊พธ๋ฉด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

POST

/authorize

์ •์ฑ… ํŒ๋‹จ + ๋‹จ๊ธฐ ์„œ๋ช… ๋Šฅ๋ ฅ ํ† ํฐ ๋ฐœ๊ธ‰.

POST

/verify

์•ก์ถ”์—์ดํ„ฐ๊ฐ€ ์›€์ง์ด๊ธฐ ์ง์ „์˜ ๋‹จ์ผ ์‚ฌ์šฉ, ์‹คํŒจ ์‹œ ์ฐจ๋‹จ ๊ฒŒ์ดํŠธ.

POST

/receipt

๋™์ž‘ ํ›„ ์‹คํ–‰์ž๊ฐ€ ์„œ๋ช…ํ•˜๋Š” ๊ฐ์‚ฌ ๊ธฐ๋ก.

POST

/run

์ฒซ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ „์ฒด ํ๋ฆ„์„ ํ•œ ๋ฒˆ์— ์‹คํ–‰.

1
์•„๋ฌด ํŽธ์ง‘๊ธฐ๋กœ policy.json์„ ์—ฝ๋‹ˆ๋‹ค.
2
target(๋Œ€์ƒ), assignee(์–ด๋–ค ๋กœ๋ด‡), action(๋™์ž‘), constraint(๋ชฉ์  / ์œ„ํ—˜ ๋“ฑ๊ธ‰)์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
3
์ €์žฅํ•˜์„ธ์š”. ๋‹ค์Œ ์š”์ฒญ๋ถ€ํ„ฐ ์ƒˆ ๊ทœ์น™์ด ์ฆ‰์‹œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฒˆ๋“ค์— ๋‹จ๊ณ„๋ณ„ ์•ˆ๋‚ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฑฐ๋ถ€๋Š” '๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์€ ๊ฑฐ๋ถ€ํ•œ๋‹ค'๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ์˜๋„๋œ ๋™์ž‘์ž…๋‹ˆ๋‹ค.
KGREADY FOR REVIEW

๊ถŒํ•œ ์—†์ด๋Š”,
๋™์ž‘๋„ ์—†๋‹ค.
๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ์˜์ˆ˜์ฆ.

KGP-001 ์ฝ๊ธฐ โ†’์†Œ์Šค ๋ณด๊ธฐ