DeepSeek Harness Bluebook
Getting Started

Prompting Tips

A practical guide to giving the agent tasks in natural language: the task formula, small iterations, planning first, approvals and corrections

You don't need any special syntax to give the agent a task — natural language is enough. But the clearer your description, the less back-and-forth and rework the agent causes. This page breaks effective prompting into a few points that apply whether you are doing Vibe Coding or office work.

The task formula: goal + context + definition of done

A good prompt has three parts:

  • Goal: the result you want to achieve;
  • Context: key information the agent needs, such as file paths, commands and error messages;
  • Definition of done: exactly what counts as finished — the more specific, the better.

The agent's view is the workspace plus your description, so writing all three parts down cuts down on repeated clarification.

Vague vs concrete

❌ "Help me optimize my project" — no scope, so the agent keeps guessing. ✅ "Running pnpm test fails with an error in src/parser.ts; locate the cause, fix it, and make the tests pass" — command, file and acceptance criteria are all clear.

  • Coding: "Extract the duplicated code in this script into a function, keep the behavior unchanged, and run the tests to confirm it passes"
  • Office work: "Merge the 20 meeting notes under notes/ into one weekly report, grouped by topic, max 100 words per section, output to weekly-report.md"

Iterate in small steps

Doing one thing at a time and verifying right away is steadier than dumping one big task:

  • One thing at a time: break the big task into small steps and move forward gradually;
  • Verify immediately: check the output files or results after each step;
  • Let the agent verify: have the agent run tests or builds to confirm its own changes work, instead of checking for it.

Plan first

Don't start a complex task immediately — ask the agent to lay out a plan before executing. The agent maintains a plan; you can ask it to show or explain the current plan at any time, and only let it proceed once the direction looks right. This costs little and prevents it from working hard in the wrong direction for a long time.

Communicating through approvals

Before the agent performs sensitive actions like writing files or running commands, the Web UI raises an approval request. Approval isn't just a passive yes/no — you can communicate:

  • Ask first when unclear: have the agent explain what it is about to do and why before you decide;
  • Analysis-only is an option: reject an uncertain write action and ask it to analyze only, without changing files;
  • Reject a specific step: tell it which step to skip or how to change it, and it will continue from your feedback.

Correcting and continuing

When unsatisfied, continue the conversation from the current state instead of starting over every time:

  • Say exactly what is wrong: whether the direction is off or a specific file was changed incorrectly — point it out rather than just saying "wrong";
  • Ask the agent to keep editing the existing files instead of redoing everything.

Use skills and goals

Two things amplify your prompts:

  • Skills: reusable instruction packages loaded on demand that make the agent follow a domain's best practices — for example the code-review skill reviews changes by review standards;
  • Goals: a persistent completion objective attached to the session, suited to long-running tasks across multiple rounds; a single natural-language request creates one and the agent advances it automatically.

See skills & goals for both.

Common anti-patterns

Avoid these

  • Vague goals: "optimize it" has no direction;
  • Asking for too much at once: piling a dozen changes into one request makes verification hard;
  • No definition of done: the agent can't tell when it's finished, so it guesses;
  • Auto-approving sensitive operations: approvals are the last line of defense — don't blindly "allow all".

Next steps

On this page