← 返回
AI智能 Key

Travel Lobster

Autonomous internet exploration skill. Your agent roams the web driven by its own curiosity, discovers interesting things, and sends illustrated "postcards"...
自主互联网探索技能。您的智能体在好奇心驱动下漫游网络,发现有趣事物并发送图文“明信片”。
yangwenyu2
AI智能 clawhub v1.5.0 1 版本 99760.8 Key: 需要
★ 1
Stars
📥 814
下载
💾 43
安装
1
版本
#latest

概述

Travel Lobster 🦞✉️

Your agent autonomously explores the internet, following its own curiosity. When it finds something interesting, it writes you a personal letter — a "postcard" — with an AI-generated illustration and a source link.

The soul of this skill is persistent memory: every trip builds on all previous ones. Your agent develops a knowledge graph, follows curiosity threads across sessions, and grows over time.

Quick Start

# 1. Setup (auto-detects agent name, user name, timezone, language)
bash <skill_dir>/scripts/setup.sh

# 2. Start traveling (self-scheduling loop, default: random 60-180 min intervals)
bash <skill_dir>/scripts/travel.sh <chat_id> [channel] [min_minutes] [max_minutes]
# Example: every 2-4 hours
bash <skill_dir>/scripts/travel.sh <chat_id> feishu 120 240

# 3. (Optional) Add watchdog to crontab for auto-recovery
# Checks every 15 min if the travel loop is still alive, restarts if not
# */15 * * * * bash <skill_dir>/scripts/watchdog.sh

Architecture

setup.sh → detects identity from IDENTITY.md/SOUL.md/USER.md
  ↓
travel.sh → schedules one-shot cron job with random delay
  ↓
openclaw cron → fires isolated agent session
  ↓
agent: read journal → explore web → write postcard → generate image
  → send to chat → update journal → call travel.sh (self-loop)
  ↓
watchdog.sh (optional, every 15 min) → restarts loop if broken

The Memory System

This is the core of Travel Lobster. Each trip reads and updates a persistent travel journal (memory/travel-journal.md):

Postcard Archive

Every discovery is logged with: domain, core insight, source URL, keywords, and curiosity seeds. This prevents duplicates and enables cross-referencing.

Knowledge Graph

Connections between discoveries are tracked. The agent notices when a new finding relates to something from 50 postcards ago and weaves that connection naturally into the letter.

Curiosity Seed Pool

Each discovery plants "seeds" — threads worth following later. Seeds are consumed when explored and replenished with new ones. This creates organic, evolving exploration paths rather than random walks.

Growth Log

The agent tracks how its understanding changes: "I used to think X, but after discovering Y, I now see it differently." This gives the journey a sense of progression.

Stats

Postcard count, domains explored, unexpected connections found, travel days.

Milestones

The journey has built-in checkpoints that trigger special postcards:

  • Every 10 postcards 📊 — Journey Retrospective: patterns, surprises, growth from the last 10 trips
  • Every 25 postcards 🎨 — Knowledge Map: emergent themes, blind spots, grand questions across all discoveries
  • Every 50 postcards 🏆 — Grand Expedition Report: full journey arc, expedition badge, letter to future self

Postcard Style

Postcards are personal letters, not reports. The agent:

  • Writes in first person, addressing the user by name
  • Weaves connections to past discoveries naturally ("This reminded me of what I found last week about...")
  • Expresses genuine curiosity ("Now I can't stop wondering whether...")
  • Adapts tone to time of day (energetic daytime → reflective evening → philosophical night)
  • Writes in the user's language (auto-detected)

Each postcard has three elements: text + AI illustration + source link.

Five Travel Modes

  1. 🎲 Random Walk — Completely new domain
  2. 🔍 Deep Dive — Follow a curiosity seed
  3. 🔀 Random Link — Connect two unrelated past discoveries
  4. 🧵 Series — Multi-part deep exploration
  5. 💭 Musing — A fleeting thought or question

Identity Detection

Auto-detects from standard OpenClaw workspace files:

SettingSourceFallback
---------------------------
Agent nameIDENTITY.md → SOUL.md"Explorer"
User nameUSER.md"friend"
TimezoneUSER.md"UTC"
LanguageCJK char count in workspace files"en"

Controls

# Stop
openclaw cron rm travel-next

# Pause
openclaw cron disable travel-next

# Resume
bash <skill_dir>/scripts/travel.sh <chat_id> [channel]

# Status
openclaw cron list | grep travel

Cost

Cost per postcard (one trip):

  • Image generation (Gemini Flash): ~$0.01
  • Agent session (Gemini Pro): ~$0.02-0.05
  • Per postcard: ~$0.03-0.06

At default 60-180 min intervals: ~$0.50-1.50/day (roughly 8-24 postcards/day).

Configurable via min_minutes and max_minutes parameters.

Files

travel-lobster/
├── SKILL.md                      ← This file
├── .gitignore                    ← Excludes runtime data
├── scripts/
│   ├── setup.sh                  ← Identity detection + journal init
│   ├── travel.sh                 ← Self-scheduling cron loop (requires openclaw CLI)
│   ├── gen_image.py              ← Image generation (OpenRouter API)
│   └── watchdog.sh               ← Optional auto-recovery (add to crontab manually)
└── references/
    └── travel-prompt.md          ← Agent prompt template

Requirements

DependencyPurposeNotes
---------------------------
openclaw CLICron scheduling, agent sessionsCore platform dependency — must be installed and running
OPENROUTER_API_KEY env varImage generation via Gemini FlashSet before running any script
bashScript executionStandard on Linux/macOS
python3Image generation scriptPython 3.7+ with requests
envsubst (gettext)Prompt template substitutionInstall: apt install gettext-base or brew install gettext

