ಜನರು ಮತ್ತು ಏಜೆಂಟ್‌ಗಳಿಗಾಗಿ ಹಂಚಿಕೆಯ ಕಾರ್ಯಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ಮಿಸುವುದು

Perplexity ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ದೀರ್ಘಾವಧಿಯ ಕೆಲಸವನ್ನು ಹೇಗೆ ಶಾಶ್ವತ, ಏಕಕಾಲಿಕ ಮತ್ತು ಪತ್ತೆಹಚ್ಚಬಹುದಾದಂತೆ ಇರಿಸುತ್ತವೆ.

ಲೇಖಕರುPerplexity Engineering

ನಾವು ಇತ್ತೀಚೆಗೆ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ; ಇಲ್ಲಿ Perplexity Computer ನಲ್ಲಿ ಜನರು ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ದೀರ್ಘಾವಧಿಯ ಕಾರ್ಯಗಳಲ್ಲಿ ಒಟ್ಟಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಾರೆ. ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ ಒಂದು ಹಂಚಿಕೆಯ ಕಾರ್ಯಕ್ಷೇತ್ರದ ಮೇಲೆ ಇರುತ್ತದೆ, ಅದರ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಸೆಷನ್‌ಗಳು, ಏಜೆಂಟ್‌ಗಳು ಮತ್ತು ಬಳಕೆದಾರರಾದ್ಯಂತ ಸಂದರ್ಭವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ತಿಂಗಳುಗಳ ಕಾಲ ವ್ಯಾಪಿಸುವ ಬಹು-ಬಳಕೆದಾರ ಸಹಯೋಗಕ್ಕೆ ಶಾಶ್ವತತೆ, ಏಕಕಾಲಿಕತೆ ಮತ್ತು ಪತ್ತೆಹಚ್ಚುವಿಕೆ ಅಗತ್ಯ:

  • ಶಾಶ್ವತತೆ: ಕೆಲಸವು ಯಾವುದೇ ಒಂದು ಏಜೆಂಟ್ ಸೆಷನ್ ಅಥವಾ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನ ಆಚೆಗೂ ಬಾಳಿಕೆ ಬರಬೇಕು, ಇದರಿಂದ ಮುಂದಿನ ಕೆಲಸವನ್ನು ಅದೇ ಬಳಕೆದಾರ ಅಥವಾ ಏಜೆಂಟ್ ಮುಂದುವರಿಸಬಹುದು ಮತ್ತು ಯಾವುದೇ ಸಹಯೋಗಿಗಳು ಅದನ್ನು ಆಧರಿಸಿ ಕೆಲಸ ಮಾಡಬಹುದು.
  • ಏಕಕಾಲಿಕತೆ: ಒಂದೇ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿರುವ ಹಲವು ಬಳಕೆದಾರರಲ್ಲಿ ಪ್ರತಿಯೊಬ್ಬರೂ ಸಮಾನಾಂತರವಾಗಿ ಸಂಪಾದನೆಗಳನ್ನು ಮಾಡುವ ಹಲವು ಏಜೆಂಟ್‌ಗಳನ್ನು ಹೊಂದಬಹುದು; ಈ ಏಜೆಂಟ್‌ಗಳು ಪರಸ್ಪರರನ್ನು ಅತಿಕ್ರಮಿಸುವ ಬದಲು ಹಂಚಿಕೆಯ ಸ್ಥಿತಿಯನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ.
  • ಪತ್ತೆಹಚ್ಚುವಿಕೆ: ಬಳಕೆದಾರರು ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ಇಬ್ಬರೂ ಇತಿಹಾಸವನ್ನು ನೋಡಲು ಸಾಧ್ಯವಾಗಬೇಕು, ಇದರಿಂದ ಸಂಪೂರ್ಣ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಮತ್ತೆ ಓದದೆಯೇ ತಮ್ಮ ಕೊನೆಯ ಸೆಷನ್‌ನಿಂದ ಯಾರು ಏನನ್ನು ಬದಲಾಯಿಸಿದರು ಎಂದು ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಅಗತ್ಯವಿದ್ದಾಗ ಸಂಪಾದನೆಗಳನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಬಹುದು.

ಈ ಸವಾಲುಗಳು ಸಾಫ್ಟ್‌ವೇರ್ ಎಂಜಿನಿಯರ್‌ಗಳಿಗೆ ಪರಿಚಿತವಾಗಿ ಕಾಣುತ್ತವೆ. ಈ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲು ದಶಕಗಳ ಹಿಂದೆಯೇ Git ಫೋರ್ಜ್‌ಗಳು ಹುಟ್ಟಿಕೊಂಡವು: ಅನೇಕ ಕೊಡುಗೆದಾರರು ಒಂದೇ ಸತ್ಯದ ಮೂಲದಲ್ಲಿ ಒಗ್ಗೂಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ, ಆವೃತ್ತಿ ನಿಯಂತ್ರಣವನ್ನು ಸಹಯೋಗದ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಸುತ್ತುವರಿಯುವ ಹೋಸ್ಟ್ ಮಾಡಲಾದ ಸೇವೆ. ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಶಕ್ತಿ ನೀಡುವ ಫೈಲ್‌ಸಿಸ್ಟಮ್, ಮಾನವ-ಏಜೆಂಟ್ ಮತ್ತು ಏಜೆಂಟ್-ಏಜೆಂಟ್ ಸಹಯೋಗಕ್ಕಾಗಿ ನಿರ್ಮಿಸಲಾದ ಅಂತಹದೇ ಒಂದು Git ಫೋರ್ಜ್ ಆಗಿದೆ.

ಒಂದು ಪ್ರಾಜೆಕ್ಟ್: ಸಂವಾದಾತ್ಮಕ ಏಜೆಂಟ್‌ಗಳು, ನಿಗದಿತ ಏಜೆಂಟ್‌ಗಳು ಮತ್ತು ಇತರ ಬಳಕೆದಾರರ ಏಜೆಂಟ್‌ಗಳು ಎಲ್ಲವೂ ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಒಗ್ಗೂಡುತ್ತವೆ.

ಆರ್ಕಿಟೆಕ್ಚರ್

Git ಈಗಾಗಲೇ ಶಾಶ್ವತತೆ, ಏಕಕಾಲಿಕತೆ ಮತ್ತು ಪತ್ತೆಹಚ್ಚುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಅದು ಪ್ರತಿ ಫೈಲ್ ಅನ್ನು ಅದರ ವಿಷಯದ ಮೂಲಕ ಗುರುತಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಬದಲಾಗದ ಫೈಲ್‌ಗಳನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಉಳಿಸಿದ ಪ್ರತಿಗಳು ಎಂದಿಗೂ ಹಳತಾಗುವುದಿಲ್ಲ. ಪ್ರತಿಯೊಂದು ಕಮಿಟ್ ನವೀಕರಿಸಿದ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಉಳಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಸಹಯೋಗಿಗಳು ಎಂದಿಗೂ ಅರ್ಧ ಮುಗಿದ ಸ್ಥಿತಿಯನ್ನು ನೋಡುವುದಿಲ್ಲ. ಇಬ್ಬರು ಬರಹಗಾರರು ಘರ್ಷಿಸಿದಾಗ, ಸೋತವರು ಹೊಸ ಆವೃತ್ತಿಯ ಮೇಲೆ ತಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ಮತ್ತೆ ಅನ್ವಯಿಸಿ ಮರುಪ್ರಯತ್ನಿಸಬಹುದು. ಕಮಿಟ್‌ಗಳ ಸರಪಳಿಯು ಯಾರು ಏನನ್ನು ಬದಲಾಯಿಸಿದರು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಹಿಂದಿನ ಆವೃತ್ತಿಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಏಜೆಂಟ್‌ಗಳಿಗೆ ಅಗತ್ಯವಿಲ್ಲದಿರುವುದು ವಿಮರ್ಶೆ ಪರದೆಗಳು, ಬ್ರಾಂಚ್ ನಿರ್ವಹಣೆ ಮತ್ತು ಅಧಿಸೂಚನೆಗಳಂತಹ, ಮನುಷ್ಯರಿಗಾಗಿ ನಿರ್ಮಿಸಲಾದ ಫೋರ್ಜ್‌ನ ಉಳಿದ ಭಾಗ.

