Resumen
Este flujo de trabajo genera un informe semanal of search API costs a traves de todos agents in un despliegue. It lee usage registros, calculates per-agent y per-task costs at $0.005/consulta, identifies cost tendencias, y flags agents whose usage spiked above normal. El informe ayuda teams optimizar agent search patrones, identificar runaway loops, y forecast mensual API spend.
Desencadenador
Cron programar (cada Friday at 5:00 PM UTC)
Programación
Ejecuta cada Friday at 5:00 PM UTC
Pasos del flujo de trabajo
Recopilar usage registros
Leer search API usage registros for el actual semana de el registro system.
Calcular per-agent costs
Group consultas by agent ID, calcular total consultas y costs per agent at $0.005/consulta.
Detectar usage anomalias
Comparar cada agent's semanal usage contra its 4-semana promedio movil to detectar spikes.
Generar cost informe
Compile un structured informe con per-agent breakdown, tendencias, y anomalia flags.
Implementacion en Python
import json
from datetime import datetime
from pathlib import Path
from collections import defaultdict
COST_PER_QUERY = 0.005
def generate_cost_report(usage_log: list[dict]) -> dict:
"""Generate weekly cost report from usage logs."""
agent_usage = defaultdict(lambda: {"queries": 0, "platforms": defaultdict(int)})
for entry in usage_log:
agent_id = entry.get("agent_id", "unknown")
platform = entry.get("platform", "google")
agent_usage[agent_id]["queries"] += 1
agent_usage[agent_id]["platforms"][platform] += 1
report = {
"week_ending": datetime.utcnow().strftime("%Y-%m-%d"),
"total_queries": sum(a["queries"] for a in agent_usage.values()),
"total_cost": round(sum(a["queries"] for a in agent_usage.values()) * COST_PER_QUERY, 2),
"agents": [],
}
for agent_id, usage in sorted(agent_usage.items(), key=lambda x: x[1]["queries"], reverse=True):
cost = round(usage["queries"] * COST_PER_QUERY, 2)
report["agents"].append({
"agent_id": agent_id,
"queries": usage["queries"],
"cost": cost,
"platforms": dict(usage["platforms"]),
})
return report
def run():
# Example usage log
sample_log = [
{"agent_id": "research_agent", "platform": "google", "query": "test", "timestamp": "2026-05-20T10:00:00"},
{"agent_id": "research_agent", "platform": "reddit", "query": "test", "timestamp": "2026-05-20T10:01:00"},
{"agent_id": "price_agent", "platform": "amazon", "query": "test", "timestamp": "2026-05-20T11:00:00"},
{"agent_id": "price_agent", "platform": "walmart", "query": "test", "timestamp": "2026-05-20T11:01:00"},
{"agent_id": "price_agent", "platform": "amazon", "query": "test", "timestamp": "2026-05-20T12:00:00"},
]
report = generate_cost_report(sample_log)
print(f"Weekly cost report ({report['week_ending']}):")
print(f" Total: {report['total_queries']} queries, ${report['total_cost']}")
for agent in report["agents"]:
print(f" {agent['agent_id']}: {agent['queries']} queries (${agent['cost']})")
Path(f"cost_report_{report['week_ending']}.json").write_text(json.dumps(report, indent=2))
if __name__ == "__main__":
run()Implementacion en JavaScript
const COST_PER_QUERY = 0.005;
function generateCostReport(logs) {
const agents = {};
for (const entry of logs) {
const id = entry.agent_id ?? "unknown";
if (!agents[id]) agents[id] = { queries: 0, platforms: {} };
agents[id].queries++;
agents[id].platforms[entry.platform ?? "google"] = (agents[id].platforms[entry.platform ?? "google"] ?? 0) + 1;
}
const total = Object.values(agents).reduce((s, a) => s + a.queries, 0);
return { totalQueries: total, totalCost: (total * COST_PER_QUERY).toFixed(2), agents };
}
const logs = [
{ agent_id: "research", platform: "google" },
{ agent_id: "research", platform: "reddit" },
{ agent_id: "price", platform: "amazon" },
{ agent_id: "price", platform: "amazon" },
];
const report = generateCostReport(logs);
console.log(`Total: ${report.totalQueries} queries, $${report.totalCost}`);
for (const [id, data] of Object.entries(report.agents)) console.log(` ${id}: ${data.queries} queries`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Amazon
Búsqueda de productos con precios, calificaciones y reseñas
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit