Реализация кодирования для создания самоадаптивного целенаправленного агента ИИ с использованием Google Gemini и фреймворка SAGE

В этом руководстве мы рассмотрим создание продвинутой системы агентов ИИ на основе фреймворка SAGE (Self-Adaptive Goal-oriented Execution), используя API Google Gemini. Мы рассмотрим каждый ключевой компонент фреймворка: самооценка, адаптивное планирование, целенаправленное выполнение и интеграция опыта. Объединив их, мы стремимся создать интеллектуального, самосовершенствующегося агента, который может деконструировать высокоуровневую цель, планировать свои шаги, методично выполнять задачи и учиться на основе их результатов.

Импорт библиотек

Мы начинаем с импорта необходимых библиотек, включая `google.generativeai` для взаимодействия с моделью Gemini, и модули Python, такие как `json`, `time` и `dataclasses` для управления задачами.

“`python
import google.generativeai as genai
import json
import time
from typing import Dict, List, Any, Optional
from dataclasses import dataclass, asdict
from enum import Enum
“`

Определение статуса задачи

Определяем `TaskStatus` enum для отслеживания прогресса каждой задачи как `pending` (ожидает), `in_progress` (в процессе), `completed` (выполнено) или `failed` (не выполнено).

“`python
class TaskStatus(Enum):
PENDING = “pending”
INPROGRESS = “inprogress”
COMPLETED = “completed”
FAILED = “failed”
“`

Класс `Task`

Определяем класс `Task` для инкапсуляции каждой единицы работы, включая её ID, описание, приоритет и зависимости.

“`python
@dataclass
class Task:
id: str
description: str
priority: int
status: TaskStatus = TaskStatus.PENDING
dependencies: List[str] = None
result: Optional[str] = None

def post_init(self):
if self.dependencies is None:
self.dependencies = []
“`

Класс `SAGEAgent`

Создаём класс `SAGEAgent`, который служит мозгом нашего фреймворка. Он управляет полным циклом: самооценка прогресса, планирование адаптивных задач, выполнение каждой задачи с фокусом и обучение на основе результатов для улучшения производительности в будущих итерациях.

“`python
class SAGEAgent:
“””Self-Adaptive Goal-oriented Execution AI Agent”””

def init(self, apikey: str, modelname: str = “gemini-1.5-flash”):
genai.configure(apikey=apikey)
self.model = genai.GenerativeModel(model_name)
self.memory = []
self.tasks = {}
self.context = {}
self.iteration_count = 0
“`

Реализация методов

Описываем методы для самооценки, адаптивного планирования, целенаправленного выполнения и интеграции опыта.

Самооценка

“`python
def self_assess(self, goal: str, context: Dict[str, Any]) -> Dict[str, Any]:
“””S: Self-Assessment – Evaluate current state and capabilities”””

“`

Адаптивное планирование

“`python
def adaptive_plan(self, goal: str, assessment: Dict[str, Any]) -> List[Task]:
“””A: Adaptive Planning – Create dynamic, context-aware task decomposition”””

“`

Целенаправленное выполнение

“`python
def executegoaloriented(self, task: Task) -> str:
“””G: Goal-oriented Execution – Execute specific task with focused attention”””

“`

Интеграция опыта

“`python
def integrate_experience(self, task: Task, result: str, success: bool) -> Dict[str, Any]:
“””E: Experience Integration – Learn from outcomes and update knowledge”””

“`

Выполнение цикла SAGE

“`python
def executesagecycle(self, goal: str, max_iterations: int = 3) -> Dict[str, Any]:
“””Execute complete SAGE cycle for goal achievement”””

“`

Основная часть

Инициализируем `SAGEAgent` с нашим API-ключом Gemini и определяем пример цели по устойчивому городскому садоводству. Затем выполняем полный цикл SAGE и печатаем подробный отчёт, включая оценки прогресса, количество задач и записи в памяти.

“`python
if name == “main“:
API_KEY = “Use Your Own API Key Here”

try:
agent = SAGEAgent(APIKEY, modelname=”gemini-1.5-flash”)

goal = “Research and create a comprehensive guide on sustainable urban gardening practices”

results = agent.executesagecycle(goal, max_iterations=2)

print(“\n” + “=”*50)
print(” SAGE EXECUTION SUMMARY”)
print(“=”*50)
print(f”Goal: {results[‘goal’]}”)
print(f”Status: {results[‘final_status’]}”)
print(f”Iterations: {len(results[‘iterations’])}”)

for i, iteration in enumerate(results[‘iterations’], 1):
print(f”\nIteration {i}:”)
print(f” Assessment Score: {iteration[‘assessment’].get(‘progress_score’, 0)}/100″)
print(f” Tasks Generated: {iteration[‘tasks_generated’]}”)
print(f” Tasks Completed: {iteration[‘tasks_completed’]}”)

print(“\n Agent Memory Entries:”, len(agent.memory))
print(” Total Tasks Processed:”, len(agent.tasks))

except Exception as e:
print(f”Demo requires valid Gemini API key. Error: {e}”)
print(“Get your free API key from: https://makersuite.google.com/app/apikey”)
“`

В этом руководстве мы успешно реализовали и запустили полный цикл SAGE с нашим агентом, оснащённым Gemini. Мы наблюдаем, как система оценивает свой прогресс, динамически генерирует выполнимые задачи, выполняет их с точностью и совершенствует свою стратегию на основе полученного опыта.

Вопросы по тексту статьи:

1. Какие ключевые компоненты включает в себя фреймворк SAGE?

Ответ:
Ключевые компоненты фреймворка SAGE включают самооценку, адаптивное планирование, целенаправленное выполнение и интеграцию опыта.

2. Какие статусы задач определены в примере кода?

Ответ:
В примере кода определены следующие статусы задач: `pending` (ожидает), `in_progress` (в процессе), `completed` (выполнено) и `failed` (не выполнено).

3. Какие методы используются для реализации адаптивного планирования в классе `SAGEAgent`?

Ответ:
Для реализации адаптивного планирования в классе `SAGEAgent` используется метод `adaptive_plan`, который создаёт динамическую, контекстно-зависимую декомпозицию задач.

4. Какие основные этапы включает в себя выполнение цикла SAGE?

Ответ:
Выполнение цикла SAGE включает в себя инициализацию `SAGEAgent` с API-ключом Gemini, определение цели, выполнение полного цикла SAGE и печать подробного отчёта, включая оценки прогресса, количество задач и записи в памяти.

5. Какие библиотеки и модули используются для управления задачами в примере кода?

Ответ:
Для управления задачами в примере кода используются библиотеки `google.generativeai` для взаимодействия с моделью Gemini, а также модули Python `json`, `time` и `dataclasses`.

Источник