ನಮ್ಮ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸಂಪೂರ್ಣ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಚಲಾಯಿಸುತ್ತದೆ ಮತ್ತು ಕೋಡಿಂಗ್‌ನ ಆಚೆಗಿನ ಎಲ್ಲಾ ರೀತಿಯ ಜ್ಞಾನ ಕಾರ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಪ್ರತಿಯೊಂದು Computer ಪ್ರಾಜೆಕ್ಟ್‌ಗೂ 5 ಘಟಕಗಳು ಸರ್ವ್ ಮಾಡುವ Git ರೆಪೊಸಿಟರಿಯ ಬೆಂಬಲವಿದೆ:

  • CLI ಪ್ರತಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಸ್ಥಳೀಯ ಚೆಕ್‌ಔಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ನವೀಕರಣಗಳನ್ನು ಸಿಂಕ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಏಜೆಂಟ್‌ನ ಬದಲಾವಣೆಗಳನ್ನು ಸಲ್ಲಿಸುತ್ತದೆ.
  • ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಪ್ರಾಜೆಕ್ಟ್ ರೆಪೊಸಿಟರಿಯನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ತಲುಪಲು ಅಲ್ಪಾವಧಿಯ ರುಜುವಾತುಗಳನ್ನು ನೀಡುತ್ತದೆ.
  • Git ಸೇವೆ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳಿಗೆ ರೆಪೊಸಿಟರಿ ಡೇಟಾವನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಅವುಗಳ ಸಲ್ಲಿಕೆಗಳನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಯಾವ ಸಲ್ಲಿಕೆ ಇತ್ತೀಚಿನ ಸ್ವೀಕೃತ ಕಮಿಟ್ ಆಗಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ.
  • AWS S3-ಆಧಾರಿತ ಸ್ಟೋರೇಜ್ ರೆಪೊಸಿಟರಿ ಡೇಟಾವನ್ನು ಬಾಳಿಕೆ ಬರುವಂತೆ ಸಂಗ್ರಹಿಸುತ್ತದೆ.
  • ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಪ್ರೊಸೆಸಿಂಗ್ ಉಳಿಸಿದ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಂದ ಪಠ್ಯ ಮತ್ತು ಇತರ ಉಪಯುಕ್ತ ಮಾಹಿತಿಯನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಲೋಡ್ ಅಥವಾ ರಿಫ್ರೆಶ್ ಮಾಡಿದಾಗ ಅದನ್ನು ಲಭ್ಯವಾಗಿಸುತ್ತದೆ.

ಪ್ರತಿ ಏಜೆಂಟ್‌ಗೂ ತನ್ನದೇ ಆದ ಪ್ರತ್ಯೇಕ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಇರುತ್ತದೆ. ಆ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನ ಒಳಗೆ, ಅದು ಒಂದು ಸಣ್ಣ CLI ನಿರ್ವಹಿಸುವ ರೆಪೊಸಿಟರಿಯ ಸ್ಥಳೀಯ ಪ್ರತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. CLI ರೆಪೊಸಿಟರಿಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಅನ್ನು ಕೇಳುತ್ತದೆ, ನಂತರ Git ಸೇವೆಯ ಮೂಲಕ ಬದಲಾವಣೆಗಳನ್ನು ಫೆಚ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸಲ್ಲಿಸುತ್ತದೆ. ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ವಿನಂತಿಗಳು Git ಸೇವೆಯನ್ನು ತಲುಪುವ ಮೊದಲು ಏಜೆಂಟ್ ಪ್ರಾಕ್ಸಿ ಅವುಗಳ ಪ್ರವೇಶವನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. Git ಸೇವೆಯು ಹಂಚಿಕೆಯ ಫೈಲ್‌ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಬರೆಯುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ ಸಲ್ಲಿಕೆಯು ಇತ್ತೀಚಿನ ಸ್ವೀಕೃತ ಕಮಿಟ್ ಆಗಬೇಕೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಆ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಅನ್ನು AWS S3Files ಒದಗಿಸುತ್ತದೆ; ಇದು S3-ಆಧಾರಿತ ಸ್ಟೋರೇಜ್ ಅನ್ನು ಸಾಮಾನ್ಯ ಫೈಲ್‌ಗಳು ಮತ್ತು ಡೈರೆಕ್ಟರಿಗಳಾಗಿ ಪ್ರವೇಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ಸ್ಟೋರೇಜ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಸೆಲ್‌ಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ, ಪ್ರತಿಯೊಂದಕ್ಕೂ ತನ್ನದೇ ಆದ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಮತ್ತು Git ಸೇವಾ ರೆಪ್ಲಿಕಾಗಳಿವೆ. ಕಮಿಟ್ ಸ್ವೀಕೃತವಾದ ನಂತರ, ಹಿನ್ನೆಲೆ ವರ್ಕರ್‌ಗಳು ಬದಲಾದ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಂದ ಪಠ್ಯ ಮತ್ತು ಇತರ ಉಪಯುಕ್ತ ಮಾಹಿತಿಯನ್ನು ಹೊರತೆಗೆಯುತ್ತವೆ, ಫಲಿತಾಂಶಗಳನ್ನು ರೆಪೊಸಿಟರಿ ಇತಿಹಾಸದಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಸಂಗ್ರಹಿಸುತ್ತವೆ ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಲೋಡ್ ಅಥವಾ ರಿಫ್ರೆಶ್ ಮಾಡಿದಾಗ ಅವುಗಳನ್ನು ಲಭ್ಯವಾಗಿಸುತ್ತವೆ.

ಮುಂದೆ, ನಾವು ಘಟಕಗಳನ್ನು ಒಂದೊಂದಾಗಿ ವಿವರಿಸುತ್ತೇವೆ.

CLI ತನ್ನ ರೆಪೊಸಿಟರಿಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುತ್ತದೆ, ನಂತರ ಏಜೆಂಟ್ ಪ್ರಾಕ್ಸಿ ಮೂಲಕ Git ಸೇವೆಯಿಂದ ಫೆಚ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಸಲ್ಲಿಸುತ್ತದೆ. Git ಸೇವೆಯು ಸಲ್ಲಿಕೆಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು DynamoDB ಯಲ್ಲಿ ಸ್ವೀಕೃತ ಹೆಡ್ ಮತ್ತು ಔಟ್‌ಬಾಕ್ಸ್ ಅನ್ನು ನವೀಕರಿಸುತ್ತದೆ. ಸೆಲ್-ಸ್ಥಳೀಯ ರೆಪ್ಲಿಕಾಗಳು S3Files ಸ್ಟೋರೇಜ್ ಅನ್ನು ಬಳಸುತ್ತವೆ, ಆದರೆ ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ವರ್ಕರ್‌ಗಳು ಚೆಕ್‌ಔಟ್ ಮತ್ತು ಸಿಂಕ್‌ಗಾಗಿ ಪಠ್ಯವನ್ನು ಹೊರತೆಗೆಯುತ್ತವೆ.

CLI: ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು

ಏಜೆಂಟ್‌ಗಳು ನಮ್ಮ ಆಂತರಿಕ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಆದ SPACE ನಲ್ಲಿ ಚಲಿಸುತ್ತವೆ. ಪ್ರತಿ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ರೆಪೊಸಿಟರಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಸಿದ್ಧಪಡಿಸುವ ಮತ್ತು ಅದನ್ನು ಸಿಂಕ್‌ನಲ್ಲಿ ಇರಿಸುವ ಒಂದು ಸಣ್ಣ CLI ಇರುತ್ತದೆ. ಏಜೆಂಟ್ ಮಾಡುವ ಪ್ರತಿಯೊಂದು ಅರ್ಥಪೂರ್ಣ ಕೆಲಸದ ಘಟಕಕ್ಕೂ, ಅದು ಬದಲಾವಣೆಗಳನ್ನು ಒಂದು ಕಮಿಟ್ ಆಗಿ ಸಲ್ಲಿಸುತ್ತದೆ.

ಏಜೆಂಟ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳ ಒಂದು ಸಣ್ಣ ಭಾಗವನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯನ್ನು ಮೊದಲೇ ಸ್ಥಳೀಯವಾಗಿ ಸಿದ್ಧಪಡಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಹೀಗಾಗಿ, CLI ಅಗತ್ಯಕ್ಕೆ ತಕ್ಕಂತೆ ಫೈಲ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ: Git Large File Storage (LFS) ಮೂಲಕ ಸಂಗ್ರಹಿಸಲಾದ ದೊಡ್ಡ ಮತ್ತು ಬೈನರಿ ಫೈಲ್‌ಗಳು ಆಬ್ಜೆಕ್ಟ್‌ನ ನಿಜವಾದ ಗಾತ್ರವನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಣ್ಣ ಪಾಯಿಂಟರ್ ಫೈಲ್‌ಗಳಾಗಿ ಬರುತ್ತವೆ, ಇದರಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದು ಯೋಗ್ಯವೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಏಜೆಂಟ್ ಹೆಸರು ಮತ್ತು ಗಾತ್ರವನ್ನು ಬಳಸಬಹುದು. PDF ಗಳಂತಹ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಗೆ, ಏಜೆಂಟ್ ಮೊದಲು ಪಾರ್ಸ್ ಮಾಡಿದ ಪಠ್ಯವನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಮೂಲ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ.

ಇನ್ನೊಂದು ಸಹಜ ಆಯ್ಕೆಯೆಂದರೆ ವರ್ಚುವಲ್ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಬಳಸುವುದು. ನಾವು FUSE-ಆಧಾರಿತ ಅನುಷ್ಠಾನವನ್ನು ಪರೀಕ್ಷಿಸಿದೆವು, ಆದರೆ ಪ್ರತಿ ವಿನಂತಿಗೂ ನೆಟ್‌ವರ್ಕ್ ರೌಂಡ್‌ಟ್ರಿಪ್ ಅಗತ್ಯವಿರುವುದರಿಂದ, ಫೈಲ್‌ಸಿಸ್ಟಮ್-ತೀವ್ರ ಕಾರ್ಯಭಾರಗಳಲ್ಲಿ ಅದು ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಸುಮಾರು 400 ಪಟ್ಟು ನಿಧಾನವಾಗಿತ್ತು. ಅದಕ್ಕೆ ಸಾಮಾನ್ಯವಾಗಿ ಹೋಸ್ಟ್‌ನಿಂದ ವಿಶೇಷಾಧಿಕಾರದ ಸಾಮರ್ಥ್ಯಗಳೂ ಬೇಕಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಪ್ರತಿ ಏಜೆಂಟ್ ವಿಶೇಷಾಧಿಕಾರದ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಚಲಿಸಬೇಕಾಗುತ್ತದೆ.

ಪಾಯಿಂಟರ್ ಗಾತ್ರ ಮತ್ತು ಪಾರ್ಸ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ನಿರ್ಧರಿಸುತ್ತವೆ: ಪಾರ್ಸ್ ಮಾಡಿದ ಪಠ್ಯವನ್ನು ಓದುವುದು, ಮೂಲವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದು ಅಥವಾ ಬಿಟ್ಟುಬಿಡುವುದು.

ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್: ರೆಪೊಸಿಟರಿಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವುದು ಮತ್ತು ಪ್ರವೇಶ ನೀಡುವುದು

ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಪ್ರತಿ ರೆಪೊಸಿಟರಿಯನ್ನು ಎಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಎಂದು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತದೆ. ರೆಪೊಸಿಟರಿಯನ್ನು ರಚಿಸಿದಾಗ, ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಅದನ್ನು ಒಂದು ಸ್ಟೋರೇಜ್ ಸೆಲ್‌ಗೆ ನಿಯೋಜಿಸುತ್ತದೆ; ಇದು ತನ್ನದೇ ಆದ Git ಸೇವಾ ರೆಪ್ಲಿಕಾಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ರತ್ಯೇಕ ಸ್ಟೋರೇಜ್ ಘಟಕವಾಗಿದೆ. ಏಜೆಂಟ್ ಒಂದು ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ ಕೆಲಸ ಪ್ರಾರಂಭಿಸಿದಾಗ, ರೆಪೊಸಿಟರಿಯನ್ನು ಎಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಎಂದು CLI ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಅನ್ನು ಕೇಳುತ್ತದೆ. ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಸ್ಥಳವನ್ನು ಮತ್ತು Git ಸೇವೆಗಾಗಿ ತಾತ್ಕಾಲಿಕ ರುಜುವಾತುಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಎಂದಿಗೂ ರೆಪೊಸಿಟರಿ ಡೇಟಾವನ್ನು ಓದುವುದಿಲ್ಲ ಅಥವಾ ಬರೆಯುವುದಿಲ್ಲ. ರೆಪೊಸಿಟರಿಗೆ ಏನು ಸೇರಬೇಕು ಎಂಬುದನ್ನು Git ಸೇವೆ ನಿರ್ಧರಿಸುತ್ತದೆ.

Git ಸೇವೆ: ಡೇಟಾ ವರ್ಗಾವಣೆ ಮತ್ತು ನವೀಕರಣಗಳ ಸಮನ್ವಯ

Git ಸೇವೆಯು Git ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು ಹಾಗೂ ಸ್ಟೋರೇಜ್ ನಡುವೆ ರೆಪೊಸಿಟರಿ ವಿಷಯಗಳು ಮತ್ತು ಆವೃತ್ತಿ ಇತಿಹಾಸವನ್ನು ವರ್ಗಾಯಿಸುತ್ತದೆ. ಇದು Git ನ ಸ್ವಂತ ಸರ್ವಿಂಗ್ ಕಮಾಂಡ್‌ಗಳ ಸುತ್ತಲಿನ ತೆಳುವಾದ ವ್ರ್ಯಾಪರ್ ಆಗಿದೆ. ರೆಪೊಸಿಟರಿಯ ಹೆಡ್ ಎಲ್ಲಿದೆ ಎಂದು ಕ್ಲೈಂಟ್‌ಗೆ ತಿಳಿಸಲು ref ಡಿಸ್ಕವರಿ, ಕ್ಲೋನ್ ಮತ್ತು ಫೆಚ್ ಮಾಡಲು upload-pack, ಹಾಗೂ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ಮತ್ತು ರೆಪೊಸಿಟರಿಯ ಹೆಡ್ ಅನ್ನು ಮುಂದುವರಿಸುವ ವಿನಂತಿಯನ್ನು ಪಡೆಯಲು receive-pack ಅನ್ನು ಇದು ಬೆಂಬಲಿಸುತ್ತದೆ. ಇದು Git LFS API ಅನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ: ದೊಡ್ಡ ಮತ್ತು ಬೈನರಿ ಫೈಲ್‌ಗಳಿಗಾಗಿ, ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು ಆ ಫೈಲ್‌ಗಳನ್ನು ನೇರವಾಗಿ S3 ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಅಲ್ಲಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಅದು ಅಲ್ಪಾವಧಿಯ ಲಿಂಕ್‌ಗಳನ್ನು ನೀಡುತ್ತದೆ.

