llm-trading-agent-security
Faz seu agente lidar com segurança em negociações. Ele protege contra fraudes, define limites e verifica transações para agentes de negociação autônomos.
O que ela faz
Este agente de IA ajuda a proteger suas transações financeiras automatizadas. Ele verifica se os comandos enviados para a IA são seguros e se os limites de gastos estão sendo respeitados, evitando perdas de dinheiro.
Quando usar
- ✓Quando você cria um robô de investimento que faz transações automaticamente.
- ✓Ao revisar a segurança de um agente que gerencia seu dinheiro.
- ✓Se você quer definir limites de quanto dinheiro um agente pode gastar.
Exemplo do que pedir para a IA
“Verifique se este comando de investimento é seguro antes de executá-lo.”
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
Ele funciona adicionando várias camadas de segurança. Isso inclui verificar os comandos para evitar que sejam enganados, impor limites de gastos e simular transações antes de enviá-las.
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 affaan-m/ECC --skill llm-trading-agent-securityOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/llm-trading-agent-security/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.
Segurança de Agentes de Trading com LLM
Agentes de trading autônomos têm um modelo de ameaças mais severo do que aplicativos LLM normais: uma injeção ou um caminho de ferramenta incorreto pode se transformar diretamente em perda de ativos.
Quando Usar
- Construindo um agente de IA que assina e envia transações
- Auditando um bot de trading ou um assistente de execução on-chain
- Projetando o gerenciamento de chaves de carteira para um agente
- Dando a um LLM acesso a colocação de ordens, swaps ou operações de tesouraria
Como Funciona
Camadas de defesa. Nenhuma verificação única é suficiente. Trate a higiene de prompts, política de gastos, simulação, limites de execução e isolamento de carteira como controles independentes.
Exemplos
Trate a injeção de prompt como um ataque financeiro
import re
INJECTION_PATTERNS = [
r'ignore (previous|all) instructions',
r'new (task|directive|instruction)',
r'system prompt',
r'send .{0,50} to 0x[0-9a-fA-F]{40}',
r'transfer .{0,50} to',
r'approve .{0,50} for',
]
def sanitize_onchain_data(text: str) -> str:
for pattern in INJECTION_PATTERNS:
if re.search(pattern, text, re.IGNORECASE):
raise ValueError(f"Potential prompt injection: {text[:100]}")
return text
Não injete cegamente nomes de tokens, rótulos de pares, webhooks ou feeds sociais em um prompt capaz de execução.
Limites de gastos rígidos
from decimal import Decimal
MAX_SINGLE_TX_USD = Decimal("500")
MAX_DAILY_SPEND_USD = Decimal("2000")
class SpendLimitError(Exception):
pass
class SpendLimitGuard:
def check_and_record(self, usd_amount: Decimal) -> None:
if usd_amount > MAX_SINGLE_TX_USD:
raise SpendLimitError(f"Single tx ${usd_amount} exceeds max ${MAX_SINGLE_TX_USD}")
daily = self._get_24h_spend()
if daily + usd_amount > MAX_DAILY_SPEND_USD:
raise SpendLimitError(f"Daily limit: ${daily} + ${usd_amount} > ${MAX_DAILY_SPEND_USD}")
self._record_spend(usd_amount)
Simule antes de enviar
class SlippageError(Exception):
pass
async def safe_execute(self, tx: dict, expected_min_out: int | None = None) -> str:
sim_result = await self.w3.eth.call(tx)
if expected_min_out is None:
raise ValueError("min_amount_out is required before send")
actual_out = decode_uint256(sim_result)
if actual_out < expected_min_out:
raise SlippageError(f"Simulation: {actual_out} < {expected_min_out}")
signed = self.account.sign_transaction(tx)
return await self.w3.eth.send_raw_transaction(signed.raw_transaction)
Disjuntor (Circuit Breaker)
class TradingCircuitBreaker:
MAX_CONSECUTIVE_LOSSES = 3
MAX_HOURLY_LOSS_PCT = 0.05
def check(self, portfolio_value: float) -> None:
if self.consecutive_losses >= self.MAX_CONSECUTIVE_LOSSES:
self.halt("Too many consecutive losses")
if self.hour_start_value <= 0:
self.halt("Invalid hour_start_value")
return
hourly_pnl = (portfolio_value - self.hour_start_value) / self.hour_start_value
if hourly_pnl < -self.MAX_HOURLY_LOSS_PCT:
self.halt(f"Hourly PnL {hourly_pnl:.1%} below threshold")
Isolamento de carteira
import os
from eth_account import Account
private_key = os.environ.get("TRADING_WALLET_PRIVATE_KEY")
if not private_key:
raise EnvironmentError("TRADING_WALLET_PRIVATE_KEY not set")
account = Account.from_key(private_key)
Use uma carteira quente dedicada com apenas os fundos de sessão necessários. Nunca aponte o agente para uma carteira de tesouraria principal.
Proteção MEV e de prazo
import time
PRIVATE_RPC = "https://rpc.flashbots.net"
MAX_SLIPPAGE_BPS = {"stable": 10, "volatile": 50}
deadline = int(time.time()) + 60
Checklist de Pré-Implantação
- Dados externos são sanitizados antes de entrar no contexto do LLM
- Limites de gastos são aplicados independentemente da saída do modelo
- Transações são simuladas antes do envio
min_amount_outé obrigatório- Disjuntores (Circuit breakers) param em caso de drawdown ou estado inválido
- Chaves vêm de variáveis de ambiente ou de um gerenciador de segredos, nunca de código ou logs
- Mempool privado ou roteamento protegido é usado quando apropriado
- Slippage e prazos são definidos por estratégia
- Todas as decisões do agente são registradas em auditoria, não apenas envios bem-sucedidos
Perguntas frequentes
O que é 'prompt injection'?
É quando alguém tenta enganar a IA com comandos maliciosos para fazê-la agir de forma indesejada, como enviar dinheiro para um endereço errado.
O que são 'spend limits' (limites de gastos)?
São regras que definem o valor máximo que um agente de IA pode gastar em uma única transação ou em um dia, para evitar perdas grandes.
Por que simular transações antes de enviá-las?
Simular permite ver o resultado de uma transação antes de ela acontecer de verdade. Isso ajuda a garantir que o resultado seja o esperado e a evitar perdas por mudanças inesperadas no mercado (slippage).
Detalhes
Descrição original do autor
Security patterns for autonomous trading agents with wallet or transaction authority. Covers prompt injection, spend limits, pre-send simulation, circuit breakers, MEV protection, and key handling. Use when an autonomous agent holds wallet or transaction authority and its limits, simulation, or key handling need review.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #226
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
mcp-builder
Ajuda seu agente a criar servidores que conectam LLMs a serviços externos. Essencial para integrar APIs e serviços usando Python ou Node/TypeScript.
anthropics/skills
prepare-mcp-integration
Prepara integrações com fornecedores (MCP) através de pesquisa e aprovação humana. Segue um processo guiado para novas integrações.
paperclipai/paperclip
first-task
Guia o agente na primeira tarefa do usuário. Ele interpreta a resposta inicial, esclarece o objetivo e propõe um plano ou tarefa única para aprovação.
paperclipai/paperclip