惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Spread Privacy
Spread Privacy
P
Palo Alto Networks Blog
P
Proofpoint News Feed
AI
AI
Help Net Security
Help Net Security
S
Securelist
T
Troy Hunt's Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cisco Blogs
Scott Helme
Scott Helme
Hacker News - Newest:
Hacker News - Newest: "LLM"
Vercel News
Vercel News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
GbyAI
GbyAI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
S
Security Affairs
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
T
Tenable Blog
H
Help Net Security
NISL@THU
NISL@THU
F
Fortinet All Blogs
博客园_首页
G
GRAHAM CLULEY
L
LINUX DO - 最新话题
P
Privacy International News Feed
G
Google Developers Blog
博客园 - Franky
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
The Register - Security
The Register - Security
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
量子位
C
Cyber Attacks, Cyber Crime and Cyber Security
Forbes - Security
Forbes - Security
S
Secure Thoughts
Simon Willison's Weblog
Simon Willison's Weblog
D
Docker
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
L
Lohrmann on Cybersecurity
T
Tailwind CSS Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Kimi K2.6 vs Claude vs GPT-5.5: lo puse contra mis casos reales de coding y los números me sorprendieron
Juan Torchia · 2026-05-03 · via DEV Community

Kimi K2.6 vs Claude vs GPT-5.5: lo puse contra mis casos reales de coding y los números me sorprendieron

Estaba mirando un PR que había pedido Claude Sonnet 3.7 que refactorizara — un servicio de ingesta de datos en TypeScript con tres capas de async mal encadenadas — cuando vi el thread de Hacker News sobre Kimi K2.6. El claim era directo: Kimi K2.6 le gana a Claude y a GPT-5.5 en coding benchmarks. LiveCodeBench, SWE-bench, los de siempre.

Mi primera reacción fue visceral: otra vez esto. Cada tres meses hay un modelo nuevo que "gana" los leaderboards y dos semanas después nadie lo usa en producción. Pero esta vez el thread tenía suficiente sustancia técnica como para no descartarlo de entrada. Así que hice lo que hago siempre: dejé de leer opiniones y empecé a medir.

Lo que encontré no es lo que esperaba. Y la conclusión que saqué no aparece en ningún post viral.


Kimi K2.6 benchmark coding: qué dice el leaderboard (y qué no dice)

Los números públicos que circularon en HN son reales en el sentido de que Moonshot AI los publicó y son reproducibles en sus datasets de referencia. Kimi K2.6 reporta algo cercano a 65–68% en LiveCodeBench y números competitivos en SWE-bench Verified. No los voy a citar como exactos porque los benchmarks de estos modelos se actualizan y las versiones cambian semana a semana — lo que importa es el orden de magnitud.

El problema estructural de todos estos rankings es el mismo de siempre: los benchmarks públicos no incluyen contexto de proyecto. HumanEval te da una función aislada. SWE-bench te da un issue de GitHub con su repositorio, sí, pero es un repositorio que el modelo probablemente vio en training. Ninguno te da tu código con tus convenciones, tus decisiones de arquitectura tomadas hace 18 meses por razones que ya no están documentadas en ningún lado.

Mi tesis es simple y la bancó el experimento: los benchmarks públicos mienten no porque los números sean falsos, sino porque el contexto de proyecto real es el verdadero test, y ese test no aparece en ningún leaderboard. Un modelo puede resolver LeetCode Medium en 40 segundos y al mismo tiempo no entender por qué en mi codebase UserService hereda de BaseRepository en lugar de componerlo — y ese segundo problema es el que me cuesta horas reales.


El experimento: tres tareas reales, tres modelos, números propios

Armé tres casos del trabajo de esta semana. No los elegí para favorecer a ningún modelo — los agarré del backlog real, en el orden en que aparecieron.

Configuración: Kimi K2.6 vía API (Moonshot), Claude Sonnet 3.7 vía API directa, GPT-5.5 vía OpenAI API. Mismo prompt, mismo contexto de archivos relevantes pegado manualmente, sin herramientas de agente — quería medir generación pura, no orquestación.

Caso 1: Refactor de servicio async en TypeScript

El contexto: un servicio que procesa webhooks con tres niveles de Promise.all anidados, sin manejo de errores parciales. Le di los tres archivos relevantes (~400 líneas en total) y pedí un refactor que manejara fallos individuales sin abortar el batch completo.

// Lo que tenía: Promise.all sin manejo de fallos parciales
const resultados = await Promise.all(
  eventos.map(e => procesarEvento(e))
  // Si uno falla, todos fallan — aprendí esto de mala manera en producción
);

// Lo que pedí: allSettled con logging por fallo individual
const resultados = await Promise.allSettled(
  eventos.map(e => procesarEvento(e))
);

const fallidos = resultados
  .filter((r): r is PromiseRejectedResult => r.status === 'rejected')
  .map(r => r.reason);

if (fallidos.length > 0) {
  logger.warn(`Batch parcial: ${fallidos.length}/${resultados.length} fallaron`, { fallidos });
}

Enter fullscreen mode Exit fullscreen mode

  • Claude Sonnet 3.7: Entendió el patrón, propuso Promise.allSettled, respetó el logger que estaba definido en otro archivo del contexto. Tiempo de generación: ~8 segundos. Integración directa: sí, sin editar.
  • GPT-5.5: Solución correcta, pero usó console.error en lugar del logger del proyecto. Costo de adaptación: 2 minutos de edición manual.
  • Kimi K2.6: Solución correcta y usó el logger. Tiempo de generación: ~14 segundos. Pero introdujo un tipo BatchResult<T> genérico que no tenía precedente en el codebase — funcionalmente bien, pero rompe la consistencia de patrones del proyecto.

Ganador de uso real: Claude. No porque Kimi estuvo mal, sino porque la solución de Kimi generó una decisión de diseño implícita que no pedí.

Caso 2: Query SQL con lógica de negocio específica

Tengo una query en PostgreSQL que calcula métricas de uso ponderadas por plan. La lógica de ponderación es nuestra, no es estándar — hay comentarios en el código que explican el por qué de los coeficientes.

-- Cálculo de score ponderado por plan
-- Coeficiente 1.4 para plan PRO: decisión del 2023-09, ver issue #441
SELECT
  u.id,
  u.plan,
  ROUND(
    SUM(e.valor) * CASE u.plan
      WHEN 'PRO'   THEN 1.4
      WHEN 'BASIC' THEN 1.0
      ELSE              0.6
    END
  , 2) AS score_ponderado
FROM usuarios u
JOIN eventos e ON e.usuario_id = u.id
GROUP BY u.id, u.plan;

Enter fullscreen mode Exit fullscreen mode

Le pedí a los tres modelos que extendieran esta query para incluir una ventana temporal de 30 días y un filtro por región, respetando los coeficientes existentes.

  • Claude: Extendió correctamente, mantuvo los coeficientes, agregó el WHERE con NOW() - INTERVAL '30 days', y comentó que el coeficiente de ELSE podría necesitar revisión si se agregan planes nuevos. Ese comentario proactivo me ahorró una conversación futura.
  • GPT-5.5: Correcta, pero cambió el ROUND(..., 2) por CAST(... AS DECIMAL(10,2)) sin que yo lo pidiera. Funcionalmente equivalente, estilísticamente diferente al resto del código.
  • Kimi K2.6: Correcta, respetó todo, no hizo comentarios adicionales. La solución más "limpia" en términos de no agregar nada no pedido.

Este caso es interesante: Kimi ganó en disciplina, Claude ganó en valor agregado. Depende de qué necesitás en ese momento.

Caso 3: Debugging de un error de tipo en React + TypeScript

Un componente con un prop drilling profundo donde el tipo de un callback estaba mal inferido. Error de compilación real, 6 archivos de contexto.

Type '(id: string) => Promise<void>' is not assignable to 
type '(id: string, options?: UpdateOptions) => Promise<void>'.

Enter fullscreen mode Exit fullscreen mode

  • Claude: Identificó el origen en el tercer nivel del árbol de componentes, propuso la corrección y sugirió colapsar el prop drilling con un contexto. Correcto, aunque la sugerencia de refactor era out of scope.
  • GPT-5.5: Identificó el origen correctamente, propuso solo la corrección mínima. Sin sugerencias extra. Tiempo: ~6 segundos.
  • Kimi K2.6: Identificó el origen, pero propuso corregir el tipo en el primer componente en lugar del origen real. Funcionalmente resuelve el error de compilación, pero en el lugar equivocado arquitecturalmente.

Ganador claro: GPT-5.5 en este caso. Solución correcta, mínima, rápida.


Los errores que ningún benchmark captura

Hay algo que me quedó dando vueltas después de correr estos tres casos, y tiene que ver con algo que mencioné cuando analicé el supply chain attack sobre mis dependencias de ML: la diferencia entre una herramienta que funciona en aislamiento y una que funciona integrada en un sistema real.

Los tres modelos resuelven correctamente cuando el problema es autocontenido. La divergencia aparece en dos dimensiones que ningún leaderboard mide:

1. Disciplina contextual: ¿El modelo respeta las decisiones de diseño preexistentes aunque no sean las "mejores" académicamente? Kimi introdujo el tipo genérico en el Caso 1 porque es una buena práctica general — pero rompe la consistencia del proyecto. Claude a veces sugiere refactors no pedidos. GPT-5.5 fue el más disciplinado en los tres casos.

2. Latencia bajo contexto largo: Con 400+ líneas de contexto, Kimi fue consistentemente ~6 segundos más lento que GPT-5.5 y ~4 segundos más lento que Claude en mis mediciones informales. No es un problema crítico, pero en un flujo de trabajo donde mandás 20-30 queries por hora, suma.

Esto me recuerda algo que aprendí en el cyber café a los 14 años: cuando se caía la red a las 11pm con el local lleno, no importaba qué router tenía mejor throughput teórico. Importaba cuál arrancaba más rápido después de un reset y cuál me daba información útil sobre el punto de falla. Los benchmarks de throughput no capturaban eso. Los benchmarks de LLM tampoco capturan la latencia bajo presión real ni la disciplina contextual.

También conecta con lo que observé al auditar mis propios prompts de producción: los modelos se comportan distinto cuando el prompt tiene contexto denso versus cuando es un problema limpio. Kimi K2.6 parece optimizado para el segundo caso.


Los errores comunes al leer estos comparativos

"Ganó en SWE-bench, entonces es mejor para mi proyecto": SWE-bench usa repositorios públicos. Si el modelo fue entrenado después de la fecha de creación del repo, hay contaminación de datos posible. Nunca vas a saber exactamente cuánto.

"Los números son de esta semana, entonces son actuales": Los modelos que se comparan en HN suelen ser versiones que ya llevan semanas en API. Kimi K2.6, Claude Sonnet 3.7 y GPT-5.5 tienen fechas de corte de conocimiento distintas y versiones de API que se actualizan sin changelog claro. Lo que medís hoy puede no ser lo que medís en tres semanas.

"Más barato = peor": Kimi K2.6 tiene pricing significativamente más bajo que Claude y GPT-5.5 en los tiers de API que usé. En los Casos 1 y 2, la calidad era comparable. El costo por token no es un proxy confiable de calidad en coding.

"Claude siempre gana porque es el más usado": En mis tres casos, GPT-5.5 ganó uno limpiamente. El sesgo de confirmación es real — si usás Claude todos los días, le vas a dar más contexto implícito en cómo formulás los prompts.

Esto también aplica a cómo leemos noticias de infraestructura. Cuando analicé las vulnerabilidades del kernel Linux sobre mi stack Ubuntu/Railway, el problema no era el CVE público sino el gap entre el anuncio y el parche real en producción. Con los LLM benchmarks pasa lo mismo: el número público y el impacto real en tu flujo tienen un gap que solo medís vos.


FAQ: Kimi K2.6 benchmark coding

¿Kimi K2.6 realmente supera a Claude y GPT-5.5 en coding?
En benchmarks públicos como LiveCodeBench, los números reportados son competitivos. En mi experimento con código de proyecto real, el resultado fue mixto: Kimi ganó en disciplina de no agregar noise en un caso, perdió en identificación de origen en debugging y fue comparable en refactor. "Superar" depende completamente del tipo de tarea y del contexto que le das.

¿Vale la pena migrar a Kimi K2.6 si ya uso Claude o GPT-5.5?
No como migración completa. Vale la pena tenerlo como alternativa para tareas de generación limpia donde no importa la consistencia con un codebase existente. Para trabajo con contexto de proyecto denso, Claude y GPT-5.5 mostraron mejor adherencia a patrones preexistentes en mis pruebas.

¿Los benchmarks públicos de LLM son confiables para tomar decisiones de herramienta?
Son útiles como filtro inicial — si un modelo no llega a cierto umbral en HumanEval, probablemente no vale la pena ni probarlo. Pero para decidir qué usar en producción, el único benchmark que importa es el que corré sobre tu propio código con tus propios casos.

¿Cuál es el costo de API de Kimi K2.6 comparado con Claude y GPT-5.5?
Al momento de escribir esto, Kimi K2.6 tiene un pricing notablemente más bajo por token que Claude Sonnet 3.7 y GPT-5.5. Si el volumen es alto y los casos son de generación relativamente limpia, el diferencial de costo puede justificar la integración. Los precios cambian frecuentemente — verificá en las páginas oficiales antes de proyectar costos.

¿La latencia de Kimi K2.6 es un problema real en flujos de desarrollo?
En mis mediciones informales, ~6-14 segundos para respuestas con contexto mediano. No es bloqueante para uso casual, pero si trabajás en un flujo donde el modelo es parte de un loop de iteración rápida (generar → revisar → refinar → generar), la diferencia se siente. Claude y GPT-5.5 fueron más rápidos en mis casos.

¿Tiene sentido correr los tres modelos en paralelo para el mismo problema?
Lo hice para este post y fue útil para entender las diferencias. En el trabajo diario, no — el overhead de comparar tres respuestas consume más tiempo del que ahorrás. Mi enfoque es: tengo un modelo primario (Claude para contexto denso), uno de respaldo (GPT-5.5 para debugging puntual) y Kimi K2.6 como experimento para casos de generación limpia donde el costo importa.


Conclusión: el hype no está equivocado, pero la pregunta sí

Kimi K2.6 es un modelo serio. No es marketing vacío y los números de leaderboard no son inventados. Pero el debate de "quién gana" está mal planteado desde el título — incluyendo el mío, que lo usé a propósito para que llegues hasta acá.

La pregunta real no es "¿cuál modelo gana en coding?" sino "¿cuál modelo entiende mi código específico, mis convenciones y las decisiones que tomé hace 18 meses por razones que ya no están en ningún README?". Esa pregunta no tiene una respuesta de leaderboard.

Lo que bancó el experimento: en tareas con contexto de proyecto real y denso, la consistencia arquitectural importa más que el score en HumanEval. GPT-5.5 fue el más disciplinado en no agregar decisiones de diseño no pedidas. Claude fue el más útil cuando necesitaba valor agregado proactivo. Kimi K2.6 fue competitivo en calidad y significativamente más barato — con la caveat de que en debugging complejo erró el origen.

¿Cambié mi stack después de esto? No. Seguí con Claude como primario. Pero agregué Kimi K2.6 a la rotación para casos específicos, especialmente generación de código greenfield donde el contexto del proyecto es mínimo. Eso es lo más honesto que puedo decir.

Lo que no voy a hacer es proclamar un ganador universal. Eso es lo que hacen los posts virales. Este no es ese post — es el seguimiento que no te da el thread de HN.

También lo que no me cierra de todo este debate: cuando analicé el impacto real de un DDoS sobre mi stack en Railway, la conclusión fue que los números públicos de "uptime garantizado" no dicen nada sobre el comportamiento bajo carga real en mi contexto específico. Los benchmarks de LLM tienen exactamente el mismo problema. El número existe. El contexto que lo hace relevante para vos, no.


Fuente original: Hacker News


Este artículo fue publicado originalmente en juanchi.dev