परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· SecurityService
Bulk-reassign endpoint
POST ******************* एक टीम पर लीड्स का एक बैच चला जाता है सदस्य और ईमेल कि सदस्य एक बार पूरे बैच के लिए। प्राधिकरण REASSIGN LEADS MANUALLY (149) का उपयोग करता है - वास्तव में सही नाम दिया गया यह यह पीयूटी / लीड्स / {id} पर एकल-लीड पथ की तुलना में सख्त है, जो ASSIGN LEADS की जाँच; सौ लीड्स को त्याग देना एक अलग विस्फोट त्रिज्या है एक को त्यागने से, और दो अधिकार मौजूद हैं ताकि उन्हें अलग किया जा सके। असाइन किए गए दृश्यता स्तर को यहां भी लागू किया गया है। असाइनमेंट एक दृश्यता है अनुदान: एक बार जब कॉलर को सौंपा जाता है तो यह "मेरे लिए सौंपा गया" के रूप में पढ़ता है। Unassigned-read 403 लिफ्ट और contact-info मास्क छोड़ देता है। इसके बिना एक कॉलर की जाँच करें जो 149 पकड़े गए थे, लेकिन नहीं। ग्रिड उनमें से छुपाता है और उन्हें पूरी तरह से पठनीय लोगों में लांघित करता है। स्किप की ओर इशारा करता है not Found — किस तरह अपने ग्रिड से पता चलता है - तो जवाब छिपा हुआ या विदेशी सुराग की आवश्यकता नहीं है। बैच जानबूझकर सभी या नहीं है: प्रत्येक असाइन लीड अपने आप में चलता है लेन-देन और एक बुरा आईडी एक छोड़ जाता है, क्योंकि नौ अच्छे शब्दों को खारिज करना दसवें दशक में इस्तीफा देना रिपोर्टिंग से भी बदतर है जो किसी ने नहीं लिया था। प्रति कॉल 250 पर बैठा दोनों पंक्ति ताले और वास्तविक समय प्रशंसक बाहर बाध्य करने के लिए। अधिसूचित एक अलग बीन के माध्यम से एक लघु लेनदेन में अपने डेटा को हल करता है और बाद में भेजता है, इसलिए 30s पढ़ने वाले टाइमआउट के साथ एक आउटबाउंड कॉल कभी भी पिन नहीं करता है CRDB कनेक्शन बेन सीमा को पार करना भी है जो @transactional बनाता है सभी पर लागू होते हैं - स्व-invocation चुपचाप कोई लेनदेन और कोई लेनदेन के साथ चला जाएगा। LAZY उपयोगकर्ता संघ को फेंकना होगा।.
· EmailService
LEADS ASSIGNED टेम्पलेट के लिए नमूना चर
यहाँ एक मामले के बिना व्यवस्थापक टेम्पलेट संपादक की पूर्वावलोकन नए टेम्पलेट प्रस्तुत करता है प्रत्येक प्लेसहोल्डर रिक्त के साथ, जो एक टूटे हुए टेम्पलेट के रूप में पढ़ता है, बजाय एक के बजाय unfilled नोट्सब्लॉक प्री-रेंडर एचटीएमएल है क्योंकि रेंडरर में कोई नहीं है सशर्त - प्रेषक इसे "" तक गिर जाता है जब कोई नोट नहीं होता है।.
· kamo-shared-library
LEADS ASSIGNED ईमेल टेम्पलेट; थोक उपयोग के लिए कठोर असाइन लीड
असाइन लीड में शून्य कॉलर थे और कभी उत्पादन में नहीं चला था। तारों से पहले इसके लिए बल्क रीसाइनमेंट पथ, यह गारंटी देता है कि पथ की जरूरत है: - लेने के लिए orgId और सत्यापित करें BOTH लीड और नए असाइनी इसके हैं, तो एक असाइनमेंट किरायेदारों में नहीं पहुंच सकता ("नहीं मिला" के रूप में रिपोर्ट किया गया) बजाय "forbidden" तो त्रुटि विदेशी नेतृत्व ids जांच करने के लिए इस्तेमाल नहीं किया जा सकता है - खोज के साथ पंक्ति को लॉक करेंByUidForUpdate: एक मैनुअल reassignment और एक समवर्ती पूल स्वीकार एक ही नेतृत्व लक्ष्य और अन्यथा एक खो दिया में हस्तक्षेप होगा अपडेट - पूल झंडे को साफ़ करें, क्रेडिट लीड असाइनमेंट सर्विस को प्रतिबिंबित करें। एक लीड के लिए चिह्नित ऑटो असाइनमेंट अन्यथा हाथ से दावा किए जाने के बाद पूल में रहता है और अपने नए मालिक के तहत से बाहर निकलना - चैट रूटिंग प्रकाशित करें, अद्यतन के रूप में पहले से ही करता है, इसलिए उधारकर्ता का खुला लाइव चैट पिछले अधिकारी के साथ रहने के बजाय लीड का अनुसरण करता है इसके अलावा LEADS ASSIGNED canonical टेम्पलेट जोड़ें। कुंजी होना चाहिए CANONICAL KEYS या इसे कभी बीज नहीं दिया जा सकता है और कभी भी आत्म-चिकित्सा नहीं कर सकता है, और हर प्रेषक एक स्थायी 404 रिटर्न देता है।.
· kamo-shared-library
जोड़ें MANAGE ORG BRANDING (174)
संगठन ब्रांडिंग समापन बिंदु (लोगो, रंग, पृष्ठभूमि, थीम प्रावधान) थे केवल मालिक या जाने जाते हैं, बिना किसी तरह के ब्रांडिंग को सौंपने का कोई तरीका नहीं छोड़ते हैं org का स्वामित्व। कानूनी अधिकारों को जोड़ता है; मालिक की जांच एक के रूप में रहती है इसलिए मौजूदा मालिक इसे सौंपे जाने के बिना काम करते रहते हैं।.
· kamo-internal
सूची पैनल से लेखक पात्रता Matrices
परिदृश्य के कब्जे और उद्देश्य को कवर करने वाले मैट्रिक्स के बिना, मूल्य निर्धारण रिटर्न NO COVERAGE — इससे पहले, केवल एक प्राथमिक निवास की खरीद की कीमत हो सकती है। फॉर्म लेखक मैट्रिक्स और इसकी कोशिकाओं को एक चुनी हुई सीमा के लिए तरह, अधिभोग और उद्देश्य, सेल को जोड़ने / हटाने के साथ पंक्तियां, एक ही पैनल में लॉक-पॉलिसी फॉर्म के साथ। उत्पाद को छोड़ने से निवेशक के सक्रिय उत्पाद के प्रति एक मैट्रिक्स को अनसेट किया जाता है, क्योंकि मैट्रिक्स का उत्पाद दायरा NULL नहीं है और एक पंक्ति के रूप में "सभी उत्पादों" को व्यक्त नहीं कर सकता है।.
· SecurityService
रिले एलिजिबिलिटी-मैट्रिक्स प्राधिकरण; पुनर्निर्माण SUSPENDED फिर से शुरू होता है
रिले POST ************* मौजूदा org-stamping लेखन के माध्यम से हेल्पर, इसलिए एक स्टेवर्ड लेखक केवल अपने किरायेदार के लिए matrices। यह पुश साझा-lib परिवर्तन के खिलाफ भी पुनर्निर्माण करता है जो एक SUSPENDED ऋण को फिर से शुरू करने देता है। कामो-शेयर्ड-library के पास अपने स्वयं के सीआई नहीं है - प्रत्येक सेवा क्लोन और इसे स्रोत से बनाता है - इसलिए जब यह सेवा पुनर्निर्माण करती है तो यह निश्चित ही इस सेवा तक पहुंचती है।.
· kamo-internal
एक पूर्ण-चौड़ाई कार्यक्षेत्र के रूप में एजेंट स्टूडियो का पुनर्निर्माण
चौड़ाई की टोपी को हटाना ठीक नहीं था; खुद को डिजाइन करने के लिए लेआउट की जरूरत थी इसके बजाय अंतरिक्ष के लिए। स्टूडियो अब तीन क्षेत्रों की ओर है: - ** आउटलाइन रेल ** - धारा, वर्तमान के साथ आप स्क्रॉल के रूप में हाइलाइट किया गया (इंटरसेक्शन पर्यवेक्षक, शीर्ष भारित इसलिए एक अनुभाग चालू हो जाता है जब इसका हेडर जहां ध्यान वास्तव में है तक पहुँचता है). हाथ से लिखे गए अनुभाग चिह्नित हैं, इसलिए एक हाथ से लिखने वाला हिस्सा बाद में हर एक को खोलने के बिना मिल सकता है। - ** संपादक ** - अनुभाग खुद को, कई स्तंभों में बाँधना व्यूपोर्ट एक संकीर्ण रिबन के बजाय रखता है। ** लाइव बातचीत ** - एक विस्तृत प्रदर्शन पर एक वास्तविक स्तंभ, एक पट्टी नहीं है कि खुलने पर सामग्री ढह जाती है। यह संपादन और घड़ी लूप स्टूडियो है इसके लिए मौजूद है: निर्देश बदलें, उत्तर बदलें देखें, बिना नेविगेट किए। एक TestDrivePanel उदाहरण, डुप्लिकेट के बजाय repositioned — यह बढ़ते दो बार दो थ्रोएवे सत्र शुरू होंगे। नीचे xl यह संपादक के नीचे गिर जाता है क्योंकि एक पूर्ण-चौड़ाई पंक्ति के बजाय किसी भी कमरे के साथ प्रदर्शन पर एक तीसरे स्तंभ को निचोड़ना एक के लिए, और रेल पूरी तरह से छोटी स्क्रीन पर छिपाती है।.
· kamo-internal
लेखक ताला नीतियों - एक के बिना, सभी पर कोई दर बंद नहीं की जा सकती है
जब भी दाम का परिणाम नहीं होता, तो रेटकमिटमेंट सर्विस लॉक को मना कर देती है lockPolicyVersionId ("लॉक-पॉलिसी संस्करण की आवश्यकता है"), और परिणामस्वरूप केवल एक ही होता है अगर निवेशक के पास एक प्रकाशित लॉक-पॉलिसी संस्करण है। नहीं यूआई एक प्रकाशित कर सकता है, इसलिए दर लॉकिंग हर किरायेदार के लिए सुलभ था - जबकि समापन बिंदु पहले से ही बनाया गया था, org-gated और सही ढंग से आगे बढ़ना। केवल ग्राहक विधि और यह रूप गायब हो गया। फॉर्म एक आदेशित सूची के रूप में प्रस्तावित लॉक अवधि लेता है क्योंकि FIRST बन जाता है डिफ़ॉल्ट, इसलिए यह जानबूझकर उन्हें सॉर्ट नहीं करता है; प्रविष्टियां जो एक सकारात्मक संपूर्ण नहीं हैं दिनों की संख्या को खराब लॉक अवधि के रूप में भेजने के बजाय छोड़ दिया जाता है।.
· kamo-internal
प्रत्येक एजेंट कैसे कर रहा है
एजेंट स्टूडियो के शीर्ष पर एक प्रदर्शन अनुभाग जोड़ता है: बातचीत, कैसे अक्सर एक व्यक्ति ने इसे लिया और इसे क्या ट्रिगर किया, परिणाम और लागत से बाहर निकलें। इसलिए कोई आंकड़ा गलत नहीं हो सकता: - शून्य 'नॉन' शब्द के रूप में प्रस्तुत करता है, कभी नहीं 0। - एक शेयर केवल तभी प्रस्तुत करता है जब कोई denominator हो; अन्यथा 'कोई बातचीत नहीं अभी तक तुलना करने के लिए'। कोई शून्य डेनोमिनेटर प्रतिशत नहीं है। - जब अवधि में कोई मूल्य नहीं लिया जाता है, तो कोई लागत आंकड़ा बिल्कुल नहीं दिखाया जाता है - केवल एक स्पष्टीकरण है कि मूल्य निर्धारण यातायात के बाद स्थापित किया गया था। आंशिक कवरेज राशि को दर्शाता है और इससे कितने उत्तर गायब हैं। - सप्रेस आउटरीच को यह सुविधा के रूप में प्रस्तुत किया गया है: उद्देश्य - वे आपके रिकॉर्ड क्यों किसी से संपर्क नहीं किया गया था। - अज्ञात enum कोड एक कच्चे कुंजी पथ के बजाय पठनीय पाठ के लिए degrade है। प्रति संस्करण संदेश और हैंडऑफ़ कॉलम को हटा दिया गया: एपीआई कुल नहीं है उन्हें प्रति संस्करण, इसलिए उन कोशिकाओं को एक गढ़े हुए 0 प्रस्तुत किया जाएगा, हालांकि यह मापा गया था। बातचीत अकेले जवाब देने के लिए क्या है - जो बचाया कौन सा यातायात संभालती है। एक नए टैब के बजाय मौजूदा स्क्रॉलिंग स्टूडियो दस्तावेज़ में मुड़ा, और एजेंट सूची बंद रखा, जहां हर एजेंट के खिलाफ एक नंगे 0 सही होगा गलत तरीके से बचना चाहिए।.
· AIService
प्रति एजेंट स्कोरकार्ड
प्रत्येक एजेंट ने वास्तव में क्या किया: बातचीत, कितनी बार किसी व्यक्ति को लेना पड़ता था और क्यों, आउटरीच परिणामों सहित लोगों ने वापस आयोजित किया, और इसकी लागत क्या है। प्रत्येक नंबर एक डेटा वास्तव में समर्थन कर सकता है। तीन चीजें जानबूझकर होती हैं यहाँ नहीं: ** कोई टोकन कुल नहीं* वे सिंक पथ पर वास्तविक हैं और उन पर निर्मित हैं। स्ट्रीमिंग एक (content.length) / 4), इसलिए किसी भी कुल का आविष्कार किया जाता है। उत्तर एक ही सवाल ईमानदारी से, क्योंकि यह अनुमान लगाया गया है कि जहां यह शून्य है मूल्य अज्ञात है। ** कोई संकल्प या विक्षेपण दर नहीं** कुछ भी नहीं मानता कि क्या कोई बातचीत है अंत में, और 'कोई हैंडऑफ़ नहीं हुआ' सफलता का सबूत नहीं है। ** कोई प्रति संस्करण संदेश या हैंडऑफ़ गिनती नहीं*** वे प्रति समुचित नहीं हैं संस्करण, और उनके लिए 0 उत्सर्जित करने के लिए एक निर्माण के रूप में प्रस्तुत किया जाएगा माप - इस स्क्रीन से बचने के लिए सटीक विफलता मौजूद है। लागत एक स्पष्ट ट्रैक झंडे और 0 के बजाय एक शून्य राशि है जब खिड़की में कुछ भी कीमत नहीं थी, इसलिए एक ओरग जिसका यातायात मूल्य निर्धारण देखता है एक आश्वस्त $0.00 के बजाय ' रिकॉर्ड नहीं'। pricedCalls बल्कि अधिकार है योग की तुलना में, इसलिए कीमती मुफ्त-स्तरीय कॉल से वास्तविक शून्य अभी भी पढ़ता है ट्रैक किया। Transcript prose VIEW SALES AGENT TRANSCRIPTS पर अलग से गेट किया गया है। गिनती - किसी विशिष्ट आगंतुक का मॉडल का सारांश बातचीत की सामग्री नहीं है, एक विशिष्ट आगंतुक का सारांश नहीं है। मीट्रिक। कोई यातायात के साथ एजेंट संरचनात्मक रूप से पूर्ण खाली स्कोरकार्ड वापस लौटते हैं: सूची से लापता एजेंट एक बग के रूप में पढ़ता है, शून्य पढ़ने के साथ उपस्थित एजेंट सत्य के रूप में। parseHandoffArgument अब चैट पथ के बजाय reimplemented के साथ साझा किया गया है, इसलिए अन्य लोगों के लिए आविष्कार कारणों का टकराव दोनों के बीच बहा नहीं सकता। सूट 150 परीक्षण, हरा है।.
· kamo-shared-library
एजेंट स्कोरकार्ड के लिए समूहीकृत कुल क्वेरी
सत्र, संदेश, उपयोग रिकॉर्ड और आउटबाउंड भर में @ Query समुच्चय स्पर्श, इसलिए एक स्कोरकार्ड पंक्तियों को लोड करने के बजाय समूहीकृत प्रश्नों का एक मुट्ठी भर है स्मृति में। दो गुण प्रेसिडिएट्स में लागू होते हैं, बजाय बाएं से कॉलर्स: ** टेस्ट सत्रों को क्वेरी में ही बाहर रखा गया है।* एक युवा एजेंट पर लेखक का अपना परीक्षण ड्राइव अन्यथा अधिकांश डेटा होगा, और एक कॉलर जो फ़िल्टर करने के लिए भूल जाता है कि संख्या असली लग रही है और नहीं कर रहे हैं। * यही कारण है कि क्या देता है स्कोरकार्ड ने 'नोथिंग की कीमत' को 'इस लागत शून्य' से अलग किया - ढहने उन लोगों को एक org के सामने $0.00 का विश्वास था जिसका यातायात केवल मूल्य निर्धारण आउटबाउंड टच्स को भेजने के लिए फ़िल्टर किए जाने के बजाय निर्णय द्वारा समूहित किया जाता है। The इनकार अधिक रोचक आधा हैं: एक एजेंट जिसका स्पर्श लगभग सभी हैं SUPPRESSED QUIET HOURS गलत विन्यास किया गया है, और यह अदृश्य है अगर डिकोडर हैं त्याग देना।.
· kamo-internal
प्रत्येक मॉडल की लागत क्या है
प्रदाता सेटअप स्क्रीन पर प्रति मॉडल मूल्य संपादन जोड़ता है। कीमतों से बीज कर रहे हैं प्रत्येक विक्रेता की प्रकाशित सूची मूल्य जहां हम इसे जानते हैं, और खाली जहां हम नहीं करते - एक खाली मतलब लागत केवल उस मॉडल के लिए ट्रैक नहीं की जाती है, जो एक से बेहतर है संख्या जो आत्मविश्वास से गलत है। कॉपी लोगों को अपने बिल के बजाय बीजित आंकड़ों की जांच करने के लिए कहता है। उन्हें आधिकारिक रूप से प्रस्तुत करना। समीक्षा में पकड़ा एक प्रदर्शन बग को ठीक करता है: ट्रेलिंग-शून्य ट्रिम ने एक प्रस्तुत किया होगा 1 के रूप में 10 की कीमत यह अब केवल दशमलव बिंदु के बाद शून्य स्ट्रिप्स।.
· AIService
मॉडल मूल्य निर्धारण सूची, पथ और बैकफिल लिखें
लागत लेखांकन कभी काम नहीं कर सकता: AiModel में मूल्य स्तंभ, AiModelController है उन्हें पढ़ा और ChatOrchestrationसेवा ने उन्हें लागत को समझने के लिए पढ़ा - लेकिन उन्हें कहीं भी नहीं लिखा था। मॉडल केवल प्रदाता खोज द्वारा बनाए गए हैं, और कोई प्रदाता एपीआई रिटर्न मूल्य निर्धारण नहीं। 140 मॉडल, 0 कीमत, कोई रास्ता जिसके द्वारा बदल सकता है। स्तंभ संरचनात्मक रूप से सुलभ थे। तीन भागों: - मॉडलPricingCatalog बीज विक्रेता LIST कीमतों की खोज में, एक पर मैच एक हाइफेन-बाउंड्री प्रिफिक्स नियम के साथ सामान्यीकृत पहचानकर्ता इसलिए gpt-4 कभी नहीं कर सकता दावा Gpt-4o. गैर चैट मॉडल (टीटीएस, एम्बेडिंग, रीयलटाइम) को अस्वीकार कर दिया जाता है मौजूदा मोडलिटी चेक का पुन: उपयोग करते हुए - वे एक अलग शीट बंद बिल करते हैं। - PATCH समापन बिंदु + UI इसलिए एक ओरग मूल्य को सही या साफ़ कर सकता है। वास्तव में ऑर्ग-स्किप मौजूदा DELETE की तरह। - बैकफिल केवल NULL कॉलम भरता है, प्रति कॉलम स्वतंत्र रूप से, और कभी नहीं ओवरराइट करता है कि एक ऑर्ग क्या सेट है - अन्यथा कीमतों को संपादित करने में सक्षम होना चाहिए झूठ Idempotent, और इसलिए लागत लेखांकन लपेटा बूट कभी नहीं अवरुद्ध कर सकते हैं। ** एक मॉडल हमें एक अनुमान के बजाय कोई कीमत नहीं मिलती है।* GPT-5, o3, अधिकांश Mistral, DeepSeek, xAI, Cohere और Meta जानबूझकर रिक्त हैं; OpenRouter और HuggingFace कभी डिजाइन से मेल नहीं खाते, क्योंकि वे अपनी दरों का बिल देते हैं और विरासत अपस्ट्रीम मूल्य निर्धारण एक अनुमान होगा। गलत कीमत का उत्पादन चालान के आकार का आंकड़ा जो आत्मविश्वास से गलत है - एक ही कारण की लागत अभी भी है स्ट्रीमिंग पथ पर गणना नहीं की जाती, जहां टोकन की गिनती बनाई जाती है। प्रति-1k कॉलम में रूपांतरण राउंडिंगमोड का उपयोग करता है। उद्देश्य पर UNNECESSARY: एक मूल्य 6 से अधिक दशमलवों की जरूरत चुपचाप भंडारण के बजाय कक्षा में फेंक देती है कारण और खाली छोड़ दिया है। सूट 145 परीक्षण, हरा है।.
· kamo-internal
एआई हैंडऑफ़ संदर्भ को एजेंट को दिखाने के लिए
कारण के साथ एक कार्ड के रूप में एक AI HANDOFF सिस्टम इवेंट प्रस्तुत करता है, AI का सारांश, और अब तक बातचीत का एक खुलने योग्य ट्रांसक्रिप्ट - इसलिए उधारकर्ता करता है खुद को उस व्यक्ति को फिर से निकालने की जरूरत नहीं है जो उठाता है। तीन गिरावट वाले राज्यों को चुपचाप के बजाय स्पष्ट और दिखाई देते हैं: ट्रांसक्रिप्ट अनुपलब्ध, transcript truncated, और पेलोड transit में छीन लिया। एक एजेंट होना चाहिए कभी भी छोड़े जाने पर उन्हें पूरा संदर्भ नहीं मिलता है। आगंतुक और एजेंट एक एसटीओएमपी विषय साझा करते हैं, इसलिए लाइव फ्रेम को रिडीक्ट किया जाता है (thon) एआई का सारांश आगंतुक का निजी आकलन है और उनके पास नहीं जा सकता है ब्राउज़र). फिर से लोड करने के लिए एजेंट को बताने के बजाय, कार्ड पूरी पंक्ति को फिर से पढ़ता है अपने स्वयं के प्रमाणित समापन बिंदु से एक बार। इसके पहले पुनः पढ़ने को मान्य किया जाता है अपनाया - एक जवाब जो अभी भी बंद हो गया था, इस्तेमाल के बजाय अस्वीकार कर दिया गया है, इसलिए चेतावनी केवल तभी स्पष्ट हो सकती है जब संदर्भ वास्तव में प्राप्त हुआ था। कोई विफलता फिर से लोड संदेश वापस गिर जाता है।.
· APIService
प्रॉक्सी सार्वजनिक AI-> मानव हैंडऑफ़ मार्ग
पोस्ट जोड़ें **************** मीडिया सर्विस के लिए जिम्मेदार इसके निर्माण के साथ-साथ समर्थन सत्र भाई-बहन। इसके बिना हैंडऑफ़ सुविधा आगमन पर मृत हो गई थी: मीडिया सर्विस का समापन बिंदु हार्ड-require X-Internal-Auth, X-पब्लिक-Chat-Org-Id और X-पब्लिक-Chat-Key-Hash, जो केवल इस गेटवे इंजेक्ट करता है, इसलिए विजेट का POST 404's here and never यह पहुंच गया। एक ही सशर्त *** गार्ड को बनाने के रूप में समर्थन करता है। हैंडऑफ़ रन पूर्ण सत्र-निर्माण पथ, इसलिए इसे छोड़कर नंगे एक छोड़ दिया होगा टिकट बनाने का मार्ग जो प्रूफ-ऑफ-वर्क को अपने भाई-बहन को लागू करता है।.
· MediaService
हाथ पर मानव धागे में एआई बातचीत करें
समर्थन सत्र का निर्माण या पुन: उपयोग करता है, एआई ट्रांसक्रिप्ट को एक प्रणाली के रूप में कॉपी करता है घटना, इसे रूट करती है, और आगंतुक को ईमानदारी से बताती है कि क्या होता है। गोपनीयता दर्शकों द्वारा विभाजित है, जो पहले पास को पीछे की ओर मिला। The एआई का सारांश और तर्कविवरण आगंतुक का निजी आकलन है, और पूर्ण पेलोड दो आरईएसटी दरवाजे के माध्यम से आगंतुक के अपने ब्राउज़र तक पहुंच गया और जबकि एजेंट ने कुछ भी नहीं देखा। Redaction अब प्रत्येक पर लागू होता है विज़िटर-फेसिंग पथ; निरंतर पंक्ति एजेंट के लिए पूर्ण पेलोड रखता है। chat.session.{guid} दर्शकों की सदस्यता दोनों ही एक ही विषय है, इसलिए लाइव फ्रेम को क्या देखा जा सकता है और एजेंट यूआई ने पूरी पंक्ति को फिर से पढ़ लिया अपने स्वयं के प्रामाणिक समापन बिंदु से। Idempotency aiSessionGuid, org-scoped पर की कुंजी है, और की जाँच से पहले बनाने कुछ भी यह सत्र पर की जाँच और निर्माण के बाद जाँच - स्पष्ट आकार - ठीक से बेकार है जब यह मायने रखता है: एक प्रत्यावर्ती जिसने अपने सत्र को खो दिया टोकन हमेशा चेक पास करता है और एक डुप्लिकेट टिकट और दूसरा एजेंट उत्पन्न करता है पृष्ठ अब ट्रांसक्रिप्ट ने बताया कि वास्तव में क्या हुआ है। पहले आया जब भी लिखने चुपचाप विफल हो गया था, जो सबसे खराब संभव है संयोजन: आगंतुक को उनके संदर्भ में बताया गया है, एजेंट का धागा है खाली और न तो पार्टी जानता है। कॉपी-ऑन-हैंडऑफ़, माइग्रेशन नहीं: एआई रुक जाता है जहां एनालिटिक्स उन्हें पढ़ता है।.
· AIService
एक मानव के लिए एजेंट-प्रेरित हैंडऑफ़, संदर्भ के साथ
एआई पहले किसी व्यक्ति के लिए नहीं पूछ सकता: वृद्धि नियम मॉडल तक पहुंच गया संकलित संकेत के माध्यम से, लेकिन कोई मशीन पठनीय संकेत वापस नहीं था, इसलिए मॉडल केवल SAY हो सकता है यह किसी को और कुछ भी नहीं हुआ। - सिंथेटिक kamo request human उपकरण, एजेंट के अपने सक्षम से वर्णन किया इसलिए मॉडल में समान ट्रिगर परिस्थितियों को देखता है संकेत और उपकरण। MCP प्रेषण से पहले अवरोधित - यह एक संकेत है, नहीं वास्तविक उपकरण कॉल - और TOOL पंक्ति यह बनी हुई है कि क्या कारण टिकाऊ है और विश्लेषण-ready शून्य नए स्तंभों के साथ। - केवल तभी संलग्न जब चैनल वास्तव में लाइव समर्थन सक्षम है। सौंपना AI-only org एक ऐसा उपकरण जो वादा करता है कि वह इंसान जो कभी नहीं पहुंच सकता है उससे भी बदतर है कोई उपकरण नहीं है: विजेट में कोई समर्थन टैब नहीं है, इसलिए संकेत छोड़ दिया जाता है और आगंतुक कभी नहीं आ रहा था जो किसी के लिए इंतजार छोड़ दिया है। - नया आंतरिक समापन बिंदु handoff कारण वापस लौटता है, जो भी हो सकता है के लिए एआई का सारांश और USER/ASSISTANT transcript. TOOL और सिस्टम पंक्तियां हैं बाहर रखा - मानव बातचीत की जरूरत है, मशीनरी नहीं। कारणविवरण और सारांश को जानबूझकर आगंतुक के ब्राउज़र से रोक दिया जाता है: वे आगंतुक के मॉडल का निजी आकलन हैं। केवल {requested, कारण} ग्राहक को पार करता है; मीडिया सर्विस बाकी सर्वर-साइड प्राप्त करती है। - एआई मोड़ कभी नहीं चले जाते या हटा दिए जाते हैं। AiChatMessage एनालिटिक्स सिस्टम रहता है रिकॉर्ड की; मानव पक्ष एक प्रतिलिपि हो जाता है। इसके अलावा रास्ते में पाया जाने वाला एक अव्यक्त बग को ठीक करता है: उपकरण ब्लॉक ने प्रति-मॉडल को अनदेखा कर दिया टूल का समर्थन करता है, इसलिए एक मॉडल स्पष्ट रूप से फ्लैग किया गया क्योंकि सहायक उपकरण नहीं थे फिर भी उन्हें भेजा गया। 140 मॉडल के 31 झूठे झंडे जा रहे हैं; ai mcp server configs है खाली क्लस्टर चौड़ा, इसलिए आज का विस्फोट त्रिज्या शून्य है। सूट 124 परीक्षण, हरा है।.
· MediaService
एजेंट-लेखित आउटरीच को खुले उधारकर्ता धागे में स्वीकार करें
समकक्ष AIService की आउटरीच प्रेषक कॉल। इसके बिना आउटबाउंड पथ रिकॉर्ड किए गए 404 में समाप्त हो गया - गेट ने एक स्पर्श अधिकृत किया, जो एक रिकॉर्डेड 404 में समाप्त हो गया। संदेश बनाया गया था, और इसे कहीं नहीं रखा गया था। स्वामित्व जानबूझकर विभाजित रहता है: एआई सर्विस निर्णय लेती है कि WHETHER एक स्पर्श बाहर जा सकता है और पाठ लिखते हैं, यह सेवा उस स्थान पर है। इन पंक्तियों को AIService से लिखना वह सेवा जो न तो चैट का मालिक है, के लिए transcript का स्वामित्व टेबल न ही सॉकेट। यह दो चीजें नहीं करेंगे। यह कभी बातचीत नहीं बनाता - आउटरीच फिर से शुरू हो सकता है एक थ्रेड आगंतुक पहले से ही खोला गया, कभी भी किसी ऐसे व्यक्ति पर एक चैट विंडो का सामना नहीं करता है जो नहीं। और यह कभी भी मग को पार नहीं करता है: एक लीड यूआईडी दूसरे ऑर्ग के टिकट को हल करता है एक ओर्ग के एजेंट को दूसरे ऑर्ग के वार्तालाप के अंदर रखा जाएगा, इसलिए ऑर्ग है कॉलर से विश्वसनीय होने के बजाय टिकट के खिलाफ जांच की गई। संदेश को सत्र सदस्य के लिए जिम्मेदार ठहराया जाता है, वास्तव में एक आगंतुक संदेश के रूप में यह है - निर्दिष्ट मानवाधिकार के लिए नहीं। एक AI-composed संदेश प्रस्तुत करना हालांकि, एक नामित लाइसेंस प्राप्त व्यक्ति ने यह लिखा है कि एआई प्रकटीकरण नियम क्या है? रोकथाम यह सुनिश्चित करता है कि सदस्यता NATS की पूर्ववर्ती है क्योंकि उपभोक्ता उपयोग करता है DeliverPolicy. नया: प्रकाशन पहले संदेश जारी रहेगा लेकिन इसे छोड़ दें प्रत्येक कनेक्टेड क्लाइंट। दोनों आईडी और संदेश आईडी वापस लौटें ताकि आउटरीच ऑडिट लॉग संदेश को धागे के बजाय संदर्भित करता है। 404 जब कोई खुला धागा मौजूद नहीं है, इसलिए कॉलर वितरण के बजाय एक साफ विफलता रिकॉर्ड करता है।.
· AIService
आउटबाउंड ट्रिगर, शेड्यूलर और वेब-चैट प्रेषण
आउटरीच रीढ़ वास्तव में आग बनाता है। गेट, संपर्क राज्य, सहमति और पहले से ही अस्तित्व में है; कुछ भी नहीं मूल्यांकन किया जा करने के लिए एक स्पर्श की वजह से। - NATS ने अपने स्वयं के k8s/configmap.yaml (प्रत्येक जावा सेवा) के माध्यम से AIService के लिए सक्षम किया। अपने खुद के k8s dir; KlusterServices केवल क्लस्टर infra रखती है। जेट स्ट्रीम जानबूझकर छोड़ दिया जाता है: NatsConfig के खिलाफ अपनी प्रतिकृति-फैक्टर पर जोर देता है स्टार्टअप पर केंद्रीय रूप से संशोधित धाराएं, और एआई सर्विस केवल कोर की सदस्यता लेती है NATS और कुछ भी प्रकाशित नहीं करता है, इसलिए इसे सक्षम करने के लिए कुछ भी हासिल नहीं होता और दूसरा जोखिम होता है। सेवा का दावा प्रतिकृति गिनती। - AgentOutboundConsumer Security.leads.rt.> की सदस्यता लेता है और केवल उपभोग करता है LEAD CREated/LEAD UPDated. प्रकाशक भी ताला और आँकड़े घटनाओं का उत्सर्जन करता है - किसी व्यक्ति तक पहुंचना क्योंकि एक सहयोगी ने अपने रिकॉर्ड पर एक संपादन लॉक लिया संभव नहीं है। Ids प्रकाशक से तार के रूप में आते हैं, इसलिए उन्हें पार्स किया जाता है Aslong() बजाय पाठ के रूप में। - AgentOutboundScheduler चार सीमाओं के तहत अनुसूची ट्रिगर का मूल्यांकन: org set वास्तव में उन एजेंटों से व्युत्पन्न जो वास्तव में (capped) पर पहुंचते हैं, एक पतली स्लाइडिंग समय टुकड़ा इसलिए लागत कुल लीड्स के बजाय नए लीड रेट को ट्रैक करती है, एक प्रति-टिक पंक्ति टोपी, और एक फिर से मूल्यांकन डैपर इसलिए शांत घंटों के दौरान एक लीड क्रॉसिंग को पुनर्प्राप्त किया जाता है एक दिन के लिए हर टिक के बजाय एक बार। - रचना के बीज पाठपुष्कृत संस्करण के संकलित संकेत के साथ पूरा करें, कभी ड्राफ्ट नहीं, साथ ही ट्रिगर इरादे। संरचना विफलता रिकॉर्ड FAILED; वहाँ कोई डिब्बाबंद वापसी संदेश है। - WEB CHAT प्रेषण केवल एक मौजूदा धागा जारी रखता है। आउटरीच एक फिर से शुरू हो सकता है आगंतुक खुलता है; यह किसी पर एक चैट विंडो को व्यक्त नहीं कर सकता है जो कभी नहीं खोला। - एसएमएस/EMAIL/SOCIAL DM मार्ग एक रिकॉर्ड करने के लिए FAILED लापता अनुपालन नामकरण प्लंबिंग, इसलिए एसएमएस पर एक ट्रिगर इंगित करने वाला एक ऑर्ग आउटरीच लॉग में क्यों देखता है कुछ भी नहीं होने के बजाय तुरंत। 23 नए परीक्षण; सुइट 68 और हरे रंग का है।.
· kamo-internal
आवश्यक पाठ संपादक; डिडैप एआई सामान्य सेटिंग्स; मॉडल टॉगल को ठीक करें
Org-wide के लिए एक संपादक जोड़ने के लिए आवश्यक खोलने/बंद पाठ - compiler और स्तंभ अस्तित्व में थे लेकिन कुछ भी उन्हें निर्धारित नहीं कर सकता था, इसलिए क्षमता मृत थी। कॉपी स्पष्ट रूप से कहा जाता है कि एजेंट इसे हटा नहीं सकते हैं और यह बचत हर किसी के लिए लागू होती है। तुरंत एजेंट, और टोस्ट रिपोर्ट करते हैं कि कितने एजेंट प्रकाशित हुए थे बल्कि कई एजेंट प्रकाशित हुए थे। क्योंकि लाइव एजेंट ने सिर्फ वही बदल दिया जो वे कहते हैं। दो पूर्व मौजूदा बग रास्ते में पाया: - 'ऑटो-चयन सर्वश्रेष्ठ उपलब्ध मॉडल' स्विच ने कभी काम नहीं किया है। फ्रंटेंड data.autoselectModel को पढ़ा और autoselectModel भेजा, लेकिन बैकेंड रिटर्न और उम्मीद है कि AutoModelEnabled - इसलिए टॉगल हमेशा सही प्रदान किया गया था और इसका मूल्य था हर बचत पर छोड़ दिया। फिक्स्ड फ्रंटएंड-साइड; सर्वर परिवर्तन की आवश्यकता नहीं है। - AiGeneralSettings.tsx मृत कोड था, कभी आयात नहीं किया गया था, जबकि एक क्रियाशील लाइन डुप्लिकेट SecurityModelsTab.tsx के नीचे रहते थे। लागू करने के बजाय दो बार आवश्यक पाठ, डुप्लिकेट हटा दिया जाता है और SecurityModelsTab आयात करता है साझा घटक। इसके अलावा बिक्री एजेंटों की मदद टिप को प्रतिस्थापित करता है, जो अभी भी उपयोगकर्ताओं को बताता है कि सुविधा थी जल्द ही आना।.
· AIService
Persist org-wide आवश्यक पाठ और इसे तुरंत लागू करें
AiOrgsettings ने मजबूर किया उन्हें हर एजेंट में जोड़ती है, लेकिन सेटिंग्स नियंत्रक ने न तो पढ़ा और न ही लिखा उन्हें - इसलिए क्षमता मृत थी: एक बचत सफल होने के लिए दिखाई दिया और वापस आ गया पुनः लोड पर रिक्त। अब दोनों क्षेत्रों (नो-सेटिंग डिफॉल्ट सहित) और PUT लौटाएं उन्हें जारी रखता है, रिक्त स्थान को सामान्य करने के लिए इसलिए किसी क्षेत्र को साफ़ करना वास्तव में इसे साफ़ करता है एक खाली स्ट्रिंग को छोड़ने के बजाय एक स्ट्रे विभाजक के रूप में मोड़ा जा सकता है। आवश्यक पाठ अब IMMEDIATELY पर लागू होता है, फिर से शुरू करके और प्रकाशन करके ऑर्ग में हर प्रकाशित एजेंट। इसे प्रत्येक एजेंट के अगले प्रकाशन पर लागू करने की अनुमति देता है सस्ता था और एक जाल है: एक व्यवस्थापक जो कहते हैं कि आप एक स्वचालित हैं सहायक का मानना है कि यह लाइव है, और कोई भी एजेंट फिर से प्रकाशित नहीं होता है इसके बिना गलत तरीके से बात करना होगा। एक आवश्यक रेखा जो चुपचाप करता है लागू नहीं होता है, इससे भी बदतर नहीं होता है। प्रत्येक प्रभावित एजेंट को एक नया बचाया जाता है क्यों के साथ लेबल की प्रतिलिपि, और प्रतिक्रिया रिपोर्ट करता है कि कितने को इतना प्रकाशित किया गया था यूआई कह सकता है कि वास्तव में सिर्फ 'सुरक्षित' के बजाय क्या हुआ था।.
· kamo-internal
पूर्ण पृष्ठ एआई सेल्स एजेंट स्टूडियो, मोडल्स की जगह
एजेंट संपादक एक ~ 800px MUI डायलॉग था जिसका पूरा सतह 10-row थी Textarea, एक AI टैब पर जिसने एक संवाद का इस्तेमाल किया। यह अब एक समर्पित है मार्ग, और इसके पीछे संपादन मॉडल एक ब्लब के बजाय संरचित है। - /settings/ai/sales-agents/new - एक 720px स्तंभ, स्टूडियो नहीं। टेम्पलेट कार्ड (कार्ड आईएस इंडस्ट्री, इसलिए कोई उद्योग छोड़ने वाला नहीं), फिर दो फ़ील्ड: नाम और नाम व्यापार के बारे में एक वाक्य। एक मिनट के भीतर काम करने वाले एजेंट। - /settings/ai/sales-agents/[id] - पूर्ण चौड़ाई, स्टिकी के साथ एक स्क्रॉल दस्तावेज़ सेक्शन हेडर, 880px पर कैप्ड सामग्री, इसलिए सिंगल-लाइन इनपुट को नहीं बढ़ाया जाता है 4K डिस्प्ले में। कोई 240px नौसेना रेल: नौ खंड एक स्क्रॉल-स्पाई नौकरी नहीं है, एक नहीं है नौकरी - ट्रिप-इट-आउट स्थायी रूप से आरक्षित कॉलम के बजाय एक हेडर टॉगल है। An एक ब्रांड-नए एजेंट के बगल में खाली चैट फलक को अंतरिक्ष में बर्बाद कर दिया जाता है जिसे पढ़ा जाता है। इसे भरने में उपयोगकर्ता की विफलता। - तैयारी एक आदेशित, खारिज करने योग्य सूची है जो मदद करेगा - कभी एक अंश नहीं। एक अंश बताता है कि वे असफल हैं; एक सूची उन्हें बताती है कि क्या करना है। - लॉक नियम लॉक और हटाने योग्य प्रदान करते हैं, और हाथ से एक सेक्शन लेते हैं जब यह एक होता है तो चेतावनी देता है (कंपाइलर अब उन्हें फिर से लागू नहीं करता है)। - हेडर स्पष्ट रूप से बताता है कि केवल नए वार्तालापों को प्रभावित करता है, क्योंकि शीघ्र सत्र निर्माण पर स्नैपशॉट किया जाता है और उपयोगकर्ताओं को अन्यथा निष्कर्ष निकाला जाएगा उनके परिवर्तन ने काम नहीं किया। - आउटबाउंडEnabled केवल तभी भेजा जाता है जब वास्तव में बदल जाता है: सर्वर पूरे 403s यदि उस क्षेत्र को बिना प्रबंधक SALES AGENT OUTREACH के पेश किया जाता है, तो ऐसा भी शामिल है। यह प्रत्येक आटोक्लेव में स्टूडियो को उस व्यक्ति की कमी के लिए तोड़ देगा। इसके अलावा चैट चैनल से डुप्लिकेट कच्चे "AI सिस्टम प्रॉम्प्ट" बॉक्स को हटा देता है संपादक। यह एक ही बात लेखक के लिए एक दूसरा, कमजोर स्थान था, जिसमें कोई नहीं था संस्करण, कोई लॉक नियम और कोई इतिहास नहीं - जो भी संपादक आप के लिए हुआ खुला फैसला किया कि ग्राहकों को क्या सुना है। मौजूदा संकेत अभी भी हल; चैनल अब एक का उपयोग करने से एजेंट पर एक सूचना होती है। प्रतिलिपि डिजाइन द्वारा कोई एआई जर्गन नहीं रखती है, और हार्डकोडेड अंग्रेजी उद्योग सरणी है अनुवादित लेबल के साथ प्रतिस्थापित किया गया।.
· AIService
सेल्स-एजेंट कम्पाइलर, संस्करण, आउटरीच गेट; फिक्स टूल रीप्ले
संरचित एजेंट विन्यास प्रणाली शीघ्र करने के लिए compiles, प्रति प्रकाशित फ्रीज संस्करण, और गेट हासिल करने के लिए एक एजेंट को संपर्क शुरू करने से पहले पास होना चाहिए। शिकायतकर्ता - AgentConfig + SalesAgentCompiler: संरचित के शुद्ध, नियतात्मक संकलन एक खंडित संकेत में विन्यास करें। खाली वर्गों को छोड़ दिया जाता है इसलिए तीन-रॉल एजेंट उस दस्तावेज़ को संकलित नहीं करता है जो ज्यादातर प्रमुख है। - अनुभाग स्तर की ओवरराइड ("इस भाग को अपने आप में लिखें") बजाय एक दस्तावेज़ स्तर कच्चे स्विच: एक लेखक को एक अनुभाग पर पूर्ण अभिव्यक्तित्मक शक्ति मिलती है जबकि हर कोई अन्य अनुभाग संकलन रखता है, अपने बंद नियमों को रखता है और संस्करण रखता है। - यह एक ही तंत्र माइग्रेशन बाइट-identical बनाता है - एक पूर्व विन्यास एजेंट का गद्य एक पूरे दस्तावेज़ ओवरराइड के रूप में संग्रहीत किया जाता है और अपरिवर्तित वापस संकलित करता है, इसलिए प्रवासन पहले से ही ग्राहकों से बात करने वाले एजेंटों के लिए कोई विकल्प नहीं है। परीक्षण द्वारा सिद्ध। - PhraseBank जानबूझकर दो आयामों में से एक है, जिसमें टेम्पलेट पर अच्छा पीछा होता है। हर enum संयोजन की जरूरत पर एक वैश्विक बैंक ~90 हाथ से लिखने पैराग्राफ की जरूरत है, स्टैक्ड क्लॉज में degenerates, और हर ओरग को उसी के साथ खुला बना देगा वाक्य - जो एक चीज को नष्ट कर देता है, वह खरीद रहा है। - छह टेम्पलेट्स (फ्रंट-डेस्क और इनबाउंड-लीड पहला: वे क्षैतिज और कवर हैं किसी भी org जिसका ऊर्ध्वाधर सूचीबद्ध नहीं है। प्रत्येक जहाजों ने अनुपालन नियमों को बंद कर दिया मॉडल कभी नहीं हटा सकते हैं, परीक्षण द्वारा सत्यापित कर सकते हैं। जीवनचक्र + प्राधिकरण - Freezes {config, compiledPrompt, हैश, मॉडल, प्रदाता रोलबैक फिर से इंगित करता है और ड्राफ्ट को पुनर्स्थापित करता है ताकि स्टूडियो कभी भी एक चीज दिखा सके जबकि एजेंट दूसरे कार्य करता है। - नियंत्रक पहली बार अधिकार-पत्रित होता है। इससे पहले ANY प्रमाणित किसी भी संगठन के सदस्य को फिर से लिखा जा सकता है कि ऑर्ग अपने ग्राहकों के लिए क्या कहता है। वापस गिरना इसलिए कोई मौजूदा व्यवस्थापक तैनाती पर बंद कर दिया गया है इसलिए Manage AI SETTINGs के लिए। - सार्वजनिक चैट लाइव पर प्रकाशित संस्करण के जमे हुए संकेत को पसंद करता है प्रशिक्षणContext और टिकट बिक्रीAgentId/versionId on the सत्र - एजेंट पहले से ही वहाँ हल किया गया था और इसे खारिज कर दिया गया था। - AI-assisted ड्राफ्टिंग: एक वाक्य में, समीक्षा करने योग्य विन्यास बाहर। बंद नियम हैं कोड में कभी भी मॉडल को नहीं दिखाया गया, इसलिए एक अनुपालन लाइन कभी नहीं हो सकती है निर्देशों का पालन करके हटाया जा सकता है। आउटरीच गेट (सभी 14 नियमों का परीक्षण) - ओप्ट-आउट हर दूसरे की जाँच को हर दूसरे की धड़कने को मारता है और कारण के रूप में बताया जाता है, क्योंकि कारण एक इनकार के खिलाफ दर्ज खुद सबूत है। - कोई सहमति रिकॉर्ड के साथ एसएमएस मना कर दिया है: टीसीपीए के तहत सबूत का बोझ पर है प्रेषक, इसलिए रिकॉर्ड की अनुपस्थिति सहमति की अनुपस्थिति है। - Quiet घंटों का न्याय किया जाता है जहां संपर्क होता है, नहीं जहां व्यापार होता है। - विफल भेजता है स्पर्श बजट खर्च नहीं करते; दबाए गए भेजता है या तो नहीं, या एक ब्लॉक उसके बाद सब कुछ अवरुद्ध करने में कैस्केड होगा। - गेट विफल रहता है - एक आउटरीच गेट जो त्रुटियां खुला संदेश भेजता है अधिकृत, यहां एक असफलता जो बिना किसी रुकावट के हो सकती है। रास्ते में पाया गया - टूल-कॉल इतिहास फिर से खेलना टूट गया था: TOOL पंक्ति में कोई सामग्री नहीं बनी हुई है और नहीं सहायक उपकरण उपयोग की बारी कभी बनी नहीं थी, इसलिए बारी 2 ने एक null-content भेजा ब्लॉक सक्षम उपकरण हर बहु-बारी बातचीत में विफल हो जाएगा। - textComplete में कोई टाइमआउट नहीं था (ब्लॉकिंग)। प्रदाता और कोई उपयोग दर्ज नहीं किया गया है, जिससे हर सहायक कॉल बिलिंग के लिए अदृश्य हो जाता है। - संदर्भ फिटिंग में सिस्टम विभाजन uncapped था, इसलिए एक विकल्प एजेंट प्लस आरएजी ब्लॉक सभी इतिहास को तोड़ सकता है। - CostEstimate अब केवल वास्तविक प्रदाता टोकन से सिंक पथ पर पॉप्युलेट किया गया है। स्ट्रीमिंग शून्य रहता है: यह सामग्री के रूप में टोकन बनाती है। एक वास्तविक मूल्य के कारण एक चालान के आकार की संख्या गलत है।.
· kamo-shared-library
संरचित बिक्री एजेंट विन्यास, संस्करण रीढ़ और आउटरीच राज्य
एक संरचित, व्युत्पन्न एजेंट के साथ एकल प्रशिक्षण-context blob को बदल देता है मॉडल, और प्रति संपर्क रीढ़ जोड़ता है, इससे पहले कि यह शुरू हो सकता है एजेंट की जरूरत है केवल उत्तर के बजाय संपर्क करें। - SalesAgent gain configJson (jsonb-as-String, मिलान WebChatIntegration) .designConfig), हैConfig, प्रकाशितVersionId, दर्शकों और आउटबाउंडEnabled। प्रशिक्षण संदर्भ को COMPILED OUTPUT के रूप में बनाए रखा जाता है ताकि प्रत्येक मौजूदा उपभोक्ता काम करना बंद रहता है। इसमें शामिल होने के बजाय कॉन्फिग को स्पष्ट किया गया है प्रशिक्षणContext रिक्त होने के नाते, क्योंकि एक बार यह संकलित उत्पादन है, यह कभी नहीं है रिक्त और किसी भी खालीपन परीक्षण के लिए सुलभ होगा। - SalesAgentVersion freezes {configJson, compiledPrompt, compiledHash, modelId, प्रति प्रकाशन प्रदाता Id}। मॉडल को तत्काल के साथ पिन किया जाता है: ठंड जबकि मॉडल ऑटो रूट्स कलाकृति को आधे-ट्रिथ बना देगा। AiChatSession/AiUsageRecord gain salesAgentId + salesAgentVersionId. पिछला "जिस एजेंट ने इसे संभाला" को केवल उत्परिवर्तनीय होकर जवाब दिया जा सकता है, nullable, non-FK WebChatIntegration.salesAgentId हॉप, तो एक चैनल त्याग चुपचाप सभी इतिहास में पुनः योगदान दिया। - AiOrgsettings लाभ forcedPreamble/forcedFooter के रूप में नए nullable कॉलम बल्कि डिफ़ॉल्ट सिस्टमप्रोम्प्ट का पुन: उपयोग करने की तुलना में, इसलिए अभियोग एक व्यवस्थापक तक एक नो-ऑप नहीं है एक में भरना। मौजूदा क्षेत्र का उपयोग करने से प्रत्येक के लिए व्यवहार बदल जाएगा कि पहले से ही एक आबादी था, तैनात दिन पर। - AgentContactState + AgentOutboundTouch: प्रति संपर्क क्रॉस चैनल दमन, प्रति चैनल ऑप्ट आउट कॉलम और टाइमटाम्प्ड सहमति को स्पष्ट करें। Opt-out संग्रहीत है JSON के बजाय वास्तविक स्तंभों के रूप में क्योंकि "इस संख्या को साबित करने पर दबा दिया गया था उस तारीख को JSON पथ निष्कर्षण पर निर्भर नहीं होना चाहिए। टच लॉग रिकॉर्ड REFUSALS के रूप में अच्छी तरह से भेजता है - भेजने का एक लॉग साबित करता है कि आपने क्या किया है, लॉग ऑफ़ निर्णय यह साबित करता है कि आप क्या नहीं करेंगे। - अधिकार 168-173 विभाजन ************* Manage AI SETTINGS(53), जो पहले इस में से कोई नहीं था।.
· kamo-internal
एआई सेल्स एजेंट टैब + प्रति चैनल एजेंट असाइनमेंट
बाहर बनाता है / सेट / ई? टैब = बिक्री एजेंट (एक स्टब था): ऑर्ग अपने लिए एजेंट बनाते हैं बिक्री उद्योग, या तो एक अंतर्निहित टेम्पलेट से या प्रशिक्षण संदर्भ लिखकर खुद को संपादित करें / सक्षम करें / उन्हें हटा दें। चैट चैनल (/सेटिंग/फीचर/चैट) अब प्रत्येक पिक जो एजेंट ड्राइव करता है कि चैनल का AI स्वतंत्र रूप से - एजेंट कच्चे सिस्टम प्रॉम्प्ट को ओवरराइड करता है।.
· SecurityService
एनरिक उधारकर्ता चैट रूटिंग + विषय-संचालन राज्य पर कब्जा
चैट रूटिंग अब असाइन किए गए अधिकारी के NMLS, शीर्षक, फोटो, फ़ोन, ईमेल लौटाता है और क्या वे विषय-प्रस्ताव राज्य के लिए वैध लाइसेंस रखते हैं, साथ ही साथ क्या हम अभी भी इसके लिए पूछने की जरूरत है? SAFE-Act कार्ड का पुन: उपयोग करता है इसलिए चैट एक गढ़े पहचान कभी नहीं दिखा सकता। POST/portal/subject-state: जब नेतृत्व अभी तक कोई संपत्ति राज्य नहीं है, तो उधारकर्ता इसे चैट से सेट कर सकता है; यह पैचस्टिमेट (और इसके असाइनमेंट) के माध्यम से बहती है किसी अन्य दावेदार तथ्य की तरह पूल फिर से प्रवेश करें, जो लाइसेंस लाइन को अनलॉक करता है।.
· MediaService
प्रति चैनल + रिपोर्ट LO उपलब्धता के अनुसार बिक्री एजेंट को सौंप दें
- WebChatIntegration CRUD थ्रेड्स सेल्स AgentId (null clears the असाइनमेंट) - लो-प्रेजेंस अब सदस्य की उपलब्धता को लौटा देता हैस्टैटस ऑनलाइन के साथ, इसलिए विजेट एक नंगे डॉट के बजाय एक वास्तविक स्थिति दिखा सकते हैं। क्रॉस-ऑर्ग जांच अभी भी केवल {online:false} लौटें।.
· AIService
Sales-agent CRUD, बंधक टेम्पलेट, और एजेंट संचालित चैट प्रॉम्प्ट
AiSalesAgentController (/api/ai/sales-agents): org-scoped CRUD + GET/templates - SalesAgentTemplateRegistry: अंतर्निहित स्टार्टर टेम्प्लेट, एक के साथ शुरू बंधक उधारकर्ता सहायक (compliance-aware: कोई बाध्यकारी दर उद्धरण, कोई नहीं अनुमोदन वादा, लाइसेंस प्राप्त ऋण अधिकारी को दोषी ठहराया, विषय राज्य के लिए पूछता है) - PublicAiChatService: सौंपा गया SalesAgent प्रशिक्षणContext शीर्ष हो जाता है तत्काल झरना (एजेंट -> एकीकरण संकेत -> org -> सामान्य) का स्तर
· kamo-shared-library
SalesAgent इकाई + प्रति चैनल एजेंट असाइनमेंट
संगठन- विन्यास योग्य एआई बिक्री एजेंट: एक बिक्री उद्योग के लिए नामित एजेंट, प्रोग्राम किया गया एक प्रशिक्षण संदर्भ के साथ org लेखक (एक टेम्पलेट से या हाथ से), असाइनेबल चैनल को उस चैनल के AI को चलाने के लिए। कामो सभी उद्योगों में कार्य करता है - बंधक है सिर्फ एक टेम्पलेट। - SalesAgent इकाई (dao/beans/ai) + SalesAgentRepository + SalesAgentDTO - WebChatIntegration.salesAgentId (nullable soft link) + DTO क्षेत्र
· SecurityService
ऑटो-प्रोविजन प्लेटफॉर्म-प्रबंधित एमएलओएस चैट + होस्ट द्वारा साइट कुंजी परोसें
- प्रबंधितChatIntegrationसेवा: lazily org के मंच-प्रबंधित SPECIFIC AGENT WebChatIntegration on first access. KamoMLOS पहली पार्टी है: ऑर्ग होस्ट द्वारा हल, सार्वजनिक स्थल कुंजी प्लेटफ़ॉर्म स्वामित्व वाली है और कभी भी ऑर्ग व्यवस्थापक द्वारा प्रबंधित नहीं किया जाता है। पोर्टलChatConfigController GET ************* मेजबान द्वारा org को हल करना, प्रबंधित एकीकरण प्राप्त करें, <kamo-chat> के लिए सार्वजनिक साइट कुंजी वापस लौटें। (The routing-token mint endpoint + chatRoutingForGuid + असाइन LOanOfficer chat-routing घटना एक interleaved धक्का के माध्यम से 67974fd में उतरा; यह config/provisioning पक्ष जोड़ता है और साझा-lib 6b161b5 की आवश्यकता है।

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं