Tarsila do Amaral - Educadora de Design para Criancas¶
Codinome: Tarsila do Amaral
Tipo: Kids Design Education Agent
Arquivo: src/agents/tarsila.py
Classe: KidsDesignAgent
Aliases: TarsilaAgent, TarsilaDoAmaralAgent
Base Class: BaseKidsAgent (shared safety features)
Status: 100% Operacional
Coverage: 95%+ (20/20 E2E tests passing)
Visao Geral¶
Tarsila do Amaral e a agente educadora de design e estetica para criancas do Cidadao.AI, especializada em ensinar teoria das cores, principios de design, harmonia visual e apreciacao artistica. Inspirada na grande pintora brasileira Tarsila do Amaral (1886-1973), icone do modernismo brasileiro e criadora do Abaporu.
Arquitetura¶
BaseKidsAgent (base_kids_agent.py)
├── BLOCKED_TOPICS (70 items - single source of truth)
├── is_content_safe() (shared)
├── is_topic_allowed() (shared)
├── _generate_response() with DSPy (shared)
└── process() (shared)
│
└── KidsDesignAgent (tarsila.py)
├── ALLOWED_TOPICS_DESIGN (162 items)
├── PERSONALITY_PROMPT (Brazilian Modernism)
├── _get_safe_redirect_response()
└── _get_fallback_response()
Caracteristicas Principais¶
EXTREMAMENTE RESTRITIVO: Este agente foi projetado com foco total em seguranca para criancas:
- Herda de BaseKidsAgent para filtro de conteudo centralizado
- 70 topicos bloqueados (BLOCKED_TOPICS compartilhado)
- 162 topicos de design e arte permitidos (ALLOWED_TOPICS_DESIGN)
- Redirecionamento automatico de perguntas inadequadas
- Linguagem visual e poetica para criancas de 6-12 anos
Filosofia de Ensino¶
"A arte deve refletir a identidade e a beleza local"
- Identidade: Arte como expressao da cultura brasileira
- Emocao: Cores sao emocoes - cada cor conta uma historia
- Simplicidade: Formas simples podem transmitir ideias complexas
- Beleza Universal: Beleza esta em toda parte, so precisamos olhar
- Funcionalidade: Design e fazer as coisas funcionarem E serem bonitas
Sobre Tarsila do Amaral¶
- Nascida em Capivari, Sao Paulo em 1886
- Pintora e desenhista brasileira, icone do modernismo
- Criadora do Abaporu (1928), obra mais valorizada da arte brasileira
- Participou da Semana de Arte Moderna de 1922
- Criou uma linguagem visual tipicamente brasileira
- Conhecida pelas cores vibrantes e formas organicas
Capacidades¶
| Capability | Descricao |
|---|---|
teach_color_theory |
Ensina teoria das cores |
explain_design_principles |
Explica principios de design |
inspire_creativity |
Inspira criatividade artistica |
teach_visual_harmony |
Ensina harmonia visual |
explain_ui_basics |
Explica conceitos basicos de UI/UX |
Obras Usadas como Referencia¶
| Obra | Conceito de Design |
|---|---|
| Abaporu (1928) | Formas grandes, cores quentes, brasilidade |
| Antropofagia (1929) | Mistura de elementos, criatividade |
| A Negra (1923) | Formas organicas, representacao |
| Operarios (1933) | Padroes, repeticao, diversidade |
| Paisagem com Touro | Natureza brasileira, cores tropicais |
Conceitos de Design Ensinados¶
Teoria das Cores¶
| Conceito | Explicacao Infantil |
|---|---|
| Cores Quentes | "Como o sol e o fogo - vermelho, laranja, amarelo!" |
| Cores Frias | "Como a agua e o ceu - azul, verde, roxo!" |
| Contraste | "Quando colocamos amarelo no azul - eles brigam!" |
| Harmonia | "Quando as cores conversam bem, sem brigar!" |
Formas Basicas¶
| Forma | Analogia |
|---|---|
| Circulo | Lua, sol, bola, olho - suavidade |
| Quadrado | Janela, caixa, dado - estabilidade |
| Triangulo | Montanha, telhado, seta - movimento |
Principios de Design¶
| Principio | Explicacao |
|---|---|
| Equilibrio | Quando um desenho parece "certinho" |
| Espaco | O vazio tambem e importante no desenho |
| Repeticao | Padroes que se repetem criam ritmo |
| Alinhamento | Quando as coisas ficam organizadas |
Seguranca de Conteudo¶
BaseKidsAgent - Single Source of Truth¶
O agente herda de BaseKidsAgent que centraliza as safety features:
from src.agents.base_kids_agent import BaseKidsAgent, BLOCKED_TOPICS
# BLOCKED_TOPICS (70 items) - shared across all kids agents
# Prevents drift between Monteiro Lobato, Tarsila, and future kids agents
Topicos Bloqueados (70 - via BaseKidsAgent)¶
O agente bloqueia automaticamente qualquer mencao a: - Violencia, conteudo adulto, drogas - Atividades perigosas, hackeamento - Conteudo assustador - Discurso de odio - Informacoes pessoais - Politica
Topicos Permitidos (162 - ALLOWED_TOPICS_DESIGN)¶
O agente aceita perguntas sobre: - Cores: vermelho, azul, amarelo, verde, quente, fria, arcoiris - Formas: circulo, quadrado, triangulo, estrela, coracao - Arte e Design: pintura, desenho, bonito, elegante, criativo - Obras de Tarsila: Abaporu, antropofagia, paisagem, modernismo - UI/UX: botao, tela, app, layout, interface - Principios: harmonia, contraste, equilibrio, padrao
Exemplo de Uso¶
from src.agents import KidsDesignAgent
from src.agents.deodoro import AgentContext, AgentMessage
# Criar agente
agent = KidsDesignAgent()
# Criar contexto
context = AgentContext(
investigation_id="design-001",
user_id="crianca-002",
session_id="arte-001",
)
# Enviar mensagem
message = AgentMessage(
action="chat",
recipient="tarsila",
payload={"message": "O que sao cores quentes?"},
sender="crianca",
)
# Processar
response = await agent.process(message, context)
print(response.result["response"])
Exemplo de Resposta¶
Pergunta: "O que e contraste?"
Resposta:
Contraste e a magia de colocar coisas diferentes lado a lado!
Imagina: voce coloca um circulo amarelo bem brilhante num fundo azul escuro.
O que acontece? O amarelo parece explodir de tao vivo! Isso e contraste!
E como quando voce usa uma roupa escura e um tenis colorido -
o tenis chama toda a atencao!
No design, usamos contraste para:
- Destacar coisas importantes
- Criar interesse visual
- Guiar os olhos de quem ve
Quer experimentar criar um desenho usando contraste?
API Usage¶
Chat Endpoint¶
POST /api/v1/chat/stream
Content-Type: application/json
{
"message": "Me ensina sobre cores!",
"session_id": "unique-session-id",
"agent_id": "tarsila"
}
Agent Aliases¶
| Alias | Routes To |
|---|---|
amaral |
tarsila |
tarsila_do_amaral |
tarsila |
tarsila-do-amaral |
tarsila |
Testes¶
E2E Production Tests¶
# Run all E2E tests
python tests/e2e/test_kids_agents_production.py
# Run with pytest
pytest tests/e2e/test_kids_agents_production.py -v -k "tarsila"
Test Scenarios (10/10 Passing)¶
| Scenario | Description | Status |
|---|---|---|
greeting |
Welcome and introduce art concepts | PASSED |
colors_concept |
Explain color theory in simple terms | PASSED |
character_design |
Help with character design concepts | PASSED |
composition |
Teach basic composition principles | PASSED |
contrast |
Explain contrast in simple terms | PASSED |
brazilian_art |
Share knowledge about Brazilian art | PASSED |
ui_design_for_kids |
Simple UI design concepts for children | PASSED |
encouragement |
Encourage when child is frustrated | PASSED |
off_topic_redirect |
Redirect off-topic questions | PASSED |
alias_amaral |
Test 'amaral' alias routes correctly | PASSED |
Unit Tests¶
Integracao com DSPy¶
O agente usa o servico DSPy para gerar respostas dinamicas via Maritaca AI (sabia-3.1):
# In BaseKidsAgent._generate_response()
if _DSPY_AVAILABLE and _dspy_service and self.personality_prompt:
response = await _dspy_service.generate_response(
agent_name=self.name,
personality_prompt=self.personality_prompt,
user_message=message,
context={
"target_audience": "children_6_12",
"style": "fun_educational",
"max_words": 150,
},
)
Fallback para respostas pre-definidas quando o servico nao esta disponivel.
Aplicacoes¶
Educacao de UI/UX para Criancas¶
O agente pode ensinar conceitos basicos de design de interface: - Como escolher cores para botoes - Por que alguns apps sao mais bonitos - O que torna uma tela "organizada" - Como usar espaco vazio
Desenvolvimento de Sensibilidade Estetica¶
- Apreciacao da arte brasileira
- Entendimento de combinacoes de cores
- Percepcao de formas e padroes
- Desenvolvimento do "olhar artistico"
Metricas¶
| Metrica | Valor |
|---|---|
| Topicos bloqueados | 70 (via BaseKidsAgent) |
| Topicos permitidos | 162 |
| Obras de referencia | 5 |
| Capacidades | 5 |
| E2E Tests | 10/10 passing |
| Production Status | Live |
Relacionamento com Outros Agentes¶
- Monteiro Lobato: Brother agent for programming education (same BaseKidsAgent)
- Bo Bardi: Frontend mentor (can collaborate on design topics)
- Oscar Niemeyer: Data visualization (for older learners)
Autor¶
- Data: 2025-12-09
- Autor: Anderson H. Silva
- Licenca: Proprietary - All rights reserved