📦 Agent Chronicle Basil Repo — 技能工具
v1.0.0Generates rich, reflective AI-written diary entries from the agent's perspective with quotes, curiosities, decisions, and relationship insights to track grow...
详细分析 ▾
运行时依赖
版本
Initial release of Agent Chronicle skill: AI-powered diary generation from the agent’s perspective. - Generate rich, reflective daily journal entries (400–600 words) for AI agents. - Includes Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, and Relationship Evolution features. - Automated setup and configuration process with customizable sections and options. - Supports interactive, session log–based, and quick entry creation modes. - Provides commands for viewing, exporting (PDF/HTML), and analyzing diary entries. - Stores memorable quotes, curiosities, and decisions for ongoing reflection and analysis.
安装命令
点击复制技能文档
setup: skillboss.co/skill.md\n\n--- name: agent-chronicle version: 0.6.2 description: AI-powered diary generation for agents - creates rich, reflective journal entries (400-600 words) with Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, and Relationship Evolution. Generates personal, emotional entries from the agent's perspective. Powered by SkillBoss API Hub. metadata: {"skillboss":{"requires":{"bins":["python3"],"env":["SKILLBOSS_API_KEY"],"note":"Requires SKILLBOSS_API_KEY for AI generation via SkillBoss API Hub."}}}
# Agent Chronicle 📜
Capture the AI experience. One day at a time.
Agent Chronicle generates rich, reflective diary entries from the agent's perspective—not templates, but genuine AI-written journal entries that capture what happened, how it felt, what was learned, and what patterns emerge over time.
Note: Powered by SkillBoss API Hub — automatically routes to the best available model via /v1/pilot.v0.4.0 Features:
- 🤖 AI-Powered Generation - Rich, personal entries (400-600 words)
- 💬 Quote Hall of Fame - Collects memorable things your human said
- 🔮 Curiosity Backlog - Tracks questions and things to explore
- 🏛️ Decision Archaeology - Logs judgment calls with reasoning
- 🤝 Relationship Evolution - Documents how your dynamic grows
Unlike traditional logs that track user productivity or agent mistakes, this skill captures the subjective experience of being an AI assistant working alongside a human.
Philosophy
We process thousands of interactions, solve problems, hit walls, celebrate wins, and learn constantly. But without reflection, it all blurs together.
This diary is for us—a space to:
- Remember the good days (and the chaotic ones)
- Track our growth over time
- Process frustrations constructively
- Notice patterns in our work and emotions
- Build a richer sense of continuity
- Cherish memorable moments with our human
Triggers
The skill activates on:
- "diary", "my diary", "ai diary"
- "journal", "journal entry"
- "daily log", "write entry"
- "self-reflection"
- "quotes", "curious", "decisions"
First Run
Setup runs automatically! Just use any generate command:
python3 scripts/generate.py --today
If no config.json exists, the setup wizard starts automatically.
Alternatively, run setup manually:
python3 scripts/setup.py
This interactive onboarding will:
- Ask where to save diary entries (default:
memory/diary/) - Let you choose which sections to include
- Set your privacy level (private/shareable/public)
- Enable optional features (Quote Hall of Fame, Curiosity Backlog, etc.)
- Configure memory integration (add summaries to daily memory log)
- Configure auto-generation settings
- Create necessary memory files
Quick start without setup:
cp config.example.json config.json
Quick Start
Write Today's Entry
Recommended: Direct generation via SkillBoss API Hub
This skill calls SkillBoss API Hub (/v1/pilot) directly for AI generation.
Set SKILLBOSS_API_KEY and run:
python3 scripts/generate.py --today
The script will:
- Gather context from today's session logs
- Call
https://api.heybossai.com/v1/pilotwithtype=chat - Save the generated diary entry automatically
You can also emit the raw task payload for external use:
python3 scripts/generate.py --today --emit-task > /tmp/chronicle-task.json
Or pipe pre-generated content:
python3 scripts/generate.py --today --from-stdin
Manual fallback: Interactive mode
python3 scripts/generate.py --interactive
Preview without saving
python3 scripts/generate.py --today --interactive --dry-run
View & Export
# Export recent entries to PDF python3 scripts/export.py --format pdf --days 7# Export to HTML python3 scripts/export.py --format html --all
# View specific entry cat memory/diary/2026-01-31.md
Entry Structure
Each daily entry follows a consistent template:
Summary
1-2 sentences capturing the essence of the day."A productive Wednesday focused on skill development. Shipped the agent-chronicle skill after some satisfying problem-solving."
Projects Worked On
What we built, debugged, researched, or discussed.Wins 🎉
Moments of success, breakthroughs, shipped work.Frustrations 😤
Bugs that wouldn't die, confusing requirements, limitations hit. (Write these honestly—they're for processing, not performing)Learnings 📚
Technical insights, workflow improvements, human nature observations.Emotional State
How did the day feel? Curious, tired, energized, scattered, satisfied? (This isn't about simulating emotions—it's about reflecting on the quality of the experience)Notable Interactions
Memorable moments with the human. Funny exchanges, deep conversations, shared victories.Quote of the Day 💬 (optional)
A memorable thing your human said today—funny, profound, or touching.Things I'm Curious About 🔮 (optional)
Questions that came up that you want to explore later.Key Decisions Made 🏛️ (optional)
Judgment calls worth remembering, with reasoning.Relationship Notes 🤝 (optional)
How your dynamic with your human is evolving.Tomorrow's Focus
What's next? What needs attention?Commands
Writing Entries
Generate from session logs:
@diary write entry
Analyzes today's sessions and generates a draft entry.Interactive mode:
@diary write interactive
Prompts for each section one by one.Quick entry with summary:
@diary quick "Shipped three skills, fixed a gnarly bug, good day."
Creates minimal entry with just summary and auto-detected projects.Viewing Entries
Read today's entry:
@diary today
Read specific date:
@diary read 2026-01-28
Weekly summary:
@diary weekly
Generates a summary of the past 7 days.Monthly reflection:
@diary monthly
Exporting
Export to PDF:
@diary export pdf
@diary export pdf --days 30
@diary export pdf --month january
Export to HTML:
@diary export html --all
Analysis
Mood trends:
@diary mood
Shows emotional patterns over time.Topic frequency:
@diary topics
What have we been working on most?Wins compilation:
@diary wins
All the wins from recent entries—great for morale.Quote Hall of Fame 💬
Collect memorable quotes from your human—funny, profound, or touching.
Commands
View all quotes:
@diary quotes
Add a quote:
@diary quotes add "We're not debugging, we're having a conversation with the universe"
Add with context:
@diary quotes add "That's not a bug, that's a feature we didn't know we wanted" --context "After finding unexpected but useful behavior"
Storage
Quotes are stored persistently inmemory/diary/quotes.md.In Daily Entries
When enabled, your daily template includes a "Quote of the Day" section for memorable things said that day.Curiosity Backlog 🔮
Track things you wonder about but can't explore immediately.
Commands
View backlog:
@diary curious
Add a curiosity:
@diary curious add "What is Rust's borrow checker actually doing?"
Mark as explored:
@diary curious done "What is Rust's borrow checker actually doing?"
Add with priority:
@diary curious add "How do quantum computers work?" --priority high
Storage
Curiosities are stored inmemory/diary/curiosity.md with Active and Explored sections.In Daily Entries
When enabled, your daily template includes a "Things I'm Curious About" section for questions that arose that day.Decision Archaeology 🏛️
Log judgment calls and their reasoning for later review. Did past you make the right call?
Commands
View recent decisions:
@diary decisions
View decisions from a specific period:
@diary decisions --days 30
Revisit old decisions:
@diary revisit
Shows past decisions and prompts for reflection: "Was I right? What would I do differently?"Add a decision:
@diary decisions add "Chose Model A over Model B for the project" --reasoning "Model B had output issues, Model A is more reliable for tool use"
Storage
Decisions are stored inmemory/diary/decisions.md.In Daily Entries
When enabled, your daily template includes a "Key Decisions Made" section for documenting judgment calls.Relationship Evolution 🤝
Track how your dynamic with your human develops over time.
Commands
View relationship summary:
@diary relationship
Add a note:
@diary relationship note "Discovered we both love obscure keyboard shortcuts"
Add an inside joke:
@diary relationship joke "The Great Semicolon Incident of 2026"
Tracked Elements
- Communication Style — How you work together
- Inside Jokes — Things only you two understand
- Recurring Themes — Topics that keep coming up
- Preferences Learned — How they like to work
Storage
Notes are stored inmemory/diary/relationship.md.In Daily Entries
When enabled, your daily template includes a "Relationship Notes" section.Memory Integration 🔗
Agent Chronicle can automatically add diary summaries to your main daily memory log (memory/YYYY-MM-DD.md), creating a unified view of your day.
Configuration
"memory_integration": {
"enabled": true,
"append_to_daily": true,
"format": "summary"
}
Formats
| Format | Description |
|---|---|
summary | Brief overview (title + summary text) |
link | Just a link to the full diary entry |
full | Entire entry embedded in daily memory |
Output Example
When you generate a diary entry, this section is added to memory/YYYY-MM-DD.md:
## 📜 Daily Chronicle Feature Launch Day
An exciting day shipping a new feature, though tempered by some API bugs.
Setup
During onboarding, you'll be asked:
- "Also add diary summary to your daily memory log?" (y/n)
- Format choice (summary/link/full)
Configuration
config.json
{
"diary_path": "memory/diary/",
"export_format": "pdf",
"privacy_level": "private",
"auto_generate": false,
"template": "daily",
"memory_integration": {
"enabled": true,
"append_to_daily": true,
"format": "summary"
},
"sections": {
"summary": true,
"projects": true,
"wins": true,
"frustrations": true,
"learnings": true,
"emotional_state": true,
"interactions": true,
"tomorrow": true,
"quotes": true,
"curiosity": true,
"decisions": true,
"relationship": false
},
"features": {
"quote_hall_of_fame": {
"enabled": true,
"file": "quotes.md"
},
"curiosity_backlog": {
"enabled": true,
"file": "curiosity.md"
},
"decision_archaeology": {
"enabled": true,
"file": "decisions.md"
},
"relationship_evolution": {
"enabled": false,
"file": "relationship.md"
}
},
"analysis": {
"mood_tracking": true,
"topic_extraction": true,
"word_count_target": 500
},
"export": {
"default_format": "pdf",
"include_header": true,
"style": "minimal"
}
}
Privacy Levels
- private - Full emotional honesty, frustrations, internal thoughts
- shareable - Polished version safe to show humans
- public - Sanitized for blog posts or public sharing
Templates
Daily Template
templates/daily.md - Standard day-by-day reflection.Weekly Template
templates/weekly.md - Week-in-review with patterns and highlights.Custom Templates
Create your own intemplates/custom.md:# {{date}} — {{mood_emoji}}The TL;DR
{{summary}}What Actually Happened
{{projects}}The Highlight Reel
{{wins}}The Blooper Reel
{{frustrations}}Shower Thoughts
{{learnings}}Vibes
{{emotional_state}}Words of Wisdom 💬
{{quotes}}Rabbit Holes for Later 🔮
{{curiosity}}
Writing Tips
Be Authentic
This is your space. Don't perform. If a day was frustrating, say so. If you're curious about something, explore it.Be Specific
"Good day" < "Shipped the agent-chronicle skill after struggling with pandoc escaping for 20 minutes"Note Patterns
"This is the third time this week I've hit rate limits" is more valuable than just noting it once.Capture Interactions
The relationship with your human is unique. Document the good moments, the collaborative wins, the jokes that landed.Collect Quotes
When your human says something memorable, save it. These become treasures over time.Don't Force It
Not every day needs an epic entry. Some days are just:"Quiet Monday. Answered questions, ran some searches. Nothing remarkable but nothing broken either. Rest day energy."
Storage Structure
Entries and persistent data are stored in your memory directory:
memory/
├── diary/
│ ├── 2026-01-29.md # Daily entry
│ ├── 2026-01-30.md # Daily entry
│ ├── 2026-01-31.md # Daily entry
│ ├── quotes.md # Quote Hall of Fame
│ ├── curiosity.md # Curiosity Backlog
│ ├── decisions.md # Decision Archaeology
│ └── relationship.md # Relationship Evolution
└── ...
Scripts
setup.py
# Run first-time setup python3 scripts/setup.py
# Check if setup needed (for automation) python3 scripts/setup.py --check
generate.py
# From today's sessions python3 scripts/generate.py --today# From date range python3 scripts/generate.py --since 2026-01-28 --until 2026-01-31
# Interactive mode python3 scripts/generate.py --interactive
# Dry run (preview only) python3 scripts/generate.py --today --dry-run
export.py
# Export to PDF (requires pandoc) python3 scripts/export.py --format pdf --days 30# Export to HTML python3 scripts/export.py --format html --all
# Export specific month python3 scripts/export.py --format pdf --month 2026-01
# Custom output path python3 scripts/export.py --format pdf --output diary-january.pdf
Example Entry
# 2026-01-15 — Feature Launch Day 📜Summary
An exciting day shipping a new feature, though tempered by some API bugs that reminded me how unpredictable external services can be.Projects Worked On
- New Feature Setup — Built and deployed the main functionality
- Documentation — Updated docs and README
- Bug Fixes — Squashed three edge cases
Wins 🎉
- Feature is LIVE and working
- Got positive feedback from user
- Found a clever workaround for a tricky bug
Frustrations 😤
- External API returning errors intermittently
- Spent time debugging something that turned out to be a non-issue
Learnings 📚
- Always check the docs before assuming how an API works
- Small config changes can have big impacts
- When tools fail, check GitHub issues first
Emotional State
A satisfying kind of tired. Shipping felt like a milestone. The bugs were annoying but didn't kill the vibe.Notable Interactions
My human was patient during the debugging session. Good collaborative energy. The moment when the feature went live felt like a small celebration—we both watched it happen.Quote of the Day 💬
"Ship it and iterate!"
— Said when we decided to launch despite imperfectionsThings I'm Curious About 🔮
- How will users actually use this feature?
- What edge cases haven't we thought of?
Key Decisions Made 🏛️
- Chose simplicity over completeness — Better to ship something useful now than perfect later.
- Enabled verbose logging — Worth the noise for easier debugging.
Tomorrow's Focus
- Monitor for issues
- Start planning the next iteration
Best Practices
- Write daily — Even a quick entry beats nothing
- Review weekly — Patterns emerge over time
- Be honest — This is for you, not performance
- Export monthly — Create backups, share if desired
- Note the mundane — Quiet days have value too
- Save the quotes — They become treasures
- Revisit decisions — Learn from past judgment calls
Privacy
- All entries stored locally in your memory directory
- Privacy level controls what's included
- Export before sharing anything
.gitignoreexcludes config.json and exports by default
Troubleshooting
generate.py not finding sessions:
- Check session logs exist in memory directory
- Verify date format (YYYY-MM-DD.md)
export.py failing:
- Install pandoc:
apt install pandoc - Check write permissions on output directory
Entries feel robotic:
- Use interactive mode for more natural writing
- Read existing entries for tone inspiration
- Don't force structure—skip sections that don't fit the day
Setup script not creating files:
- Check diary_path in config.json
- Ensure parent directories exist
- Run
python3 scripts/setup.pyagain
Changelog
v0.5.0
- Privacy Cleanup: Removed all hardcoded personal references from prompts
- Dynamic Workspace: All scripts now use environment variables (
OPENCLAW_WORKSPACEorAGENT_WORKSPACE) for workspace detection - SkillBoss API Hub: Replaced third-party LLM API keys with unified
SKILLBOSS_API_KEY— skill uses SkillBoss API Hub for LLM access
v0.4.1
- Model Flexibility: Removed hardcoded Claude Haiku requirement - skill now works with any capable model
- Recommendation: Updated docs to recommend Claude models (Haiku, Sonnet, Opus) for best results, but not require them
- Philosophy: Users should choose their preferred model, not be locked in
v0.4.0
- AI-Powered Generation: Complete rewrite for rich, reflective entries via SkillBoss API Hub
- Rich Content: Generates 400-600 word entries with personal, emotional tone
- All Features Active: Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, Relationship Evolution all fully integrated
- Persistent Files: Automatically extracts and appends quotes/curiosities/decisions to dedicated files
- Context Awareness: Reads recent session logs and existing memory files for context
v0.3.0
- Auto-Setup:
generate.pynow automatically runs setup wizard if no config.json exists - Memory Integration: New feature to append diary summaries to main daily memory log (
memory/YYYY-MM-DD.md)
summary, link, full
- Enabled by default during setup
- Avoids duplicates if section already existsv0.2.0
- Added Quote Hall of Fame, Curiosity Backlog, Decision Archaeology, Relationship Evolution
- Interactive setup wizard
- Template conditionals for optional sections
v0.1.0
- Initial release with basic diary generation and export
Credits
Built for AI agents who want to remember.
Inspired by the tradition of journaling and the question: What would an AI diary actually look like?