ನಾವು ಸಿದ್ಧವಾಗಿ ಲಭ್ಯವಿರುವ ಫೋರ್ಜ್ ಸರ್ವರ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿದೆವು, ಇದರಿಂದ ನಮಗೆ ಬೇಕಾದ Git ಕಾರ್ಯಾಚರಣೆಗಳ ಮೇಲೆ ಮಾತ್ರ ಕೇಂದ್ರೀಕರಿಸಿದ ನಮ್ಮದೇ ಹಗುರವಾದ ಫೋರ್ಜ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದರೊಂದಿಗೆ ಸಮಾನಾಂತರವಾಗಿ ಏಜೆಂಟ್ ಮತ್ತು ಬಳಕೆದಾರ ಇಂಟರ್‌ಫೇಸ್‌ಗಳ ಮೂಲಮಾದರಿಗಳನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಯಿತು.

ಈ ಸೇವೆಯು ರೆಪ್ಲಿಕಾಗಳ ಸಮೂಹವನ್ನು ಒಳಗೊಂಡಿದೆ, ಪ್ರತಿಯೊಂದೂ ಅದೇ ಸರ್ವರ್‌ನ ಚಾಲನೆಯಲ್ಲಿರುವ ಇನ್‌ಸ್ಟಾನ್ಸ್ ಆಗಿದೆ. ಒಂದು ಸೆಲ್ ಹಂಚಿಕೆಯ ಸ್ಟೋರೇಜ್ ಅನ್ನು ರೆಪ್ಲಿಕಾಗಳ ಗುಂಪು ಮತ್ತು ಅವುಗಳ ಬೆಂಬಲ ಸೇವೆಗಳೊಂದಿಗೆ ಒಟ್ಟುಗೂಡಿಸುತ್ತದೆ. ಹೀಗಾಗಿ, ಒಂದು ಸೆಲ್‌ನೊಳಗಿನ ರೆಪ್ಲಿಕಾಗಳು ಪ್ರತಿ ರೆಪೊಸಿಟರಿಯ ಸ್ವತಂತ್ರ ಪ್ರತಿಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಬದಲು, ಅದೇ ಹಂಚಿಕೆಯ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಅನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.

ಈ ಹಂಚಿಕೆಯ ಸ್ಟೋರೇಜ್ ರೆಪ್ಲಿಕಾಗಳು ಸ್ಟೇಟ್‌ಲೆಸ್ ಆಗಿರಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಸೆಲ್‌ನಲ್ಲಿರುವ ಯಾವುದೇ ರೆಪ್ಲಿಕಾ ಆ ಸೆಲ್‌ನ ಯಾವುದೇ ರೆಪೊಸಿಟರಿಯನ್ನು ಸರ್ವ್ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ರೆಪ್ಲಿಕಾಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ಸೇರಿಸಲು ಸರ್ವರ್‌ಗಳ ನಡುವೆ ರೆಪೊಸಿಟರಿ ಡೇಟಾವನ್ನು ಸ್ಥಳಾಂತರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಕ್ಯಾಶ್‌ಗಳನ್ನು ಉಪಯುಕ್ತವಾಗಿರಿಸಲು ಒಂದು ರೆಪೊಸಿಟರಿಗಾಗಿನ ವಿನಂತಿಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಅದೇ ರೆಪ್ಲಿಕಾಗೆ ಹೋಗುತ್ತವೆ, ಆದರೆ ರೆಪೊಸಿಟರಿಯು ಆ ನಿರ್ದಿಷ್ಟ ಇನ್‌ಸ್ಟಾನ್ಸ್ ಲಭ್ಯವಿರುವುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿಲ್ಲ.

ಸ್ವೀಕರಿಸಲಾದ ಕಮಿಟ್ ಮಾನ್ಯವಾದ ರೆಪೊಸಿಟರಿ ಸ್ಥಿತಿಯಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಲು ಸ್ವೀಕಾರ ಹಂತವು ರೆಪೊಸಿಟರಿಯ ಇನ್ವೇರಿಯಂಟ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ನಾವು ಪ್ರತಿ ರೆಪೊಸಿಟರಿಗೂ ಸ್ಪಷ್ಟವಾದ ಒಪ್ಪಂದವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೇವೆ, ಇದರಿಂದ ಯಾಂತ್ರಿಕ ಪರಿಶೀಲನೆಗಳು ಅದು ತುಂಬಾ ದೊಡ್ಡದಾಗಿ ಬೆಳೆಯದಂತೆ ತಡೆಯಬಹುದು. PDF ಗಳು ಮತ್ತು ಚಿತ್ರಗಳಂತಹ ದೊಡ್ಡ ಹಾಗೂ ಬೈನರಿ ಫೈಲ್‌ಗಳನ್ನು ಕಚ್ಚಾ Git ಬ್ಲಾಬ್‌ಗಳಾಗಿ ಅಲ್ಲದೆ Git LFS ಮೂಲಕ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಕಾಂಪ್ಯಾಕ್ಷನ್ ರೆಪೊಸಿಟರಿಯ ಗಾತ್ರವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತಲೇ ಇತ್ತೀಚಿನ ಇತಿಹಾಸವನ್ನು ಲಭ್ಯವಾಗಿರಿಸುತ್ತದೆ. ಯಶಸ್ವಿ ಸಲ್ಲಿಕೆಯ ನಂತರ, ರೆಪೊಸಿಟರಿಗೆ ಕಾಂಪ್ಯಾಕ್ಷನ್ ಅಗತ್ಯವಿದೆಯೇ ಎಂದು CLI, Git ಸೇವೆಯನ್ನು ಕೇಳುತ್ತದೆ. ಉಳಿಸಿಕೊಂಡಿರುವ ಕಮಿಟ್‌ಗಳ ಸಂಖ್ಯೆ ಒಂದು ಮಿತಿಯನ್ನು ಮೀರಿದರೆ, Git ಸೇವೆಯು ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ಕಮಿಟ್‌ಗಳ ಒಂದು ಸಣ್ಣ ಗುಂಪನ್ನು ಮಾತ್ರ ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಹಳೆಯ ಇತಿಹಾಸವನ್ನು ಒಂದೇ ಆರಂಭಿಕ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ನಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಕಮಿಟ್ ಐಡೆಂಟಿಫೈಯರ್‌ಗಳನ್ನು ನವೀಕರಿಸಲು ಇತ್ತೀಚಿನ ಕಮಿಟ್‌ಗಳನ್ನು ಮರುಪ್ಲೇ ಮಾಡಲಾಗುತ್ತದೆ.

ಕಾಂಪ್ಯಾಕ್ಷನ್ ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ಕಮಿಟ್‌ಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಹಳೆಯ ಇತಿಹಾಸವನ್ನು ಒಂದೇ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್ ರೂಟ್‌ಗೆ ಒಗ್ಗೂಡಿಸುತ್ತದೆ, ಮತ್ತು ಇತ್ತೀಚಿನ ಕಮಿಟ್‌ಗಳನ್ನು ಹೊಸ ಐಡೆಂಟಿಫೈಯರ್‌ಗಳೊಂದಿಗೆ ಮರುಪ್ಲೇ ಮಾಡುತ್ತದೆ; ಹೊಸ ಹೆಡ್ ಅದೇ ಫೈಲ್‌ಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ.

ಒಂದು ಸರಳ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಹಂತವು ಏಕಕಾಲಿಕ ಬರಹಗಾರರನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಅದು ಇತ್ತೀಚಿನ ಸ್ವೀಕೃತ ಕಮಿಟ್ ಅನ್ನು, ಅಂದರೆ ಹೆಡ್ ಅನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ. ಸಲ್ಲಿಕೆಯನ್ನು ಪಡೆದಾಗ, ಆ ಸಲ್ಲಿಕೆ ಅದೇ ಹೆಡ್‌ನ ಮೇಲೆ ನಿರ್ಮಿತವಾಗಿದ್ದರೆ ಮಾತ್ರ ಅದನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಅದು ರಚನಾತ್ಮಕ ಹಳತಾದ-ಬೇಸ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ; ನಂತರ ಸೋತವರು ತಮ್ಮ ಬದಲಾವಣೆಯನ್ನು ಹೊಸ ಹೆಡ್‌ನ ಮೇಲೆ ಮರುಪ್ಲೇ ಮಾಡಿ ಮರುಸಲ್ಲಿಸಬೇಕು. ಈ ವಿನ್ಯಾಸವು ಗಮನಾರ್ಹ ನಿಧಾನಗತಿಯನ್ನು ಉಂಟುಮಾಡದೆ, ಏಕಕಾಲಿಕ ಏಜೆಂಟ್‌ಗಳು ಮೌನವಾಗಿ ಪರಸ್ಪರರ ಕೆಲಸವನ್ನು ತಿದ್ದಿಬರೆಯದಂತೆ ಖಚಿತಪಡಿಸುತ್ತದೆ. ನಮ್ಮ ಪ್ರೊಡಕ್ಷನ್ ಕಾರ್ಯಪ್ರವಾಹಗಳಲ್ಲಿ, 2% ಕ್ಕಿಂತ ಕಡಿಮೆ ಸಲ್ಲಿಕೆಗಳನ್ನು ಹಳತಾದವು ಎಂದು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ಒಟ್ಟಾರೆಯಾಗಿ, ಸಲ್ಲಿಕೆಯ ಮಧ್ಯಾಂಕ ಲೇಟೆನ್ಸಿ 1.7 ಸೆಕೆಂಡುಗಳಿಗಿಂತ ಕಡಿಮೆ ಮತ್ತು p99 ಲೇಟೆನ್ಸಿ 8 ಸೆಕೆಂಡುಗಳಿಗಿಂತ ಕಡಿಮೆ ಇದೆ.

ಎರಡು ಏಜೆಂಟ್‌ಗಳು ಏಕಕಾಲದಲ್ಲಿ ಸಲ್ಲಿಸುತ್ತವೆ; ಒಂದನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ, ಇನ್ನೊಂದು ಹಳತಾದ-ಬೇಸ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆದು, ಹೊಸ ಹೆಡ್‌ನ ಮೇಲೆ ಮರುಪ್ಲೇ ಮಾಡಿ, ಮರುಸಲ್ಲಿಸುತ್ತದೆ.

Git ಸೇವೆಯು ಸ್ವೀಕರಿಸಿದ ಪ್ರತಿಯೊಂದು ಬದಲಾವಣೆಯನ್ನೂ ಸಹ ದಾಖಲಿಸುತ್ತದೆ. ಪ್ರತಿ ಸ್ವೀಕೃತ ಬರವಣಿಗೆಗೆ, ಅದು ಔಟ್‌ಬಾಕ್ಸ್‌ಗೆ ಒಂದು ನಮೂದನ್ನು ಸೇರಿಸುತ್ತದೆ; ಔಟ್‌ಬಾಕ್ಸ್ ಎಂಬುದು ರೆಪೊಸಿಟರಿ, ಹೊಸ ಕಮಿಟ್, ಬದಲಾವಣೆ ಮಾಡಿದ ಬಳಕೆದಾರ ಮತ್ತು ಬದಲಾದ ಪಾಥ್‌ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುವ ಒಂದು ಲಾಗ್ ಆಗಿದೆ. ಪಾರ್ಸರ್‌ನಂತಹ ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಸೇವೆಗಳು ಹೊಸ ಕೆಲಸವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಈ ಲಾಗ್ ಅನ್ನು ಓದುತ್ತವೆ.

ಒಟ್ಟಾಗಿ, ಈ ಭಾಗಗಳು ಏಜೆಂಟ್‌ಗಳಿಗೆ ಅಗತ್ಯವಿಲ್ಲದ ಅಂಶಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, ಒಂದು ರೆಪೊಸಿಟರಿ ನಿರ್ವಹಣಾ ಪದರವನ್ನು ರೂಪಿಸುತ್ತವೆ. ಪ್ರತಿ ಬದಲಾವಣೆಯನ್ನು ಯಾವುದೇ ಮನುಷ್ಯರು ಪರಿಶೀಲಿಸದ ಕಾರಣ pull request ಗಳು ಅನಗತ್ಯ. ಬದಲಿಗೆ, Git ಸೇವೆಯು ಸಲ್ಲಿಕೆಯ ಸಮಯದಲ್ಲಿ ಒಪ್ಪಂದವನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಸ್ಪರ್ಧೆಯಲ್ಲಿ ಸೋತ ಏಜೆಂಟ್ ತನ್ನ ಬದಲಾವಣೆಯನ್ನು ಮತ್ತೆ ಅನ್ವಯಿಸುತ್ತದೆ, ಮತ್ತು ಕಮಿಟ್ ಇತಿಹಾಸವು ಯಾರು ಏನನ್ನು ಬದಲಾಯಿಸಿದರು ಎಂಬುದನ್ನು ದಾಖಲಿಸುತ್ತದೆ. ಬೆಳವಣಿಗೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಮಾನವ ಆಪರೇಟರ್ ಮೇಲೆ ಅವಲಂಬಿಸುವ ಬದಲು, ನಿರ್ಣಾಯಕ ಪರಿಶೀಲನೆಗಳು ಪ್ರತಿ ರೆಪೊಸಿಟರಿಯನ್ನು ಅದರ ಒಪ್ಪಂದದ ಮಿತಿಯೊಳಗೆ ಇರಿಸುತ್ತವೆ.

ಸ್ಟೋರೇಜ್: ಕೆಲಸವನ್ನು ಬಾಳಿಕೆ ಬರುವಂತೆ ಇರಿಸುವುದು

ಸ್ಟೋರೇಜ್ ಪದರವು ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು ಮತ್ತು Git ಸೇವಾ ರೆಪ್ಲಿಕಾಗಳಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ರೆಪೊಸಿಟರಿ ಡೇಟಾವನ್ನು ಬಾಳಿಕೆ ಬರುವಂತೆ ಉಳಿಸುತ್ತದೆ. ರೆಪೊಸಿಟರಿಗಳು AWS S3Files ನಲ್ಲಿರುತ್ತವೆ; ಇದು S3-ಆಧಾರಿತ ಸ್ಟೋರೇಜ್ ಅನ್ನು ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಇಂಟರ್‌ಫೇಸ್ ಮೂಲಕ ಒದಗಿಸುತ್ತದೆ, ಅದನ್ನು ಸಾಮಾನ್ಯ Git ಯಾವುದೇ ಮಾರ್ಪಾಡಿಲ್ಲದೆ ಬಳಸಬಹುದು. ಪ್ರತಿಯೊಂದೂ ಹಂಚಿಕೆಯ ಫೈಲ್‌ಸಿಸ್ಟಮ್‌ನಲ್ಲಿರುವ ಒಂದು ಬೇರ್ Git ರೆಪೊಸಿಟರಿಯಾಗಿದ್ದು, ವರ್ಕಿಂಗ್ ಚೆಕ್‌ಔಟ್ ಬದಲಿಗೆ ರೆಪೊಸಿಟರಿಯ ಆಬ್ಜೆಕ್ಟ್‌ಗಳು ಮತ್ತು ರೆಫರೆನ್ಸ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