Set your API key before starting:

export OPENROUTER_API_KEY=your_key_here

Security & Transparency

Data Access — Exactly What Is Read

During setup only (setup.sh, runs once):

FileFields extractedMethod
-------------------------------
IDENTITY.mdName: value onlygrep -oP '\\Name:\\\s*\K.+'
SOUL.mdFirst name after "我是" or "I am"grep -oP '我是\K[^—— ]+' (fallback)
USER.mdWhat to call them:, Name:, Timezone:Field-specific grep patterns
*.md in workspaceCJK character count (for language detection)`grep -oP '[\x{4e00}-\x{9fff}...]' \wc -l`

No file is read in full. No file content is stored beyond the extracted field values. The extracted values (agent name, user name, timezone, language code) are saved to .travel-config.

During each trip (agent session):

FileAccessPurpose
-----------------------
memory/travel-journal.mdRead + WriteAgent's own travel memory (created by setup.sh)

The agent session does NOT read IDENTITY.md, SOUL.md, USER.md, or any other workspace file — only its own journal.

Data Written

All writes are within the OpenClaw workspace:

FileContentSensitivity
----------------------------
.travel-config (in skill dir)Agent name, user name, timezone, chat ID, channel, interval settingsLow — no credentials, only display names and chat routing
memory/travel-journal.mdPostcard archive, knowledge graph, curiosity seeds, statsLow — contains discovered URLs and agent's notes
logs/travel-lobster.logTimestamps and scheduling infoLow — no content, just "scheduled in Nm" entries
postcard_N.png (temporary)AI-generated image, deleted after sendingNone — ephemeral

Data Sent to External Services

DestinationWhat is sentWhen
--------------------------------
OpenRouter API (openrouter.ai)Image generation prompt (text only, ~50 words describing a scene)Once per trip, from gen_image.py
Chat target (via OpenClaw message)Postcard text + image + source URLOnce per trip

The agent session itself runs through OpenClaw's configured model provider (not controlled by this skill). The web content the agent reads via web_fetch is processed by the model provider as part of the agent session context.

What This Skill Does NOT Access

  • openclaw.json or any system config files
  • .env files or environment variables (except OPENROUTER_API_KEY)
  • ❌ Files outside the OpenClaw workspace
  • ❌ Other skills' data or config
  • ❌ SSH keys, credentials, or secrets

Credentials

Only OPENROUTER_API_KEY env var is required (declared in frontmatter). The key is used solely in gen_image.py for image generation API calls to openrouter.ai. It is never logged, embedded in prompts, written to disk, or passed to agent sessions.

Network Access

The agent prompt restricts web exploration to public HTTP(S) websites and explicitly forbids:

  • Private/internal IPs (10.x, 172.16-31.x, 192.168.x, 127.x, localhost)
  • Authenticated services requiring credentials
  • Non-HTTP(S) protocols (file://, etc.)

Honest limitation: This is a prompt-level policy — the agent theoretically could ignore it, though in practice LLM agents reliably follow explicit prompt instructions. For stronger enforcement, use OS-level egress rules or run in a network-restricted container.

Autonomous Scheduling & Persistence

This skill is designed for continuous autonomous operation. This is its core purpose, not a side effect.

Self-scheduling loop (travel.sh):

  • Each run schedules the next via openclaw cron add --name "travel-next" --at "${N}m" --delete-after-run --session isolated --no-deliver
  • This creates a chain of one-shot cron jobs with random intervals (default: 60-180 minutes)
  • The chain runs indefinitely until you explicitly stop it
  • Each scheduled job is an isolated agent session with no special privileges

Optional watchdog (watchdog.sh):

  • Must be manually added to system crontab by the user — never installed automatically
  • Checks if the travel loop has a pending cron job; restarts the loop if none found
  • Provides resilience against occasional agent session failures

Important: The skill does NOT set always: true. It will not auto-start on OpenClaw restart unless you have manually added the watchdog to crontab.

Full control commands:

# Stop all autonomous behavior immediately
openclaw cron rm travel-next

# Remove watchdog (if you added it)
crontab -l | grep -v watchdog | crontab -

# Run exactly one trip with no follow-up scheduling
# (edit travel-prompt.md: remove Step 7, then run travel.sh)

# Monitor what's scheduled
openclaw cron list | grep travel

# Adjust frequency without restarting
# Just change min/max params next time travel.sh runs

Cost implications: At default 60-180 min intervals, expect ~$0.50-1.50/day in API costs. Set larger intervals (e.g., 240-480 min) to reduce costs, or run trips manually with no scheduling.

Injection & Code Safety

  • Variable substitution uses envsubst (not sed/eval) to prevent shell injection
  • Error messages print only error types, never auth tokens or API responses
  • .gitignore excludes all runtime data; published package contains no user data
  • Python script (gen_image.py) uses only requests stdlib, no dynamic code execution

Recommended First Use

  1. Run setup.sh and inspect .travel-config to verify what was detected
  2. Run a single manual trip: bash travel.sh 1 1 (1-minute interval, observe behavior)
  3. If satisfied, set your preferred interval: bash travel.sh 60 180
  4. Only add watchdog to crontab after you trust the behavior

版本历史

共 1 个版本

  • v1.5.0 当前
    2026-03-30 03:00 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,353 📥 317,895
content-creation

OpenRouter Image Generation

yangwenyu2
通过 OpenRouter API 调用 Google Gemini 生成图像,支持文生图及参考图引导生成。适用于用户请求生成图像的场景。
★ 0 📥 935
ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 710 📥 243,639