Vercel ತನ್ನ AI SDK ನ 7 ನೇ ಆವೃತ್ತಿಯನ್ನು scoped tool context ವೈಶಿಷ್ಟ್ಯದೊಂದಿಗೆ ಬಿಡುಗಡೆ ಮಾಡಿದೆ. ಇದು AI ಏಜೆಂಟ್ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಟೂಲ್ (tool), ಅದು ಸ್ಪಷ್ಟವಾಗಿ ಘೋಷಿಸಿದ ರಹಸ್ಯಗಳನ್ನು (secrets) ಮಾತ್ರ ಪಡೆಯುವಂತೆ ಮಾಡುತ್ತದೆ. ಪ್ರದರ್ಶನವನ್ನು ಸೀಮಿತಗೊಳಿಸುವ ಮೂಲಕ, ಡೆವಲಪರ್ಗಳು ತಮ್ಮ ಎನ್ವಿರಾನ್ಮೆಂಟ್ನಲ್ಲಿ (environment) ಸಂಗ್ರಹಿಸಲಾದ ಎಲ್ಲಾ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು (credentials) ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಟೂಲ್ಗಳು ಅಕಸ್ಮಾತ್ತಾಗಿ ನೋಡದಂತೆ ತಡೆಯಬಹುದು.
ಈ ಬದಲಾವಣೆ ಏಕೆ ಮುಖ್ಯ
AI ಏಜೆಂಟ್ಗಳು ಹೆಚ್ಚಾಗಿ ಅನೇಕ ಬಾಹ್ಯ ಸೇವೆಗಳನ್ನು—ಆರ್ಡರ್ ಹುಡುಕಾಟ (order lookups), ಟಿಕೆಟ್ ರಚನೆ (ticket creation), ಪಾವತಿ ಪ್ರಕ್ರಿಯೆ (payment processing)—ಒಂದಕ್ಕೊಂದು ಜೋಡಿಸುತ್ತವೆ, ಇವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದಕ್ಕೂ ತನ್ನದೇ ಆದ API ಕೀಗಳು ಅಥವಾ URLಗಳು ಬೇಕಾಗುತ್ತವೆ. ಎಲ್ಲ ಟೂಲ್ಗಳಿಗೆ ಇಡೀ process.env ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ನೀಡುವುದು ಒಂದು ಸಾಮಾನ್ಯ ಶಾರ್ಟ್ಕಟ್ ಆಗಿದೆ:
execute(input, { context: process.env })
ಆ ಮಾದರಿಯು implicit privilege expansion ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ: ಹೊಸ ಟೂಲ್ ಅನ್ನು ಸೇರಿಸಿದ ತಕ್ಷಣವೇ, ಯಾವುದೇ ಕೋಡ್ ರಿವ್ಯೂ ಫ್ಲಾಗ್ ಇಲ್ಲದೆಯೇ ಡೇಟಾಬೇಸ್ ಪಾಸ್ವರ್ಡ್ಗಳು ಅಥವಾ ಪಾವತಿ ಟೋಕನ್ಗಳು ಸೇರಿದಂತೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಎಲ್ಲಾ ರಹಸ್ಯಗಳನ್ನು ಅದು ಪಡೆಯುತ್ತದೆ. ಅಪಾಯವೆಂದರೆ, ಒಂದು ದೋಷಪೂರಿತ ಅಥವಾ ಹ್ಯಾಕ್ ಮಾಡಲ್ಪಟ್ಟ ಟೂಲ್, ತನಗೆ ಅಗತ್ಯವಿಲ್ಲದ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು ಅಕಸ್ಮಾತ್ತಾಗಿ ಸೋರಿಕೆ ಮಾಡಬಹುದು.
scoped tool context ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ
SDK 7 ರಲ್ಲಿ, ಒಂದು ಟೂಲ್ ತನ್ನ ಅಗತ್ಯವಿರುವ ನಿಖರವಾದ ಫೀಲ್ಡ್ಗಳಿಗಾಗಿ Zod ಆಧಾರಿತ ವ್ಯಾಖ್ಯಾನವಾದ context schema ಅನ್ನು ಘೋಷಿಸುತ್ತದೆ. ಏಜೆಂಟ್ ಒಂದು ಟೂಲ್ ಅನ್ನು ಬಳಸಿದಾಗ (invoke), ಕಲಿಯರ್ (caller) ಕೇವಲ ಆ ಘೋಷಿತ ಫೀಲ್ಡ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ toolsContext ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. SDK ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೊದಲು ಅದರ ರೂಪವನ್ನು (shape) ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಕೀಗಳು ಇಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಹೆಚ್ಚಿದ್ದರೆ ಅದು ಎರರ್ (error) ತೋರಿಸುತ್ತದೆ.
ಒಂದು ಸಣ್ಣ ಡೆಮೊವು ವಿಭಿನ್ನ ಅಗತ್ಯತೆಗಳನ್ನು ಹೊಂದಿರುವ ಎರಡು ಟೂಲ್ಗಳನ್ನು ತೋರಿಸುತ್ತದೆ:
- lookupOrder – ಆಂತರಿಕ ಆರ್ಡರ್ ಸೇವೆಯನ್ನು ಕರೆಯಲು
baseUrlಬೇಕು. - createTicket – ಸಪೋರ್ಟ್ ಟಿಕೆಟ್ ತೆರೆಯಲು
supportTokenಬೇಕು.
ಪ್ರತಿಯೊಂದು ಟೂಲ್ ತನ್ನ ಅಗತ್ಯವಿರುವ ಏಕೈಕ ಕೀಯನ್ನು ಪಟ್ಟಿ ಮಾಡುವ contextSchema ಅನ್ನು ಎಕ್ಸ್ಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ. ಏಜೆಂಟ್ ರನ್ ಆಗುವಾಗ, ಅದು ಇದನ್ನು ಪಾಸು ಮಾಡುತ್ತದೆ:
{
lookupOrder: { baseUrl: "https://orders.internal" },
createTicket: { supportToken: "s3cr3t-token" }
}
ಕೇವಲ lookupOrder ಮಾತ್ರ baseUrl ಅನ್ನು ನೋಡುತ್ತದೆ; createTicket ಅದನ್ನು ಎಂದಿಗೂ ಮುಟ್ಟುವುದಿಲ್ಲ, ಮತ್ತು ಅಷ್ಟೇ ಅಲ್ಲದೆ ಇದರ ವಿರುದ್ಧವೂ ಸತ್ಯ. SDK ಈ ಗಡಿಯನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ (runtime) ಜಾರಿಗೆ ತರುತ್ತದೆ, ಇದು ಗುಪ್ತ ಅವಲಂಬನೆಯನ್ನು (hidden dependency) ಪರಿಶೀಲಕರು ಆಡಿಟ್ ಮಾಡಬಹುದಾದ ಸ್ಪಷ್ಟ ಸಾಮರ್ಥ್ಯಗಳ ಪಟ್ಟಿಯಾಗಿ (explicit capability list) ಪರಿವರ್ತಿಸುತ್ತದೆ.
ಭದ್ರತಾ ಪ್ರಯೋಜನಗಳು
- ಡೇಟಾ ಪ್ರದರ್ಶನವನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ – ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು ಅವುಗಳ ಅಗತ್ಯವಿರುವ ಕಡೆಗಳಲ್ಲೇ ಇರುತ್ತವೆ.
- context ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ – ಹೊಂದಾಣಿಕೆಯಾಗದ ಅಥವಾ ಕಾಣೆಯಾದ ಫೀಲ್ಡ್ಗಳು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ.
- ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುತ್ತದೆ – ಪ್ರತಿಯೊಂದು ಟೂಲ್ ಏನನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಎಂಬುದನ್ನು ಪರಿಶೀಲಕರು ನಿಖರವಾಗಿ ನೋಡಬಹುದು.
- ಬ್ಲಾಸ್ಟ್ ರೇಡಿಯಸ್ (blast radius) ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ – ಒಂದು ಟೂಲ್ ಹ್ಯಾಕ್//ಸೋರಿಕೆಯಾದರೆ, ದಾಳಿಗಾರನು ಆ ಟೂಲ್ಗೆ ಅನುಮತಿಸಲಾದ ರಹಸ್ಯಗಳನ್ನು ಮಾತ್ರ ಪಡೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.
ಈ ವೈಶಿಷ್ಟ್ಯವು ಸಾಂಪ್ರದಾಯಿಕ ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ ಅನ್ನು (sandboxing) ಬದಲಿಸುವುದಿಲ್ಲ. ಡೆವಲಪರ್ಗಳು ಇನ್ನೂ ಲಾಗ್ ರೆಡಾಕ್ಷನ್ (log redaction), ನೆಟ್ವರ್ಕ್ ಎಗ್ರೆಸ್ ಕಂಟ್ರೋಲ್ಸ್ (network egress controls) ಮತ್ತು ನಿಯಮಿತ ಟೋಕನ್ ರೊಟೇಶನ್ ಅನ್ನು ಬಳಸಲೇಬೇಕು. ಸ್ಕೋಪ್ಡ್ ಕಾಂಟೆಕ್ಸ್ (Scoped context) ಎಂಬುದು ಕೇವಲ ಒಂದು ಗಡಿ; ಅದು ಕೋಣೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮುಚ್ಚುವುದಿಲ್ಲ.
ಡೆವಲಪರ್ಗಳು ಏನನ್ನು ಹೊಂದಾಣಿಕೆ ಮಾಡಿಕೊಳ್ಳಬೇಕು
- ಪ್ರತಿಯೊಂದು ಟೂಲ್ಗೆ ಒಂದು ಸ್ಕೀಮಾವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ – SDK ಜೊತೆಗೆ ಬರುವ Zod ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿ.
- ಸೀಮಿತ
toolsContextಅನ್ನು ಪಾಸು ಮಾಡಿ – ಎಲ್ಲವನ್ನೂ ಒಳಗೊಳ್ಳುವprocess.envಅನ್ನು ತಪ್ಪಿಸಿ. - ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಏಜೆಂಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ – ಟೂಲ್ ಕರೆಗಳಿಂದ ತೆಗೆದುಹಾಕಬಹುದಾದ ಯಾವುದೇ ರಹಸ್ಯಗಳನ್ನು ಗುರುತಿಸಿ.
- ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಗಳನ್ನು (automated tests) ಸೇರಿಸಿ – ಹೆಚ್ಚುವರಿ ಡೇಟಾವನ್ನು ಸೇರಿಸಿದಾಗ context ವ್ಯಾಲಿಡೇಶನ್ ವಿಫಲವಾಗುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಒಂದು ಕ್ವಿಕ್ ಸ್ಟಾರ್ಟ್ (quick start) ಹೀಗಿರುತ್ತದೆ:
mkdir scoped-tools && cd scoped-tools
npm init -y
npm install ai zod
npm install -D typescript tsx @types/node
demo.ts ಅನ್ನು ರಚಿಸಿ, ಪ್ರತಿಯೊಂದು ಟೂಲ್ನ contextSchema ಅನ್ನು ಘೋಷಿಸಿ ಮತ್ತು tsx demo.ts ಮೂಲಕ ರನ್ ಮಾಡಿ. ನೀವು ಒಂದು ಟೂಲ್ಗೆ ಅದು ಕೇಳದ ರಹಸ್ಯವನ್ನು ನೀಡಲು ಪ್ರಯತ್ನಿಸಿದರೆ SDK ಎರರ್ ತೋರಿಸುತ್ತದೆ.
ವಿರೋಧಾತ್ಮಕ ಅಂಶ (Counter-point)
ಹೆಚ್ಚುವರಿ ಸ್ಕೀಮಾ ವ್ಯಾಖ್ಯಾನಗಳು ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ (boilerplate) ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ ಮತ್ತು ಪ್ರೊಟೊಟೈಪಿಂಗ್ ಅನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತವೆ ಎಂದು ಕೆಲವು ತಂಡಗಳು ವಾದಿಸಬಹುದು. ಇದು ನಿಜವಾಗಿದ್ದರೂ, ಇದರ ವೆಚ್ಚ ಕಡಿಮೆ—ಪ್ರತಿ ಟೂಲ್ಗೆ ಕೇವಲ ಕೆಲವು ಸಾಲುಗಳು—ಮತ್ತು ಸಂಯೋಜಿತ ಸೇವೆಗಳ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಭದ್ರತಾ ಲಾಭವು ಹೆಚ್ಚಾಗುತ್ತದೆ. ಪಾವತಿ ಡೇಟಾ ಅಥವಾ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ನಿರ್ವಹಿಸುವ ಪರಿಸರಗಳಲ್ಲಿ, ಈ ಹೊಂದಾಣಿಕೆಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಮುಂದೆ ಗಮನಿಸಬೇಕಾದವುಗಳು
- ಅಡಾಪ್ಶನ್ ಮೆಟ್ರಿಕ್ಸ್ (Adoption metrics) – ಆರಂಭಿಕ ಬಳಕೆದಾರರು ರಹಸ್ಯ ಸೋರಿಕೆಯ ಘಟನೆಗಳು ಕಡಿಮೆಯಾಗಿವೆ ಎಂದು ವರದಿ ಮಾಡುತ್ತಿದ್ದಾರೆ.
- ಕಮ್ಯುನಿಟಿ ಟೂಲಿಂಗ್ – ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ಗಳಿಂದ context ಸ್ಕೀಮಾಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸುವ ಪ್ಲಗ್-ಇನ್ಗಳು.
- ಭವಿಷ್ಯದ SDK ಬಿಡುಗಡೆಗಳು – ನೆಟ್ವರ್ಕ್ ಅನುಮತಿಗಳು ಮತ್ತು ರೇಟ್-ಲಿಮಿಟ್ ಮಿತಿಗಳನ್ನು ಒಳಗೊಳ್ಳಲು Vercel ಸ್ಕೋಪ್ಡ್ ಕಾಂಟೆಕ್ಸ್ಗಳನ್ನು ವಿಸ್ತರಿಸಬಹುದು ಎಂಬ ಸೂಚನೆಗಳು.
ನೀವು ಈಗಾಗಲೇ Vercel ನ SDK ಬಳಸಿ AI ಏಜೆಂಟ್ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ, ಮೊದಲ ಹೆಜ್ಜೆ ಎಂದರೆ ನಿಮ್ಮ ಪ್ರಸ್ತುತ process.env ಬಳಕೆಯನ್ನು ಆಡಿಟ್ ಮಾಡುವುದು. ಎಲ್ಲಾ ಟೂಲ್ ಕರೆಗಳಿಂದ ತೆಗೆದುಹಾಕಬಹುದಾದ ಏಕೈಕ ಮೌಲ್ಯವನ್ನು ಗುರುತಿಸಿ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಒಳಗೊಳ್ಳುವ ಮಾದರಿಯನ್ನು ಸ್ಕೋಪ್ಡ್ toolsContext ಮೂಲಕ ಬದಲಾಯಿಸಿ. ಇದರ ಪರಿಣಾಮವು AI ಏಜೆಂಟ್ಗಳನ್ನು ಶಕ್ತಿಯುತವಾಗಿಸುವ ನಮ್ಯತೆಯನ್ನು (flexibility) ಬಲಿ ಕೊಡದೆ, ಹೆಚ್ಚು ಬಿಗಿಯಾದ ಭದ್ರತಾ ಸ್ಥಿತಿಯನ್ನು ನೀಡುತ್ತದೆ.
