Your AI Agent Is Lying to You. Here’s What It’s Really Doing.

You just asked your AI agent to fix a bug in your codebase. It replies with a cheerful “Task completed.”

You have no idea what it actually did. Did it read your API keys? Did it delete a file? Did it push a change to production? You don’t know. And if something breaks at 2 AM, you’ll be the one holding the bag.

This is the dirty secret of every AI agent product shipping today: they’re selling you a black box wrapped in a chat interface.

DeepSeek just dropped Harness, and it’s not another chatbot. It’s an execution layer that lets agents actually modify files, run commands, and call tools in the real world. But the real product challenge isn’t the model — it’s the accountability gap nobody’s talking about.

Let me show you what happens when an agent actually executes a task.

You type: “Fix the login bug.”

Behind the scenes, the agent reads your project structure, searches for relevant files, decides where to edit, runs tests, and iterates. Any one of these steps could go wrong. The agent might read a config file with your database credentials. It might accidentally delete a dependency. It might run a command that starts a background process on your machine.

But your interface shows you one thing: “Task completed.”

When an agent can change your files, the chat interface is a lie.

DeepSeek Harness does something different. It records every single step as a “trajectory” — the model’s thoughts, the tool calls, the results, the permissions checked. You can replay, fork, and audit this entire chain.

This is what product managers should be building, not better chat UIs.

Here’s the problem: most agent products show you the question and the answer. They hide the execution. The user can’t tell if the agent read the wrong file, ran a command outside the workspace, or skipped the test suite entirely.

You need an execution responsibility table. It’s not a technical document. It’s a product design tool.

Start with one real task. Map out every step: who decides, what’s recorded, who’s responsible when it fails.

Let me walk you through the login bug fix.

Step one: The agent reads the project. Low risk, but it might access keys or config files. Most products ask “Allow access?” once at the start and never again. The user has no idea what the agent actually read.

Step two: The agent edits a file. The product shows “Edited file.” Useful? No. The user needs to see the diff, the target file, the scope of the change. Not every edit needs a review, but the boundary should be visible.

Step three: The agent runs tests. The command might download dependencies, access external services, or start a background process. Tests fail. The agent retries. The final message says “All tests passed.” But it doesn’t show the three failures before that, or that one failure was because the agent tried to access a restricted directory.

This is where the black box lives.

Your agent’s success rate is a vanity metric. Show me the failure points.

DeepSeek’s architecture separates three things that most products smash together: the model decides what to do, the policy checks if it’s allowed, and the sandbox limits what it can actually affect. These are three different systems. Your product needs to show them separately.

When a permission request pops up, the user needs more than “Allow” or “Deny.” They need to know: what file is being changed? What directory is the command running in? Does it have network access? What happens if it fails? Does the permission expire after this one call?

Most products dump all the risk into the approval dialog. The result is permission fatigue. The user clicks “Allow” fifty times, then stops reading. The interface still says “Approved by user,” but nobody actually decided anything.

A better approach: set a default scope for the task. Read-only for code analysis. Workspace-write for file edits. Network access as a separate, explicit permission. The user sees fewer approvals, and each one matters.

DeepSeek ships with presets like “workspace-write” and “danger-full-access.” These names are short, but they bundle two independent settings: sandbox mode and approval policy. A product shouldn’t just show a green “Safe” tag. It should explain what the sandbox does and when the user will be asked.

Here’s a wild edge case: you change the default permissions for new sessions. What happens to the agent that’s already running? DeepSeek’s design preserves the permissions at session start. The running agent doesn’t suddenly get more power. But the admin might not realize old sessions are still running with the old rules. The product needs to tell them.

Failure classification is another blind spot.

A command returns a non-zero exit code. That’s a runtime failure. A sandbox blocks a write outside the workspace. That’s a policy failure. The user denies a permission request. That’s a human decision. The execution backend is down. That’s an infrastructure failure.

