ಏಜೆಂಟ್ಗೆ ಮೆಮೊರಿ ಸೇರಿಸುವುದು
ಒಂದು AI ಏಜೆಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಕೇವಲ ಮಾಡೆಲ್ ಮಾತ್ರ ಸಾಲದು. ಅದು ನೀವು ಯಾರೆಂದು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವ ಮಾರ್ಗವನ್ನು ಹೊಂದಿರಬೇಕು.
AWS Briefing Agent ಅನ್ನು ನಿರ್ಮಿಸುವ ಕುರಿತಾದ ನನ್ನ ಸರಣಿಯಲ್ಲಿ, ಸ್ಟೇಟ್ಲೆಸ್ (stateless) ಸಂವಹನಗಳಿಂದ ವೈಯಕ್ತಿಕ ಅನುಭವಗಳತ್ತ (personalized experiences) ಹೇಗೆ ಬದಲಾಗಬಹುದು ಎಂಬುದನ್ನು ನಾನು ಪರಿಶೋಧಿಸುತ್ತಿದ್ದೇನೆ.
ಸ್ಟ್ಯಾಂಡರ್ಡ್ microVMಗಳ ಸಮಸ್ಯೆ ಏನೆಂದರೆ ಅವು ಸ್ಟೇಟ್ಲೆಸ್ (stateless) ಆಗಿರುತ್ತವೆ. ಒಂದು ಸೆಷನ್ ಮುಗಿದಾಗ, ಆ ಎನ್ವಿರಾನ್ಮೆಂಟ್ (environment) ನಾಶವಾಗುತ್ತದೆ. ಇದು ಡೇಟಾ ಸೋರಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ, ಆದರೆ ಇದರರ್ಥ ಏಜೆಂಟ್ ಎಲ್ಲವನ್ನೂ ಮರೆತುಬಿಡುತ್ತದೆ ಎಂದರ್ಥ. ಮೆಮೊರಿ ಇಲ್ಲದಿದ್ದರೆ, ಬಳಕೆದಾರರು ಪ್ರತಿ ಬಾರಿ ಲಾಗ್ ಇನ್ ಮಾಡುವಾಗಲೂ ತಮ್ಮ ಆದ್ಯತೆಗಳನ್ನು (preferences) ಪುನರಾವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ.
ನಾನು ಇದನ್ನು AgentCore Memory ಮತ್ತು Strands Agents ಬಳಸಿ ಪರಿಹರಿಸಿದ್ದೇನೆ.
ಈ ಆರ್ಕಿಟೆಕ್ಚರ್ (architecture) ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:
- ಅಲ್ಪಾವಧಿಯ ಮೆಮೊರಿ (Short-term memory): ಚಾಟ್ ಸಮಯದಲ್ಲಿ ಸಂದರ್ಭವನ್ನು (context) ಕಾಯ್ದುಕೊಳ್ಳಲು 90 ದಿನಗಳವರೆಗೆ ಕಚ್ಚಾ ಸಂವಹನಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.
- ದೀರ್ಘಾವಧಿಯ ಮೆಮೊರಿ (Long-term memory): ಸಂಭಾಷಣೆಗಳನ್ನು ಶಾಶ್ವತ ಜ್ಞಾನವನ್ನಾಗಿ ಪರಿವರ್ತಿಸಲು ಎರಡು ನಿರ್ದಿಷ್ಟ ತಂತ್ರಗಳನ್ನು ಬಳಸುತ್ತದೆ.
- ಸೆಮ್ಯಾಂಟಿಕ್ ಸ್ಟ್ರಾಟಜಿ (Semantic Strategy): ಬಳಕೆದಾರರು ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ ಯಾವ AWS ಸೇವೆಗಳನ್ನು ಬಳಸುತ್ತಾರೆ ಎಂಬಂತಹ ವಾಸ್ತವಿಕ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ.
- ಬಳಕೆದಾರರ ಆದ್ಯತೆ ಸ್ಟ್ರಾಟಜಿ (User Preference Strategy): ಸರ್ವರ್ಲೆಸ್ ಟೂಲ್ಗಳ ಮೇಲಿನ ಆದ್ಯತೆಯಂತಹ ಶೈಲಿಗಳು ಮತ್ತು ಆಸಕ್ತಿಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ.
ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡಲು, ಸಿಸ್ಟಮ್ ನೇಮ್ಸ್ಪೇಸ್ಗಳನ್ನು (namespaces) ಬಳಸುತ್ತದೆ. {actorId} ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ಒಬ್ಬ ಬಳಕೆದಾರರ ಡೇಟಾ ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರರ ಸೆಷನ್ಗೆ ಎಂದಿಗೂ ಸೋರಿಕೆಯಾಗದಂತೆ ನಾನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುತ್ತೇನೆ.
ಸುರಕ್ಷಿತ ಅಥೆಂಟಿಕೇಶನ್ (authentication) ಗಾಗಿ ನಾನು AWS Cognito ಅನ್ನು ಸಹ ಸಂಯೋಜಿಸಿದ್ದೇನೆ. ಏಜೆಂಟ್ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು JWT ಟೋಕನ್ಗಳನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡುತ್ತದೆ. ಒಮ್ಮೆ ಪರಿಶೀಲಿಸಿದ ನಂತರ, ಸಿಸ್ಟಮ್ ಟೋಕನ್ನಿಂದ ವಿಶಿಷ್ಟ 'sub' ಕ್ಲೈಮ್ ಅನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ. ಈ ID 'actor_id' ಆಗುತ್ತದೆ, ಇದನ್ನು ಏಜೆಂಟ್ ಸರಿಯಾದ ಮೆಮೊರಿ ರೆಕಾರ್ಡ್ಗಳನ್ನು ಪಡೆಯಲು ಬಳಸುತ್ತದೆ.
ಈ ಸಂಯೋಜನೆಯು ಸುಗಮವಾಗಿದೆ (seamless). AgentCoreMemorySessionManager ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ಏಜೆಂಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ:
- ಅಲ್ಪಾವಧಿಯ ಮೆಮೊರಿಯಿಂದ ಸಂಭಾಷಣೆಯ ಇತಿಹಾಸವನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ.
- ಸಂಬಂಧಿತ ಸತ್ಯಗಳು ಮತ್ತು ಆದ್ಯತೆಗಳಿಗಾಗಿ ದೀರ್ಘಾವಧಿಯ ಮೆಮೊರಿಯಲ್ಲಿ ಹುಡುಕುತ್ತದೆ.
- ಪ್ರತಿಕ್ರಿಯಿಸುವ ಮೊದಲು ಆ ಸಂದರ್ಭವನ್ನು (context) ಏಜೆಂಟ್ ಸ್ಟೇಟ್ಗೆ ಸೇರಿಸುತ್ತದೆ.
ಇದರ ಫಲಿತಾಂಶವೆಂದರೆ ವೈಯಕ್ತಿಕ ಅನುಭವ ನೀಡುವ ಏಜೆಂಟ್. ನೀವು ಪದೇ ಪದೇ ಹೇಳುವ ಅಗತ್ಯವಿಲ್ಲದೆ, ಅದು ನಿಮ್ಮ ಪರಿಣತಿ ಮಟ್ಟ ಮತ್ತು ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ AWS ಆಸಕ್ತಿಗಳನ್ನು ತಿಳಿದಿರುತ್ತದೆ.
Source: https://dev.to/aws-heroes/adding-memory-to-the-agent-181k
Optional learning community: https://t.me/GyaanSetuAi