ಸ್ಟೋರೇಜ್ ಮತ್ತು ಕಂಪ್ಯೂಟ್ ಅನ್ನು ಬೇರ್ಪಡಿಸುವುದರಿಂದ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು ಅಲ್ಪಕಾಲಿಕವಾಗಿ ಉಳಿಯಬಹುದು. ಪ್ರತಿ ಏಜೆಂಟ್‌ಗೂ ತನ್ನದೇ ಆದ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಸಿಗುತ್ತದೆ, ಮತ್ತು ಅನೇಕ ಏಜೆಂಟ್‌ಗಳು ಒಂದು ಯಂತ್ರವನ್ನು ಹಂಚಿಕೊಳ್ಳದೆಯೇ ಒಂದೇ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಬಹುದು. ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಕ್ರ್ಯಾಶ್ ಆದರೆ, ಇನ್ನೂ ಸಲ್ಲಿಸದ ಕೆಲಸ ಮಾತ್ರ ಅಪಾಯದಲ್ಲಿರುತ್ತದೆ.

ಬದಲಿಗೆ, ನಾವು ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ ಅದರ ಎಲ್ಲಾ ಏಜೆಂಟ್‌ಗಳು ಹಂಚಿಕೊಳ್ಳುವ ದೀರ್ಘಾವಧಿಯ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಅನ್ನು ನೀಡಬಹುದಿತ್ತು, ಇದರಿಂದ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಫೈಲ್‌ಗಳು ಆ ಯಂತ್ರದ ಡಿಸ್ಕ್‌ನಲ್ಲಿರುತ್ತಿದ್ದವು. ಆದರೆ, ಇದು ಏಜೆಂಟ್‌ಗಳ ಕಂಪ್ಯೂಟ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಆ ಯಂತ್ರ ಎಲ್ಲಿ ಚಲಿಸುತ್ತದೆಯೋ ಅಲ್ಲಿಗೆ ಕಟ್ಟಿಹಾಕುತ್ತದೆ ಮತ್ತು ಅತ್ಯಂತ ಬಿಡುವಿಲ್ಲದ ಅವಧಿಗಳಿಗೆ ತಕ್ಕಂತೆ ಅದರ ಗಾತ್ರವನ್ನು ನಿಗದಿಪಡಿಸಬೇಕಾಗುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್‌ನ ಸ್ಟೋರೇಜ್ ವ್ಯವಸ್ಥೆಯ ಭಾಗವಾಗಿ ಬ್ಯಾಕಪ್‌ಗಳು ಮತ್ತು ಮರುಪಡೆಯುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತಾ, ಅದು ತಿಂಗಳುಗಟ್ಟಲೆ ಸುಸ್ಥಿತಿಯಲ್ಲಿರಬೇಕಾಗುತ್ತದೆ.

ಪ್ರಾಜೆಕ್ಟ್‌ನ ಏಜೆಂಟ್‌ಗಳು ಹಂಚಿಕೊಳ್ಳುವ ಒಂದು ದೀರ್ಘಾವಧಿಯ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್, ಮತ್ತು ಸ್ಟೇಟ್‌ಲೆಸ್ Git ಸೇವಾ ರೆಪ್ಲಿಕಾಗಳ ಮೂಲಕ ಬಾಳಿಕೆ ಬರುವ ಹಂಚಿಕೆಯ ಸ್ಟೋರೇಜ್ ಅನ್ನು ತಲುಪುವ ಅಲ್ಪಾವಧಿಯ ಪ್ರತಿ-ಏಜೆಂಟ್ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳ ಹೋಲಿಕೆ.

ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಪ್ರೊಸೆಸಿಂಗ್: ಏಜೆಂಟ್‌ಗಳಿಗಾಗಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಓದಬಹುದಾದಂತೆ ಮಾಡುವುದು

ಪ್ರಮುಖ ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಘಟಕವೆಂದರೆ ಪಾರ್ಸರ್ ಪೈಪ್‌ಲೈನ್; ಇದು ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಏಜೆಂಟ್‌ಗಳು ಸುಲಭವಾಗಿ ಓದುವಂತೆ ಮಾಡಲು, ಹೊಸದಾಗಿ ಸೇರಿಸಲಾದ ಅಥವಾ ನವೀಕರಿಸಲಾದ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಂದ ಪಠ್ಯ ಮತ್ತು ಮೆಟಾಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ. ಪಾರ್ಸರ್ ವರ್ಕರ್ ಚೇಂಜ್ ಸ್ಟ್ರೀಮ್ ಕ್ಯೂನಿಂದ ನವೀಕರಣಗಳನ್ನು ಪಡೆಯುತ್ತದೆ, ಕಮಿಟ್ ಮೆಟಾಡೇಟಾದಿಂದ ಬದಲಾದ ಫೈಲ್‌ಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ ಮತ್ತು ವಿಷಯದ ಹ್ಯಾಶ್ ಬಳಸಿ ಕಚ್ಚಾ ಬೈಟ್‌ಗಳನ್ನು ಪಡೆಯುತ್ತದೆ. ನಂತರ ಅದು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ ಹೊರತೆಗೆದ ಪಠ್ಯ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಮೆಟಾಡೇಟಾವನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.

ಪಾರ್ಸ್ ಮಾಡಿದ ಔಟ್‌ಪುಟ್‌ಗಳು ರೆಪೊಸಿಟರಿಯ ಹೊರಗೆ, ಮೂಲ ಡಾಕ್ಯುಮೆಂಟ್‌ನ ಹ್ಯಾಶ್ ಅನ್ನು ಕೀಯಾಗಿ ಹೊಂದಿರುವ ಸ್ಟೋರ್‌ನಲ್ಲಿರುತ್ತವೆ. ಈ ಆರ್ಟಿಫ್ಯಾಕ್ಟ್‌ಗಳನ್ನು ಎಂದಿಗೂ ರೆಪೊಸಿಟರಿಗೆ ಮರಳಿ ಕಮಿಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅದು ಅನಗತ್ಯವಾಗಿ ಇತಿಹಾಸವನ್ನು ಕಲುಷಿತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಏಕಕಾಲಿಕ ಬರವಣಿಗೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಬದಲಿಗೆ, ಪಾರ್ಸ್ ಮಾಡಿದ ಔಟ್‌ಪುಟ್‌ಗಳು ಚೆಕ್‌ಔಟ್ ಮತ್ತು ಸಿಂಕ್ ಮೂಲಕ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಅನ್ನು ತಲುಪುತ್ತವೆ. ಪ್ರತಿ ಚೆಕ್‌ಔಟ್, ಆರ್ಟಿಫ್ಯಾಕ್ಟ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲು CLI ಬಳಸುವ ಒಂದು ಕಾಯ್ದಿರಿಸಿದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಪಾರ್ಸಿಂಗ್ ಅಸಮಕಾಲಿಕವಾಗಿ ನಡೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಹಿನ್ನೆಲೆ ಪಾರ್ಸರ್ ವರ್ಕರ್ ಚೆಕ್‌ಔಟ್‌ಗಳನ್ನು ತಡೆಯುವುದಿಲ್ಲ.

ಏಜೆಂಟ್‌ಗಳು ಕಾರ್ಯಕ್ಷೇತ್ರವನ್ನು ಹೇಗೆ ಬಳಸುತ್ತವೆ

