Сценарий:
Я создаю агент, который принимает запрос на естественном языке (например, «Показать Net APE по продукту») и генерирует соответствующий актив.
Проблема:
Я заметил огромное несоответствие в Производительность LLM зависит от целевого языка:
- Python: Когда я прошу LLM сгенерировать код Python (например, для обработки данных или Streamlit), код почти всегда синтаксически правильный и надежный.
- JSON панели мониторинга CRMA: Когда я прошу LLM сгенерировать JSON для виджета информационной панели (в частности, шагиагрегата), выходные данные являются действительным JSON с точки зрения синтаксиса. Однако его импорт в Salesforce приводит к "Белому экрану смерти" с ошибкой: Невозможно прочитать свойства неопределенного значения (чтение "длины").
После нескольких часов отладки я обнаружил, что механизм выполнения CRMA крайне неумолим в отношении неявных зависимостей, которые не являются строго частью стандарт JSON, но требуется механизмом рендеринга.
LLM постоянно «галлюцинирует» чистую структуру JSON, но пропускает скрытые пустые параметры.
- Пример 1: Если в объекте запроса отсутствуют пустые массивы, такие как «filters»: [] или «joins»: [], виджет аварийно завершает работу.
- Пример 2: Если параметры виджета не содержат "evenRowColor": null, средство рендеринга завершается с ошибкой.
Чтобы решить эту проблему для своей диссертации, я отошел от вероятностной генерации структуры JSON. Теперь я использую детерминированный шаблон Python (содержащий «золотую запись» рабочего JSON) и позволяю LLM сопоставлять только семантические значения (имена API). Это работает в 100% случаев.
Мои вопросы к экспертам:
- Жесткость схемы: Существует ли общедоступная строгая схема (XSD/JSON Schema) для шаговагрегата, которая определяет эти «скрытые» обязательные поля? В стандартной документации, похоже, не подчеркивается, что пустые массивы обязательны для стабильности.
- Толерантность к анализатору: Почему анализатор Salesforce JSON настолько более хрупкий по сравнению с интерпретатором Python? Известно ли это ограничение устаревшего формата XMD?
- Agentforce / Copilot: Есть ли у кого-нибудь опыт использования встроенного Agentforce Salesforce в этом контексте? Использует ли он под капотом аналогичный «шаблоновый» подход, чтобы избежать этих синтаксических сбоев?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-broken-d
Мобильная версия