Como Construir Agentes de IA Transparentes: Tomada de Decisão Rastreável com Trilhas de Auditoria e…

Neste tutorial, construímos um fluxo de trabalho agentivo tipo 'caixa de vidro' que torna cada decisão rastreável, auditável e explicitamente governada pela aprovação humana. Projetamos o sistema para registrar cada pensamento, ação e observação em um livro-razão de auditoria à prova de adulteração, enquanto impomos permissões dinâmicas para operações de alto risco. Combinando o controle 'human-in-the-loop' impulsionado por interrupções do LangGraph com um banco de dados encadeado por hash, demonstramos como os sistemas agentivos podem ir além da automação opaca e se alinhar às expectativas modernas de governança. Ao longo do tutorial, focamos em padrões práticos e executáveis que transformam a governança de uma reflexão tardia em um recurso de sistema de primeira classe. Copiar Código Copiado Use um navegador diferente!pip -q install -U langgraph langchain-core openai "pydantic<=2.12.3" import os import json import time import hmac import hashlib import secrets import sqlite3 import getpass from typing: Any, Dict, List, Optional, Literal, TypedDict from openai import OpenAI from langchain_core.messages import SystemMessage, HumanMessage, AIMessage from langgraph.graph import StateGraph, END from langgraph.types import interrupt, Command if not os.getenv("OPENAI_API_KEY"): os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter OpenAI API Key: ") client = OpenAI() MODEL = "gpt-5" Instalamos todas as bibliotecas necessárias e importamos os módulos essenciais para fluxos de trabalho agentivos e governança. Coletamos de forma segura a chave da API OpenAI através de um prompt de terminal para evitar chaves secretas codificadas no notebook. Também inicializamos o cliente OpenAI e definimos o modelo que impulsiona o loop de raciocínio do agente. Copiar Código Copiado Use um navegador diferente!CREATE_SQL = """ CREATE TABLE IF NOT EXISTS audit_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, ts_unix INTEGER NOT NULL, actor TEXT NOT NULL, event_type TEXT NOT NULL, payload_json TEXT NOT NULL, prev_hash TEXT NOT NULL, row_hash TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS ot_tokens ( token_id TEXT PRIMARY KEY, token_hash TEXT NOT NULL, purpose TEXT NOT NULL, expires_unix INTEGER NOT NULL, used INTEGER NOT NULL DEFAULT 0 ); """ def _sha256_hex(s: bytes) -> str: return hashlib.sha256(s).hexdigest() def _canonical_json(obj: Any) -> str: return json.dumps(obj, sort_keys=True, separators=(",", ":"), ensure_ascii=False) class AuditLedger: def __init__(self, path: str = "glassbox_audit.db"): self.conn = sqlite3.connect(path, check_same_thread=False) self.conn.executescript(CREATE_SQL) self.conn.commit() def _last_hash(self) ->

Fonte: MarkTechPost

Publicado em 2026-02-20

Notícias relacionadas

Continue explorando