simpy
Permite que seu agente crie e analise simulações de eventos discretos. É útil para modelar sistemas complexos onde eventos acontecem em momentos específicos.
O que ela faz
SimPy é uma ferramenta para criar simulações de sistemas que acontecem ao longo do tempo, como filas de atendimento ou linhas de produção. Ela ajuda a entender como esses sistemas funcionam e a prever problemas.
Quando usar
- ✓Para simular o tempo de espera em uma fila de banco.
- ✓Para modelar o fluxo de produtos em uma fábrica.
- ✓Para analisar o tráfego em uma rede de computadores.
Exemplo do que pedir para a IA
“Simule uma fila de atendimento onde clientes chegam a cada 5 minutos e o atendimento leva em média 3 minutos.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você descreve os eventos que acontecem (como a chegada de um cliente) e como eles interagem com os recursos disponíveis (como um atendente). SimPy cuida de organizar a ordem e o tempo desses eventos.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add K-Dense-AI/scientific-agent-skills --skill simpyOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/simpy/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SimPy
Escopo
Use esta habilidade para modelos de eventos discretos baseados em processos onde entidades ativas cedem eventos e disputam recursos: filas, sistemas de produção, logística, redes, operações de serviço, estoque e outros sistemas orientados a eventos.
SimPy fornece um agendador de eventos e primitivas de modelagem. Ele não escolhe um modelo conceitual cientificamente válido, distribuição de entrada, aquecimento, duração da execução, contagem de replicação, estimativa ou interpretação causal. Trate isso como metodologia de estudo de simulação, não como comportamento da API SimPy.
Versão atual e instalação
Revisado em 2026-10-01 em relação à documentação oficial atual e ao código fonte liberado:
- Última versão estável: SimPy 4.1.2, lançada no PyPI em 2026-05-24; a tag de origem
4.1.2aponta para o commitf4381649. - Metadados do pacote exigem Python >=3.8 e classificam CPython 3.8-3.14 mais PyPy. SimPy não tem dependências de tempo de execução.
- 4.1.2 adiciona suporte a Python 3.13/3.14 e correções de teste de interpretador moderno.
- O upstream e esta habilidade são licenciados sob MIT.
Crie um ambiente reproduzível:
uv venv --python 3.13
source .venv/bin/activate
uv pip install "simpy==4.1.2"
python -c "import importlib.metadata; print(importlib.metadata.version('simpy'))"
Não substitua silenciosamente a compilação da documentação latest: ela pode descrever uma
revisão de desenvolvimento não lançada. Use os links versionados para 4.1.2 em
references/sources.md.
Fluxo de trabalho do modelo
- Defina propósito e estimativas. Declare a decisão/pergunta, limite do sistema, entidades, recursos, estado, saídas, unidades de tempo e evento de término ou alvo de estado estacionário.
- Escreva um modelo conceitual primeiro. Registre suposições, distribuições, roteamento, prioridades, condições iniciais e mecanismos omitidos.
- Implemente geradores. Um processo SimPy é um gerador Python que produz eventos.
Registre o objeto gerador com
env.process(...). - Limite a execução. Dê a cada execução de produção limites explícitos de tempo, entidade, evento e
replicação. Nunca chame
env.run()em um modelo contendo um processo infinito. Um horizonte de tempo sozinho não pode parar um loopyield env.timeout(0)infinito: eventos continuam a ser executados no mesmo tempo de simulação. Adicione uma guarda de contagem de eventos ou de não-progresso-de-tempo, e espere por eventos de mudança de estado em vez de polling ocupado de atraso zero. - Separe fluxos aleatórios. Use instâncias de RNG locais para fontes estocásticas logicamente distintas; mantenha um manifesto de sementes.
- Instrumente deliberadamente. Observe o estado após a transição de interesse, feche intervalos ponderados pelo tempo no horizonte e teste que o monitoramento não altera a ordem dos eventos.
- Verifique e valide. Teste casos de borda determinísticos, identidades de conservação, rastreamentos, disciplina de fila e benchmarks analíticos; compare com evidências do sistema ou de especialistas para o propósito declarado.
- Execute réplicas independentes. Faça intervalos a partir de estimativas em nível de replicação, não entidades correlacionadas dentro de uma única execução.
- Relate limitações. Inclua inicialização, entidades inacabadas, duração da execução, sementes/fluxos, precisão, sensibilidade e evidências de validação. Nunca converta associação de simulação em uma alegação causal.
Leia references/simulation-methodology.md antes de fazer alegações inferenciais.
Modelo limitado mínimo
import random
import simpy
HORIZON = 480.0
arrival_rng = random.Random(101)
service_rng = random.Random(202)
env = simpy.Environment()
server = simpy.Resource(env, capacity=2)
completed = []
def customer(arrival):
with server.request() as request:
yield request
wait = env.now - arrival
yield env.timeout(service_rng.expovariate(1 / 6.0))
completed.append((env.now, wait))
def arrivals():
for _ in range(10_000): # Entity cap.
delay = arrival_rng.expovariate(1 / 4.0)
if env.now + delay >= HORIZON:
return
yield env.timeout(delay)
env.process(customer(env.now))
env.process(arrivals())
env.run(until=HORIZON)
O horizonte numérico é semiaberto: eventos normais agendados exatamente em 480.0 são
não processados. Relate entidades inacabadas em vez de tratá-las silenciosamente como
observações completas.
Semântica principal
Ambiente e ordenação determinística
Environment é de thread única. A fila é ordenada por tempo de simulação, prioridade do evento,
então um ID de evento estritamente crescente. Eventos de mesmo tempo e mesma prioridade são
portanto processados FIFO na ordem de agendamento. Processos do modelo podem representar
…
Perguntas frequentes
O que é um 'processo' no SimPy?
Um processo é uma sequência de ações que acontecem em um sistema simulado, como um cliente esperando na fila e depois sendo atendido.
Como o SimPy sabe quando as coisas acontecem?
Ele usa um 'agendador de eventos' que organiza todas as ações futuras e as executa na ordem correta de tempo.
Posso simular coisas que acontecem ao mesmo tempo?
Sim, SimPy permite modelar múltiplos eventos e interações que podem ocorrer simultaneamente, mas ele os processa um de cada vez de forma organizada.
Detalhes
Descrição original do autor
Builds, inspects, tests, and analyzes bounded process-based discrete-event simulations with SimPy. Use for event scheduling, resource queues, interrupts, monitoring, independent replications, warm-up, and reproducible output analysis.
Popularidade
- Estrelas no GitHub
- 51 mil
- Posição no ranking
- #1982
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
13c-metabolic-flux
Estima fluxos metabólicos usando dados de rastreamento de isótopos de carbono-13. É útil para analisar o metabolismo celular e vias bioquímicas.
K-Dense-AI/scientific-agent-skills
adaptyv
Projeta experimentos de caracterização de proteínas usando a API Adaptyv. Ele ajuda a estimar custos, enviar sequências e monitorar resultados de laboratório.
K-Dense-AI/scientific-agent-skills
aeon
Realiza tarefas de aprendizado de máquina em séries temporais. É útil para classificar, prever, detectar anomalias e encontrar padrões em dados sequenciais.
K-Dense-AI/scientific-agent-skills
alphagenome
Consulta efeitos genômicos pré-calculados para variantes genéticas. Ele fornece pontuações e explicações para entender o impacto das variantes no genoma.
K-Dense-AI/scientific-agent-skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC