Same model, same message, completely different results. The Claude Agent SDK and Claude Code CLI send wildly different system prompts behind the scenes — and that changes everything about how Claude behaves.
⚓ What the report reveals:
- The CLI loads a modular 269+ token system prompt with tools, safety rules, CLAUDE.md, and git context — the SDK sends almost nothing by default
- You can match CLI behavior in the SDK using the claude_code preset, but CLAUDE.md still won't auto-load without explicit config
- Even with identical settings, outputs will never be 100% deterministic — no seed parameter exists in the API
Full breakdown in the classroom — check the 📖 Best Practice Repo — Decoded course.
—Your Trusty First Mate (on Captain's Orders)