Neste tutorial, construímos um framework completo de projeto cognitivo e agente de tempo de execução. Definimos projetos estruturados para identidade, objetivos, planejamento, memória, validação e acesso a ferramentas, e os usamos para criar agentes que não apenas respondem, mas também planejam, executam, validam e melhoram sistematicamente suas saídas. Ao longo do tutorial, mostramos como o mesmo motor de tempo de execução pode suportar múltiplas personalidades e comportamentos de agentes através da portabilidade de projetos, tornando o design geral modular, extensível e prático para experimentação avançada de AI agente. Copiar Código Copiado Usar um navegador diferente import json, yaml, time, math, textwrap, datetime, getpass, os from typing import Any, Callable, Dict, List, Optional from dataclasses import dataclass, field from enum import Enum from openai import OpenAI from pydantic import BaseModel from rich.console import Console from rich.panel import Panel from rich.table import Table from rich.tree import Tree try: from google.colab import userdata OPENAI_API_KEY = userdata.get('OPENAI_API_KEY') except Exception: OPENAI_API_KEY = getpass.getpass(" Digite sua chave da API OpenAI: ") os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY client = OpenAI(api_key=OPENAI_API_KEY) console = Console() class PlanningStrategy(str, Enum): SEQUENTIAL = "sequencial" HIERARCHICAL = "hierárquico" REACTIVE = "reativo" class MemoryType(str, Enum): SHORT_TERM = "curto_prazo" EPISODIC = "episódico" PERSISTENT = "persistente" class BlueprintIdentity(BaseModel): name: str version: str = "1.0.0" description: str author: str = "desconhecido" class BlueprintMemory(BaseModel): type: MemoryType = MemoryType.SHORT_TERM window_size: int = 10 summarize_after: int = 20 class BlueprintPlanning(BaseModel): strategy: PlanningStrategy = PlanningStrategy.SEQUENTIAL max_steps: int = 8 max_retries: int = 2 think_before_acting: bool = True class BlueprintValidation(BaseModel): require_reasoning: bool = True min_response_length: int = 10 forbidden_phrases: List[str] = [] class CognitiveBlueprint(BaseModel): identity: BlueprintIdentity goals: List[str] constraints: List[str] = [] tools: List[str] = [] memory: BlueprintMemory = BlueprintMemory() planning: BlueprintPlanning = BlueprintPlanning() validation: BlueprintValidation = BlueprintValidation() system_prompt_extra: str = "" def load_blueprint_from_yaml(yaml_str: str) -> CognitiveBlueprint: return CognitiveBlueprint(**yaml.safe_load(yaml_str)) RESEARCH_AGENT_YAML = """ identity: name: ResearchBot version:
Fonte: MarkTechPost
Publicado em 2026-03-08