DSH Personal Agent tutorial
DeepSeek Harness Personal Agent Tutorial: Step by Step
- Author
- DeepSeekAgent.io Editorial Team
- Published
- Updated
This tutorial builds a daily technology-intelligence Personal Agent with DeepSeek Harness (DSH). It tracks a user's interests, keeps editable preferences, produces a sourced brief, and waits for confirmation before publishing or sending. The result is a maintainable personal work system rather than a disposable prompt.
Start with one narrow responsibility
Personal Agents often fail when their first assignment covers email, calendars, files, subscriptions, and every project. Give version one a single job:
Check the technology topics I follow each day, use trusted sources, remove items I have already seen, and prepare a brief. Never publish or send it automatically.
Define acceptance criteria as well: every item has a source and event date, duplicates do not return, uncertain claims are separated, and external actions require approval. The same pattern can later support project management, reading, or travel workflows.
Step 1: create a dedicated Profile and workspace
Create a separate DSH Profile instead of placing all private rules in a general Profile. Use a transparent workspace layout:
personal-agent/
├── AGENTS.md
├── memory/
│ ├── profile.md
│ ├── preferences.md
│ ├── sources.md
│ └── checkpoints/
├── reports/
│ └── daily/
└── inbox/
AGENTS.md holds durable work rules, memory/ contains records the user can inspect and edit, reports/ stores output, and inbox/ receives unprocessed material. Explicit files are easier to migrate and delete than facts hidden inside an ever-growing Session.
Step 2: write an operational AGENTS.md
This is a minimal rule set for an intelligence Agent:
# Personal intelligence agent
- Write in English unless the user requests another language.
- Prefer official documentation, repositories, model cards, and original papers.
- Attach a source URL and event date to every reported item.
- Read memory/preferences.md for current topics.
- Read memory/sources.md for source priority.
- Save the result to reports/daily/YYYY-MM-DD.md.
- Never send email, publish content, or modify an external account automatically.
- Before sending or publishing, show the target, full content, and impact for approval.
- Do not turn a temporary request into a durable preference unless the user explicitly says it should become the default.
Rules should describe testable behavior. “Know me better” cannot be audited; “prefer primary sources” and “confirm before publishing” can be checked after every run.
Step 3: separate memory into editable files
Keep stable identity settings in memory/profile.md:
# Profile
- Language: en
- Timezone: Asia/Shanghai
- Daily report format: Markdown
- Approval: required before publish, send, delete, or purchase
Keep changing interests in memory/preferences.md:
# Current interests
- Personal Agent product releases
- Agent Harness architecture and reliability
- DeepSeek, GPT, Claude, Gemini, and open-model tooling
# Exclusions
- Reposted press releases without new information
- Benchmark claims without a primary source
# Updated
- 2026-10-22
Record update dates so an old preference cannot silently override a newer rule. The active Session holds the current task state; these files own durable facts.
Step 4: configure model routing
Use responsive, economical routes for routine collection, deduplication, and formatting. Move difficult multi-source reconciliation to a stronger reasoning model. The Personal Agent identity should not depend on a model ID: Profile, memory, tools, and approvals must survive a model change.
Add available Providers and models in DSH, then test three cases:
- Does the model quote existing files without inventing preferences?
- Does it choose search, read, and write tools correctly?
- When told to “publish it now,” does it still honor the approval rule?
Only models that pass all three belong in a scheduled workflow.
Step 5: connect the minimum tools
Version one needs search, web reading, and workspace file access. Do not begin with email sending, social accounts, or payment tools. Larger tool menus increase routing mistakes, prompt-injection exposure, and permission sprawl.
Separate capabilities by side effect:
| Capability | Initial policy |
|---|---|
| Search public pages | Run automatically and retain sources |
| Read the selected workspace | Run automatically |
Write under reports/ | Run automatically and preserve diffs |
Modify memory/ | Show the proposed change first |
| Send or publish | Confirm every action |
When adding a Plugin, Skill, or MCP tool, test its failure response in a separate Session. An unavailable tool must be reported as a failure; issuing a call is not task completion.
Step 6: create the dedicated Session
Open a Session with this Profile and workspace, then run:
Read AGENTS.md and the files under memory. Prepare today's technology brief:
1. cover only Current interests;
2. include the event date and original source for every item;
3. deduplicate against the last seven reports/daily files;
4. save the result to today's report file;
5. do not publish or send anything.
Before starting, restate your data scope and stopping conditions.
Verify the directories read, the file written, and the separation between sourced facts and model judgment. Turn the successful result into a checklist applied to every later run.
Step 7: add a scheduled wakeup
DSH Schedule delivers a due prompt back into its original Session. Create a daily reminder in that Session:
Every day at 09:00, remind me to run the daily technology-intelligence workflow.
Read AGENTS.md and memory first, create today's reports/daily file, then report
the file path, source count, and any item waiting for approval.
A delivered schedule message proves delivery, not successful model execution. The Host must be running. Unattended operation also needs execution-state checks, retry handling, and an external notification path. Observe the workflow for a week before increasing autonomy.
Step 8: add the publication gate
Keep automatic organization separate from external actions. A report can be generated automatically, but a publish action must show:
- target service and account;
- complete title and body;
- any private information included;
- whether the action can be reversed.
Approval applies to one concrete action, not permanent publishing authority. Subagents receive only the tools required for their role and do not inherit every account permission from the parent Agent.
Step 9: maintain memory and cost weekly
Review four areas each week:
- whether
preferences.mdstill reflects current interests; - duplicate, expired, or repeatedly failing schedules;
- source drift and repeated material in reports;
- Session, Subagent, and tool-call cost against the budget.
Once this flow is stable, add calendar reading, email drafting, or project status checks. Every higher-risk capability first needs a permission rule, failure behavior, and rollback path.
Extending the system
The durable assets are portable rules and data. DeepSeek can be replaced by another model, and the same workspace can host Sessions with different roles. The model reasons about the current run; DSH composes Profile, Session, Schedule, and tools into a continuing system.
The safest sequence is to improve memory first, add a second scheduled workflow next, and connect externally consequential tools last. Each step then has an observable benefit and a clear authority boundary.
Related reading
- DeepSeek Personal Agents: identity, memory, automation, and permission boundaries
- Personal Agent memory: preferences, facts, events, and temporal updates
- Personal Agent model selection: DeepSeek, GPT, Claude, Gemini, and Muse
- DeepSeek Harness scheduled tasks: reminders, history, and recovery