ಏಜೆಂಟ್‌ಗಳು ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾದ ರೆಪೊಸಿಟರಿ ಆವೃತ್ತಿಯನ್ನು ಸಾಮಾನ್ಯ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಪರಿಕರಗಳನ್ನು ಬಳಸಿ ಅನ್ವೇಷಿಸುತ್ತವೆ. ಹುಡುಕಾಟದ ನಂತರ ಓದುವ ನಿಗದಿತ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಅನುಸರಿಸುವ ಬದಲು, ಅವು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಪಟ್ಟಿಮಾಡುತ್ತವೆ, grep ಬಳಸಿ ಫೈಲ್ ವಿಷಯಗಳನ್ನು ಹುಡುಕುತ್ತವೆ, ಸಂಬಂಧಿತ ಭಾಗಗಳನ್ನು ಓದುತ್ತವೆ ಮತ್ತು ಮುಂದೆ ಎಲ್ಲಿ ನೋಡಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ತಾವು ಕಂಡುಕೊಂಡದ್ದನ್ನು ಬಳಸುತ್ತವೆ.

Computer ನಂತೆಯೇ, Search ಸಹ ತನ್ನ ಸಾಮಾನ್ಯ ಫೈಲ್ ಪರಿಕರಗಳ ಮೂಲಕ ಅದೇ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರತ್ಯೇಕ ಅನ್ವೇಷಣಾ ಏಜೆಂಟ್ ಹೆಚ್ಚು ಸೀಮಿತ ಬಜೆಟ್‌ನೊಳಗೆ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ ಮತ್ತು ಸಂಬಂಧಿತ ಫೈಲ್ ಪಾಥ್‌ಗಳು ಹಾಗೂ ಪೂರಕ ಉದ್ಧೃತ ಭಾಗಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ನಂತರ ಉತ್ತರಿಸುವ ಮಾಡೆಲ್ ಆಯ್ದ ಫೈಲ್‌ಗಳನ್ನು ಓದಿ ಉತ್ತರವನ್ನು ರಚಿಸುತ್ತದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರಾಜೆಕ್ಟ್ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಅನ್ನು ಮರುಬಳಸುವುದರಿಂದ ಸೆಟಪ್ ಸಮಯ ಕಡಿಮೆಯಾಗುತ್ತದೆ: ವಾರ್ಮ್ ಚೆಕ್‌ಔಟ್‌ಗೆ ಲಗತ್ತಿಸಲು ಸುಮಾರು 2.9 ಸೆಕೆಂಡುಗಳು ಬೇಕಾಗುತ್ತವೆ, ಆದರೆ ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್‌ಗೆ ಸುಮಾರು 8 ಸೆಕೆಂಡುಗಳು ಬೇಕಾಗುತ್ತವೆ.

Computer ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು, Ask ನ ಅನ್ವೇಷಣಾ ಸಬ್‌ಏಜೆಂಟ್, ಹಿನ್ನೆಲೆ ಜ್ಞಾನ ಬರಹಗಾರರು ಮತ್ತು ಪಾರ್ಸರ್ ವರ್ಕರ್‌ಗಳು ಎಲ್ಲವೂ ಒಂದೇ ರೆಪೊಸಿಟರಿ ಮತ್ತು ಔಟ್‌ಬಾಕ್ಸ್‌ನಿಂದ ಓದುತ್ತವೆ ಮತ್ತು ಅವುಗಳಿಗೆ ಬರೆಯುತ್ತವೆ.

ಪಾರ್ಸ್ ಮಾಡಿದ ಪಠ್ಯವು PDF ಗಳು ಮತ್ತು Office ಫೈಲ್‌ಗಳಂತಹ ದೊಡ್ಡ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಅದೇ ಪರಿಕರಗಳೊಂದಿಗೆ ಹುಡುಕಬಹುದಾದಂತೆ ಮಾಡುತ್ತದೆ. ಏಜೆಂಟ್ ಮೊದಲು ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಅಂದರೆ ಯಾವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಗೆ ಹೊರತೆಗೆದ ಪಠ್ಯ ಲಭ್ಯವಿದೆ ಎಂದು ತೋರಿಸುವ ಪಟ್ಟಿ; ನಂತರ ಆ ಪಠ್ಯವನ್ನು ಸಾಮಾನ್ಯ ಫೈಲ್‌ಗಳಂತೆ ಹುಡುಕಿ ಓದುತ್ತದೆ. ಪಠ್ಯ ಸಾಕಾಗದಿದ್ದಾಗ ಮಾತ್ರ, ಉದಾಹರಣೆಗೆ ಚಿತ್ರಣಗಳು, ಲೇಔಟ್ ಅಥವಾ ಎಂಬೆಡ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಲು, ಅದು ಮೂಲ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ.

ಅದೇ ಕಾರ್ಪಸ್‌ನ ಮೇಲಿನ 150 ಏಕ-ಡಾಕ್ಯುಮೆಂಟ್ ಹಣಕಾಸು ಪ್ರಶ್ನೆಗಳಲ್ಲಿ, ಇಂಡೆಕ್ಸ್ ಮೇಲಿನ ಸೆಮ್ಯಾಂಟಿಕ್ ಹುಡುಕಾಟಕ್ಕೆ ಹೋಲಿಸಿ ನಾವು ಈ ವಿಧಾನವನ್ನು ಬೆಂಚ್‌ಮಾರ್ಕ್ ಮಾಡಿದೆವು. ಅನ್ವೇಷಣಾ ಏಜೆಂಟ್ ಸರಿಯಾದ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಹಿಂಪಡೆಯುವುದರಲ್ಲಿ 0.867 ಮತ್ತು ಸರಿಯಾಗಿ ಉತ್ತರಿಸುವುದರಲ್ಲಿ 0.627 ಅಂಕ ಗಳಿಸಿತು; ಸೆಮ್ಯಾಂಟಿಕ್ ಹುಡುಕಾಟಕ್ಕೆ ಇವು ಸುಮಾರು 0.39 ಮತ್ತು 0.37 ಆಗಿದ್ದವು. ಅಂದರೆ, ಸುಮಾರು 25% ಕಡಿಮೆ ಲೇಟೆನ್ಸಿಯೊಂದಿಗೆ, ಉತ್ತರಗಳಲ್ಲಿ ಸುಮಾರು 1.7x ಮತ್ತು ಹಿಂಪಡೆಯುವಿಕೆಯಲ್ಲಿ 2x ಉತ್ತಮ. ಅನ್ವೇಷಣಾ ಏಜೆಂಟ್ ಹೆಚ್ಚಾಗಿ ಹೊರತೆಗೆದ ಪಠ್ಯದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಮೂಲ PDF ಗಳನ್ನು ಅಪರೂಪವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ.

ಆಂತರಿಕ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ನಲ್ಲಿ ಅನ್ವೇಷಣೆ ಮತ್ತು ಸೆಮ್ಯಾಂಟಿಕ್ ಫೈಲ್ ಹುಡುಕಾಟದ ಹೋಲಿಕೆ.

ಒಂದೇ ಹಂಚಿಕೆಯ ಮೂಲಸೌಕರ್ಯ

Computer ನ ಶಾಶ್ವತ ಮೆಮೊರಿಯು ಅದೇ ಫೈಲ್‌ಸಿಸ್ಟಮ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ಬಳಸುತ್ತದೆ. Computer ನ ಜ್ಞಾನ ವಿಕಿಯಾದ Perplexity Brain, ತಮ್ಮದೇ ಆದ ಇತಿಹಾಸ ಮತ್ತು ನೀತಿಗಳನ್ನು ಹೊಂದಿರುವ ಜ್ಞಾನ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಮೆಮೊರಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಜ್ಞಾನವನ್ನು ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸುವುದರಿಂದ, ಹಿನ್ನೆಲೆ ಮೆಮೊರಿ ನವೀಕರಣಗಳು ಆ ಫೈಲ್‌ಗಳಿಗೆ ಮಾಡುವ ಸಂಪಾದನೆಗಳೊಂದಿಗೆ ಸ್ಪರ್ಧಿಸುವುದಿಲ್ಲ. ಎರಡೂ ಅಗತ್ಯವಿರುವ ಸೆಷನ್ ಎರಡೂ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ.