Most products lump all of these into “Task failed.” The agent tries to retry with the same command, which is useless for a sandbox denial. The user doesn’t know whether to fix the code, adjust the permissions, or restart the server.

“Task failed” is not a diagnosis. It’s a cover-up.

DeepSeek’s shell subsystem reports these separately. The model can then decide: retry with a smaller scope, request a new permission, or stop. The product should show the same distinction to the user.

This matters for accountability. If the model chose a bad command, the agent team fixes the prompt. If the tool validation failed, the plugin author fixes the interface. If the approval service was down, the product team fixes the infrastructure. If you just track “agent success rate,” you’ll never know which to fix.

Now let’s talk about plugins. DeepSeek Harness is built on a plugin architecture. Model, tools, sandbox, storage, scheduling — everything is a plugin. This is powerful. It also means every plugin is a new attack surface.

When you install a plugin, the product should show you what data it accesses, whether it sends data externally, what happens when it fails, and where the logs go. Most plugin marketplaces show you a description and a star rating. That’s not enough.

If a plugin upgrades and adds write permissions, the product should re-ask for consent. If a plugin is uninstalled, the product should clean up the data and revoke the tokens. “Everything is a plugin” gives teams freedom, but it also means the platform can’t vouch for every plugin’s safety.

Before you roll out an agent to your team, run one real task. Not a demo. A real task on a real project. Note the permissions required, the approvals needed, the failures encountered, and the time to recover.

Answer these questions: Can the user understand the risk before an action? Can the user recover from a failure at a specific step? Can the admin trace the source of a failure from the logs? Are there any unexplained changes in the workspace after the task?

If you can’t answer these, adding more models and tools will only make the problem worse.

Run the same task with different permission settings. Compare task completion rates, but also compare approval counts, failure locations, and manual review time. An agent that finishes fast but requires twenty minutes of review hasn’t saved anyone time.

Speed without auditability is just recklessness.

The responsibility table doesn’t need to be perfect. Start with one task. Map the steps. Label the decisions. Note the records. Assign the recovery paths. It will reveal the gaps in your product.

Here’s what the table looks like for the login bug fix:

Read project files — Model decides, system records file paths accessed, user recovers by re-selecting workspace if denied.

Edit a file — Model proposes, policy checks scope, system records diff and parameters, user recovers by reviewing diff and reverting if needed.

Run tests — Model decides, sandbox limits execution, system records command output and exit code, user recovers by fixing code or adjusting environment.

Each step names who decides, what’s recorded, and who recovers. This is the foundation of a responsible agent product.

DeepSeek Harness is a developer preview. It’s not a finished product. But it shows a direction that every product manager building AI agents should follow: the execution layer is the product, not the chat interface.

The model decides what to do. The execution layer makes it visible, limitable, and auditable. Teams will trust an agent not because of its intelligence, but because of its accountability.

If your product doesn’t have a responsibility table, you don’t have an agent product. You have a trust-destroying black box that will fail your first security audit.

FAQ

Q: Isn't this just a developer tool problem? Why should product managers care?

A: Because the trust gap is a product problem, not a code problem. If your agent can change files but the user can't see what changed, you've built a liability, not a tool. Security audits, compliance reviews, and user trust all depend on execution visibility. The PM who ignores this will ship a product that fails in production.

Q: What's the simplest thing I can do tomorrow to apply this?

A: Run one real task with your agent. Not a demo. Map every step: who decides, what's recorded, who recovers. You'll find at least three gaps where the user can't see what happened. Fix those gaps before you add more features.

Q: Doesn't too much transparency slow down the user? Permission fatigue is real.

A: Yes, which is why you need smart defaults. Set a clear scope for the task—read-only for analysis, workspace-write for edits, network access as a separate explicit permission. Fewer approvals, each one meaningful. The goal isn't to ask about everything. It's to ask about the right things at the right boundaries.

📎 Source: View Source