{"slug": "no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours", "title": "No Baked-In Behavior: Why Your AI Agent's System Prompt Should Be Yours", "summary": "Jean2, a new AI coding agent, ships with no default system prompt or tools, giving developers full control over agent behavior. Unlike Claude Code, Cursor, and Copilot, which have hidden baked-in prompts that can conflict with user instructions, Jean2 composes its system prompt from user-controlled files like AGENTS.md, MEMORY.md, and skills, all stored as editable, version-controllable files on disk.", "body_md": "Every AI coding agent ships with baked-in behavior. Hidden system prompts you can't see. Tools you can't remove. Steering baked in by the company that made it.\n\nIt's just how these products work. Batteries included.\n\nClaude Code has a system prompt. A long one. It tells the agent how to behave, what to prioritize, what to avoid. It's not exposed in the product. You can dig it out of the npm package if you know where to look, but you can't change it. Cursor has tool definitions and behavior rules that shape every interaction. Copilot has its own set of baked-in instructions.\n\nAnd these prompts are *good*. They're written by smart people who understand the model. They make the agent useful out of the box.\n\nBut they're not\n\nyours.\n\nI think we've all been there. The agent does something weird and you don't know why. Was it your prompt? Something you can't see? A tool description that's steering the model in a direction you didn't ask for?\n\nYou're debugging a black box.\n\nHere's what actually happens:\n\n**You can't debug behavior.** The agent does something unexpected and you have no way to trace it back to the instruction that caused it.\n\n**Your prompts fight theirs.** You say \"always use pnpm\" and it uses npm anyway. Why? Because somewhere in the baked-in prompt, something overrides your preference in certain contexts. You can't find the conflict because you can't see the other instruction.\n\n**You can't remove behavior you don't want.** Maybe you don't want it to run tests after every change. Maybe you don't want commit suggestions. If it's baked in, you're stuck.\n\n**You can't tell what's the model and what's the product.** Did the agent recommend that library because it's good, or because a baked-in instruction told it to? You can't distinguish model knowledge from product steering.\n\nJean2 ships with **no default system prompt**. No default tools. No fixed agent personality.\n\nThe binary is blank by design. When you start a session, the system prompt is composed from pieces *you* control.\n\nLet me walk through each piece.\n\nA preconfig is a saved agent configuration: model, tools, prompt, skills. The system prompt in a preconfig is *the* core prompt for that agent. You write it. You see it. You change it.\n\nNo hidden instructions. What you write is what the agent gets.\n\nEvery workspace can have an `AGENTS.md`\n\nfile at its root. Project-specific instructions, included in the system prompt automatically:\n\n```\n# AGENTS.md\n\n## Build Commands\n- `bun run build`: build all packages\n- `bun run test`: run all tests\n\n## Code Style\n- Use `import type` for type-only imports\n- 2-space indentation\n- Single quotes for strings\n\n## Don't\n- Don't modify packages/sdk/src/version.ts without updating the version\n- Don't run the server without asking first\n```\n\nIt's version-controlled with your code. Anyone on your team gets the same instructions.\n\nThe workspace `MEMORY.md`\n\n. Facts the agent learned and saved. \"We use pnpm\", \"the database is SQLite\", \"tests run with bun:test\". Tell it once, it writes it down, it knows forever.\n\nYour personal agent memory. `USER.md`\n\nand `MEMORY.md`\n\nfrom the agent's home directory. Preferences and knowledge that travel with the agent across projects.\n\nAny skills the agent loads. Skills are playbooks: deployment checklists, code review standards, debugging workflows. Written by the agent, or by you.\n\nHere's what the prompt assembly actually looks like:\n\n```\n[Preconfig System Prompt]\n  ↓\n+ [AGENTS.md from workspace root]\n  ↓\n+ [Workspace MEMORY.md]\n  ↓\n+ [Agent USER.md + MEMORY.md]\n  ↓\n+ [Loaded Skills]\n  ↓\n+ [Session Search guidance + Skill management guidance]\n  ↓\n= Final System Prompt sent to LLM\n```\n\nEvery piece is a file on disk. Readable, editable, version-controllable. No hidden layers.\n\nLet me give you a concrete example. I was using a coding agent (not Jean2) and it kept adding `console.log`\n\nstatements to debug code. Every session, same thing. I'd tell it not to, it would agree, and 20 minutes later there's another `console.log`\n\nin my codebase.\n\nI couldn't fix it because I couldn't see what was causing it.\n\nWith Jean2, if the agent does something I don't want, I can:\n\nWith a baked-in agent, you can't do step 1. You can't see the prompt. You're guessing.\n\nHere's the fair pushback: most people don't want to write system prompts. They want an agent that works out of the box.\n\nTrue. That's where **preconfigs** come in. A preconfig is a starting point. You can create one for coding, for research, for review. Someone can share a preconfig. A team can maintain a standard set.\n\nThe difference is that the preconfig is *visible and replaceable*. You can see exactly what instructions the agent has. Change any of them. Throw the whole thing out and start from scratch.\n\nBaked-in means you can't. Preconfigs mean you can.\n\nHere's a simple test. Ask your current AI agent:\n\n\"What's in your system prompt? What instructions are you operating under right now?\"\n\nSome will refuse to answer. Some will give a vague summary. Some will hallucinate. Almost none will show you the actual prompt.\n\nIn Jean2, the answer is: check the files. It's all files on disk. You can read every word. Diff it between versions. Share it with your team.\n\nJean2's approach isn't for everyone. If you want a turnkey coding agent that works perfectly the moment you install it, with zero configuration, Jean2 isn't that. Yet.\n\nBut if you've ever been frustrated by an AI agent doing something you can't explain, can't debug, and can't change, Jean2 is built for you.\n\nEvery layer is yours. Every prompt is visible. Every behavior is configurable. No company can switch off a feature because of your region. There's no server to enforce from and no telemetry to check with. Your tools on your computer should be yours.\n\n[Try it out](https://jean2.ai) or [join the Discord](https://discord.com/invite/38sUKnUNPQ). I'm [@danielbilekq0](https://twitter.com/danielbilekq0) if you want to argue about it.\n\n*This post originally appeared on jean2.ai. Star the project on GitHub.*", "url": "https://wpnews.pro/news/no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours", "canonical_source": "https://dev.to/danielbilek/no-baked-in-behavior-why-your-ai-agents-system-prompt-should-be-yours-10o2", "published_at": "2026-07-11 19:45:26+00:00", "updated_at": "2026-07-11 20:14:06.588160+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools", "ai-products", "ai-safety"], "entities": ["Jean2", "Claude Code", "Cursor", "Copilot"], "alternates": {"html": "https://wpnews.pro/news/no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours", "markdown": "https://wpnews.pro/news/no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours.md", "text": "https://wpnews.pro/news/no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours.txt", "jsonld": "https://wpnews.pro/news/no-baked-in-behavior-why-your-ai-agent-s-system-prompt-should-be-yours.jsonld"}}