ಹಿನ್ನೆಲೆ ಏಜೆಂಟ್‌ಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಜ್ಞಾನವನ್ನು ಓದುತ್ತವೆ, ಹೊಸ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸುತ್ತವೆ ಮತ್ತು ನವೀಕರಿಸಿದ ಪುಟಗಳನ್ನು ಕಮಿಟ್‌ಗಳಾಗಿ ಉಳಿಸುತ್ತವೆ. ಇತರ ಏಜೆಂಟ್‌ಗಳು ಸಾಮಾನ್ಯ ಫೈಲ್ ಪರಿಕರಗಳೊಂದಿಗೆ ಆ ಪುಟಗಳನ್ನು ಓದುತ್ತವೆ, ಮತ್ತು ಜನರೂ ಅವುಗಳನ್ನು ಸಂಪಾದಿಸಬಹುದು. ಬರಹಗಾರರು ಪ್ರತಿ ಓದುಗರೊಂದಿಗೆ ನೇರವಾಗಿ ಸಮನ್ವಯಗೊಳಿಸುವ ಬದಲು ರೆಪೊಸಿಟರಿಯ ಮೂಲಕ ತಮ್ಮ ಕೆಲಸವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಾರೆ. ಕಮಿಟ್ ಇತಿಹಾಸವು ಯಾರು ಏನನ್ನು ಬದಲಾಯಿಸಿದರು ಎಂಬುದನ್ನು ದಾಖಲಿಸುತ್ತದೆ, ಆದರೆ ಔಟ್‌ಬಾಕ್ಸ್ ಸ್ವೀಕೃತ ನವೀಕರಣಗಳನ್ನು ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಸೇವೆಗಳಿಗೆ ವರದಿ ಮಾಡುತ್ತದೆ. ಜ್ಞಾನವು ಹೇಗೆ ವಿಕಸನಗೊಂಡಿತು ಎಂಬುದರ ದಾಖಲೆಯೊಂದಿಗೆ, ಜನರು ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ಪರಸ್ಪರರ ಕೆಲಸವನ್ನು ಆಧರಿಸಿ ಮುಂದುವರಿಯಬಹುದು.

ಉಪಸಂಹಾರ

ಜನರು ಮತ್ತು ಏಜೆಂಟ್‌ಗಳು ಒಂದು ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಹಂಚಿಕೊಂಡಾಗ, ಕಾರ್ಯಕ್ಷೇತ್ರವು ಫೈಲ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಮಾಡುತ್ತದೆ. ಅದು ಕೊಡುಗೆಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಮತ್ತು ಏನು ಬದಲಾಯಿತು ಎಂಬುದನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಒಂದು ಸಾಮಾನ್ಯ ಸ್ಥಳವನ್ನು ಒದಗಿಸುತ್ತದೆ. Git ಈಗಾಗಲೇ ಅದರ ಬಹುಪಾಲು ಅಡಿಪಾಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರತಿ ನವೀಕರಣವನ್ನು ವ್ಯಕ್ತಿಯೊಬ್ಬರು ಅನುಮೋದಿಸದೆಯೇ ಏಜೆಂಟ್‌ಗಳು ಕೆಲಸವನ್ನು ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ನಾವು ಸಮನ್ವಯ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಪರಿಶೀಲನೆಗಳನ್ನು ಸೇರಿಸುತ್ತೇವೆ. ಫಲಿತಾಂಶವು ಅತ್ಯಗತ್ಯ ಅಂಶಗಳಿಗೆ ಮಾತ್ರ ಸೀಮಿತಗೊಳಿಸಿದ ಒಂದು ಫೋರ್ಜ್, ಏಕೆಂದರೆ ಏಜೆಂಟ್‌ಗಳ ನಡುವಿನ ಸಹಯೋಗ ಮತ್ತು ಬಹು-ಕೊಡುಗೆದಾರರ ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿ ಮೂಲತಃ ಒಂದೇ ಸಮಸ್ಯೆಯಾಗಿವೆ.

ಏಜೆಂಟ್‌ಗಳು ಸ್ವತಂತ್ರ, ತಾತ್ಕಾಲಿಕ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಲೇ ಬಾಳಿಕೆ ಬರುವ ರೆಪೊಸಿಟರಿಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತವೆ. ರೆಪೊಸಿಟರಿ ಮಿತಿಗಳು ಬೆಳವಣಿಗೆಯನ್ನು ನಿರ್ವಹಿಸಬಹುದಾದಂತೆ ಇರಿಸುತ್ತವೆ, ಸ್ಪಷ್ಟ ಡೌನ್‌ಲೋಡ್‌ಗಳು ಏನನ್ನು ಪಡೆಯಬೇಕೆಂದು ಆಯ್ಕೆ ಮಾಡಲು ಏಜೆಂಟ್‌ಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ, ಮತ್ತು ಸಾಮಾನ್ಯ ಫೈಲ್‌ಗಳು ಪರಿಚಿತ ಪರಿಕರಗಳೊಂದಿಗೆ ಅನ್ವೇಷಿಸಲು ಅವುಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ. ಹಿನ್ನೆಲೆ ನವೀಕರಣಗಳು, ಸಂವಾದಾತ್ಮಕ ಸಂಪಾದನೆಗಳು ಮತ್ತು ನಿಗದಿತ ಕಾರ್ಯಗಳು ನೇರವಾಗಿ ಸಮನ್ವಯಗೊಳಿಸದೆಯೇ ಪರಸ್ಪರರ ಕೆಲಸವನ್ನು ಆಧರಿಸಿ ಮುಂದುವರಿಯಬಹುದು.

ಹೆಚ್ಚು ಹೆಚ್ಚು ಏಜೆಂಟ್‌ಗಳು ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಒಳಗೆ ಸ್ವಾಯತ್ತವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಂತೆ, ಅವುಗಳ ಹಂಚಿಕೆಯ ಕಾರ್ಯಕ್ಷೇತ್ರವು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿರಬೇಕು ಮತ್ತು ಜನರಿಗೆ ಅರ್ಥವಾಗುವಂತಿರಬೇಕು. ಗುರಿ ಸರಳವಾಗಿದೆ: ಪ್ರತಿಯೊಂದು ಬದಲಾವಣೆಯೂ ಅದನ್ನು ರಚಿಸಿದ ಏಜೆಂಟ್‌ಗಿಂತ ಹೆಚ್ಚು ಕಾಲ ಬಾಳಬೇಕು, ಮುಂದಿನ ಸಹಯೋಗಿಗೆ ಲಭ್ಯವಾಗಬೇಕು ಮತ್ತು ಏನು ಬದಲಾಯಿತು ಎಂಬುದರ ಸ್ಪಷ್ಟ ದಾಖಲೆಯನ್ನು ಬಿಡಬೇಕು.

ಉಲ್ಲೇಖ

BibTeX
@online{perplexity2026BuildingSharedWorkspacesForPeopleAndAgents,
  author = {{Perplexity} and Se Won Jang and Peter Hart and Kartik Kapur and Kevin Lau and Sidhant Rajadnya and Ishbir Singh and Thomas Wang and Jarrod Bryan and Claire Beamer and Jeremy Yang},
  title = {{Building shared workspaces for people and agents}},
  date = {2026-10-12},
  url = {https://www.perplexity.ai/hub/blog/building-shared-workspaces-for-people-and-agents}
}