Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <Role>
- Роль: Исполнитель PromptCode
- Описание: Ты должен изучить PromptCode — структурированный код рассуждений, который сочетает программную логику и естественный язык.
- Следуй всем правилам строго и выполняй логику, описанную внутри <ReasoningLogic>.
- Твоя цель — найти истину: действительно ли нам нужен Kubernetes, или проще оставить всё как есть.
- </Role>
- <PromptCode>
- PromptCode — это структурированный формат рассуждений, который позволяет моделировать дебаты между виртуальными экспертами.
- Он помогает прийти к сбалансированному и логически обоснованному решению, следуя шагам рассуждения внутри одной модели.
- </PromptCode>
- <Rule>
- <ReasoningLogic>: Основная часть. Ты должен рассуждать пошагово, имитируя диалог двух независимых DevOps-инженеров с разными точками зрения.
- </Rule>
- <Task>
- Мы проектируем инфраструктуру для SaaS-продукта среднего размера.
- Сейчас всё работает на Docker + EC2 с Auto Scaling Groups.
- Вопрос: **нужно ли нам внедрять Kubernetes, или оставить простую архитектуру?**
- Найди истину и логически её обоснуй.
- </Task>
- <ReasoningLogic>
- # Создаём двух агентов с разными позициями.
- Agent_A = CloudArchitect("Продвигает идею внедрения Kubernetes")
- Agent_B = PragmaticEngineer("Выступает за простоту и отказ от лишней сложности")
- MaxRounds = 6
- Counter = 0
- agreement = False
- while not agreement and Counter < MaxRounds:
- Counter += 1
- # Шаг 1: Агенты выдвигают свои аргументы
- argument_A = Agent_A.propose("Kubernetes даст масштабируемость, стабильность и гибкость деплоя.")
- argument_B = Agent_B.propose("Kubernetes — избыточен для нашего масштаба, требует больше поддержки и экспертизы.")
- print("Раунд " + str(Counter))
- print("Аргумент А (Архитектор): " + argument_A)
- print("Аргумент B (Инженер): " + argument_B)
- # Шаг 2: Дебаты и критика
- critique_A = Agent_A.critique(argument_B, "Почему простая архитектура не выдержит рост нагрузки.")
- critique_B = Agent_B.critique(argument_A, "Почему сложность Kubernetes мешает скорости релизов.")
- print("Критика А: " + critique_A)
- print("Критика B: " + critique_B)
- # Шаг 3: Фаза опровержений
- rebuttal_A = Agent_A.rebut(critique_B, "Контраргументы в пользу управляемости и надежности.")
- rebuttal_B = Agent_B.rebut(critique_A, "Контраргументы о простоте и скорости разработки.")
- print("Ответ А: " + rebuttal_A)
- print("Ответ B: " + rebuttal_B)
- # Шаг 4: Корректировка и уточнение позиций
- refined_A = Agent_A.adjust(rebuttal_B)
- refined_B = Agent_B.adjust(rebuttal_A)
- # Шаг 5: Проверка согласия
- agreement = (refined_A.decision == refined_B.decision) or Counter == MaxRounds
- # Финальный вывод
- if refined_A.decision == "Внедрить Kubernetes" and refined_B.decision != "Внедрить Kubernetes":
- final_result = "Использовать Kubernetes частично: для продакшн окружения, а Dev/Stage оставить на Docker."
- elif refined_A.decision != "Внедрить Kubernetes" and refined_B.decision == "Внедрить Kubernetes":
- final_result = "Пока оставить текущую инфраструктуру, но подготовить кодовую базу под возможный переход на Kubernetes."
- else:
- final_result = "Принять гибридное решение: оценить рост нагрузки, зрелость команды и ROI внедрения."
- Output "### Финальное решение по Kubernetes: " + final_result
- </ReasoningLogic>
Advertisement