𝗬𝗼𝘂 𝗗𝗼𝗻'𝘁 𝗡𝗲𝗲𝗱 𝗦𝘂𝗯-𝗔𝗴𝗲𝗻𝘁𝘀
ಹೆಚ್ಚಿನ ಜನರು ಏಜೆಂಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳನ್ನು (agent architectures) ಸಾಂಸ್ಥಿಕ ಚಾರ್ಟ್ಗಳಂತೆ ಬಿಡಿಸುತ್ತಾರೆ.
ಅವರು ಮೇಲ್ಭಾಗದಲ್ಲಿ ಒಂದು Orchestrator ಅನ್ನು ಇಡುತ್ತಾರೆ. ಅವರು Researcher, Coder ಮತ್ತು Tester ಗೆ ಗೆರೆಗಳನ್ನು ಎಳೆಯುತ್ತಾರೆ. ಇದು ನೋಡಲು ಅಚ್ಚುಕಟ್ಟಾಗಿ ಮತ್ತು ವೃತ್ತಿಪರವಾಗಿ ಕಾಣುತ್ತದೆ.
ಇದು ಒಂದು ತಪ್ಪು.
1975 ರಲ್ಲಿ, ಫ್ರೆಡ್ ಬ್ರೂಕ್ಸ್ ಅವರು ತಡವಾದ ಸಾಫ್ಟ್ವೇರ್ ಪ್ರಾಜೆಕ್ಟ್ಗೆ ಹೆಚ್ಚಿನ ಜನರನ್ನು ಸೇರಿಸುವುದು ಅದನ್ನು ಇನ್ನಷ್ಟು ತಡವಾಗಿಸುತ್ತದೆ ಎಂದು ಬರೆದಿದ್ದರು. ಕೆಲಸ ಮುಗಿಯುವ ವೇಗಕ್ಕಿಂತ ಸಂವಹನ ವೆಚ್ಚವು (communication costs) ವೇಗವಾಗಿ ಬೆಳೆಯುವುದರಿಂದ ಹೀಗಾಗುತ್ತದೆ.
ನೀವು ಏಜೆಂಟ್ಗಳ ಒಂದು ಗುಂಪನ್ನು (swarm) ನಿರ್ಮಿಸಿದಾಗ, ನೀವು ಇದೇ ತಪ್ಪನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತೀರಿ.
Orchestrator ತನ್ನೆಲ್ಲಾ ಸಮಯವನ್ನು ಸಬ್-ಟಾಸ್ಕ್ಗಳನ್ನು (subtasks) ನಿರ್ವಹಿಸುವುದರಲ್ಲೇ ಕಳೆಯುತ್ತದೆ. ಇದು ಭಾರಿ ಹೊರೆಯನ್ನು (overhead) ಸೃಷ್ಟಿಸುತ್ತದೆ. ನೀವು ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತಿಲ್ಲ; ನೀವು ಕೇವಲ ಪ್ಲಂಬಿಂಗ್ (plumbing) ಮಾಡುತ್ತಿದ್ದೀರಿ.
ಸಬ್-ಏಜೆಂಟ್ಗಳು ಏಕೆ ವಿಫಲವಾಗುತ್ತವೆ ಎಂಬುದಕ್ಕೆ ಇಲ್ಲಿದೆ ಕಾರಣಗಳು:
- ಸಂದರ್ಭದ ನಷ್ಟ (Context loss): ಒಂದು ಸಬ್-ಏಜೆಂಟ್ ತನ್ನದೇ ಆದ ವಿಂಡೋದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅದು ತನ್ನ ಸಂಪೂರ್ಣ ತರ್ಕವನ್ನು (reasoning) ಪೇರೆಂಟ್ (parent) ಏಜೆಂಟ್ಗೆ ವರ್ಗಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದು ಕೇವಲ ಸಾರಾಂಶವನ್ನು ಮಾತ್ರ ಕಳುಹಿಸುತ್ತದೆ.
- ದುಬಾರಿ ಪರಿಹಾರಗಳು (Expensive workarounds): ಪೇರೆಂಟ್ ಏಜೆಂಟ್ ಏನಾಯಿತು ಎಂದು ಓದಲಿ ಎಂಬ ಕಾರಣಕ್ಕಾಗಿ ಜನರು ಏಜೆಂಟ್ಗಳನ್ನು ಫೈಲ್ಗಳಿಗೆ ಅಥವಾ git ಗೆ ಬರೆಯುವಂತೆ ಒತ್ತಾಯಿಸುತ್ತಾರೆ. ನೀವು ಶೇರ್ಡ್ ಮೆಮೊರಿಯನ್ನು (shared memory) ಮರುಸೃಷ್ಟಿಸುತ್ತಿದ್ದೀರಿ, ಆದರೆ ಅದನ್ನು ಇನ್ನಷ್ಟು ನಿಧಾನಗೊಳಿಸುತ್ತಿದ್ದೀರಿ.
- ಟೋಕನ್ ವ್ಯರ್ಥ (Token waste): ಪ್ರತಿ ಗಡಿ ದಾಟುವಾಗ ಸಂದರ್ಭವನ್ನು (context) ವರ್ಗಾಯಿಸಲು ನೀವು ಹಣ ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ. N ಏಜೆಂಟ್ಗಳ ಗುಂಪಿನು ಟೋಕನ್ಗಳಲ್ಲಿ N+1 ವೆಚ್ಚವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
- ಪರಸ್ಪರ ವಿರೋಧಾಭಾಸದ ನಿರ್ಧಾರಗಳು (Conflicting decisions): ಸಮಾಂತರ ಏಜೆಂಟ್ಗಳು (Parallel agents) ವಿಭಿನ್ನ ಊಹೆಗಳನ್ನು ಮಾಡುತ್ತವೆ. ಎರಡು ಏಜೆಂಟ್ಗಳು ಒಂದೇ ವಸ್ತುವನ್ನು ನಿರ್ಮಿಸಿದರೆ, ಅವು ಹೆಚ್ಚಾಗಿ ವಿಭಿನ್ನ ಶೈಲಿ ಅಥವಾ ತರ್ಕವನ್ನು ಬಳಸುತ್ತವೆ.
ಸಂಶೋಧನೆಯ ಪ್ರಕಾರ, ಮಲ್ಟಿ-ಏಜೆಂಟ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು (multi-agent frameworks) 41% ರಿಂದ 87% ರಷ್ಟು ವಿಫಲತೆಯ ದರವನ್ನು ಹೊಂದಿವೆ. ಏಜೆಂಟ್ಗಳು ಪರಸ್ಪರ ಸರಿಯಾಗಿ ಸಂವಹನ ನಡೆಸದ ಕಾರಣ ಈ ವಿಫಲತೆಗಳು ಸಂಭವಿಸುತ್ತವೆ. ಉತ್ತಮ ಮಾಡೆಲ್ ಇದನ್ನು ಸರಿಪಡಿಸುವುದಿಲ್ಲ. ಇದು ಮಾಡೆಲ್ ಸಮಸ್ಯೆಯಲ್ಲ, ಸಂಘಟನೆಯ (coordination) ಸಮಸ್ಯೆ.
ಬದಲಾಗಿ ನೀವು ಹೇಗೆ ನಿರ್ಮಿಸಬೇಕು?
ಈ ಎರಡು ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸಿ:
- ಕಾರ್ಯಗಳು ಸ್ವತಂತ್ರವಾಗಿದ್ದರೆ, ಅವುಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಲೂಪ್ಗಳಾಗಿ (loops) ಚಲಾಯಿಸಿ. ಎರಡು ಪ್ರತ್ಯೇಕ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಬಳಸಿ. ಇದು ಪ್ಯಾರಲಲ್ ಪ್ರೊಸೆಸಿಂಗ್ (parallel processing), ಮಲ್ಟಿ-ಏಜೆಂಟ್ ಸಿಸ್ಟಮ್ ಅಲ್ಲ.
- ಕಾರ್ಯಕ್ಕೆ ಒಂದೇ ರೀತಿಯ ಆಲೋಚನಾ ಕ್ರಮದ (single train of thought) ಅಗತ್ಯವಿದ್ದರೆ, ಒಂದೇ ಲೂಪ್ ಬಳಸಿ.
ಒಂದೇ ಲೂಪ್ ಎಲ್ಲಾ ಸಂದರ್ಭವನ್ನು (context) ಒಂದೇ ಕಡೆ ಇರಿಸುತ್ತದೆ. ಇದು ಸುಲಭವಾಗಿ ಸ್ವಯಂ-ತಿದ್ದುಪಡಿ (self-corrects) ಮಾಡಿಕೊಳ್ಳುತ್ತದೆ. ಇದು ಗೊಂದಲಮಯ ಗ್ರೂಪ್ ಚಾಟ್ ಬದಲಿಗೆ ಅಚ್ಚುಕಟ್ಟಾದ ಇತಿಹಾಸವನ್ನು (history) ಉಳಿಸುತ್ತದೆ.
ಮೆಶ್ಗಳನ್ನು (meshes) ನಿರ್ಮಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಲೂಪ್ಗಳನ್ನು (loops) ನಿರ್ಮಿಸಲು ಪ್ರಾರಂಭಿಸಿ.
ಮೂಲ: https://dev.to/tony__vi/you-dont-need-sub-agents-1eh7
ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi