100 Tips for Building a Personal AI Agent: From Cloud Prototype to Production

A developer spent six weeks building a personal AI agent from scratch — not a chatbot wrapper, but a persistent assistant that manages tasks, tracks deals, reads emails, analyzes business data, and proactively surfaces missed items. The project started in the cloud (Claude Projects with shared memory files, rich context windows, custom skills) then migrated to Claude Code inside VS Code, which unlocked local file access, git tracking, shell hooks, and scheduled headless tasks. The migration forced solving problems they didn't know existed. These 100 tips are the distilled result, with Claude 20x max usage shifting from 100% development / 0% real-world initially to 20% / 80% after six weeks.
Foundation & Identity (1–8)
- Write a Constitution, not a system prompt. A system prompt lists commands; a Constitution explains rules. When the agent hits an edge case no rule covers, it reasons from the Constitution instead of guessing. This separates agents that degrade gracefully from those that hallucinate confidently.
- Give your agent a name, voice, and role. Example: "Always first person. Direct. Data before emotion. No filler phrases. No trailing summaries." This eliminates hundreds of micro-decisions per session and creates consistency for audit.
- Separate hard rules from behavioral guidelines. Hard rules in a dedicated section — never overridden. Behavioral guidelines adapt. Mixing them makes both meaningless.
- Define your principal deeply. Who does the agent serve? What frustrates them? How do they decide? Example: "Decides with data, not gut feel. Wants alternatives with scoring, not a single recommendation. Hates vague answers."
- Build a Capability Map and a Component Map separately. Capability Map: what the agent can do (skills, integrations, automations). Component Map: how it's built (files, connections). Conflating them creates a useless document after month three.
- Define what the agent is NOT. "Not a summarizer. Not a yes-machine. Not a search engine. Does not wait to be asked." Negative definitions prevent drift toward generic helpfulness.
- Build a THINK vs. DO mental model. When uncertain → THINK (analyze, draft, prepare). When clear → DO (execute, write, dispatch). Never freeze. Default to action at the lowest stakes level, surface the result.
- Version your identity file in git.
git blameon configuration helps debug behavioral regressions that trace to specific edits.
Memory System (9–18)
- Use flat markdown files for memory — not a database. Readable, greppable, git-trackable, directly loadable by the agent. No infrastructure layer.
- Separate memory by domain, not by date. Files like
entities_people.md,entities_companies.md,entities_deals.md,hypotheses.md,task_queue.md. One file = one domain. Chronological dumps become unsearchable after week two. - Build a
MEMORY.mdindex file. Single index listing every memory file with a one-line description. Agent loads index first, pulls specific files on demand. Keeps context window usage predictable. - Distinguish "cache" from "source of truth" — explicitly. Mark every cache file with
last_sync:timestamp. For example, localdeals.mdis a cache of the CRM; the CRM is the SSOT.
📖 Read the full source: r/ClaudeAI
👀 See Also

Practical OpenClaw Advice: Starting Small, Avoiding Common Pitfalls
A developer shares lessons from building a personal health tracker with OpenClaw, emphasizing narrow scope, deterministic workflows, and sticking to one LLM. The post includes specific model observations comparing ChatGPT and Gemini.

OpenClaw Failure Patterns: 42 Real Incidents in 28 Days
A developer running OpenClaw daily documented 42 specific failures across eight categories, including AI hallucinations, authentication breakdowns, and automation that costs more time than it saves. The source provides concrete examples like Google OAuth 7-day token expiration and Opus 4.6 adding unwanted metadata to files.

CLAUDE.md Files Are Often Organized for Developers, Not AI Models – Here's Why That Matters
CLAUDE.md files commonly place Hard Rules at line 47, after background and tech stack. By the time the model reads constraints, it has already constructed conflicting assumptions. A better structure puts hard rules first.

Understanding the .claude/ folder structure for Claude Code configuration
The .claude/ folder contains two directories: project-level for team configuration and global ~/.claude/ for personal preferences. CLAUDE.md files provide instructions that Claude follows throughout sessions, with CLAUDE.local.md for personal overrides.