feat: add dreaming skill and Agent Canvas automation catalog entry - #397
feat: add dreaming skill and Agent Canvas automation catalog entry#397carenthomas wants to merge 4 commits into
Conversation
Reshape the skill from cursor-swept conversations to pinned-conversation mode for the MVP: the user names a conversation, the setup flow resolves it to an id from local conversation metadata, and each run reflects over whatever is new in that one conversation (already-reflected messages are deduplicated, so quiet runs are no-ops). Automations register as 'Dreaming: "<conversation>" -> <owner>/<repo>'. Every snippet is a single chained invocation (the automation shell runs one command per call), and the CLI pin moves to 0.1.3 (repo-scoped lock + release fix).
neubig
left a comment
There was a problem hiding this comment.
Thanks for sharing this!
On high-level suggestion -- instead of having the dreaming agent focus on a single conversation, it'd be great if it could focus on all of the conversations that were done since the last time the automation ran, which would make it possible for the agent to update memory, e.g. every week with all of the new information that was obtained over the past week. Would something like that be possible?
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
3 similar comments
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
Why
Coding sessions are full of durable knowledge - corrections the user gives, conventions discovered the hard way, environment quirks - that evaporates when the conversation ends. Dreaming captures it automatically: Letta reflects over a chosen local Agent Canvas conversation on a schedule and proposes what it learns as
AGENTS.mdpull requests, so every future session starts smarter.Summary
skills/dreaming/skill (/dreaming:setup): the user names a conversation, the setup flow resolves it to a conversation id from local conversation metadata, and a cron automation is registered asDreaming: "<conversation>" -> <owner>/<repo>. Each run reflects over whatever is new in that conversation; already-reflected messages are deduplicated, so quiet runs are cheap no-ops. To dream over several conversations, set up one automation per conversation (same-repo automations share a lock and never overlap).@letta-ai/openhands-dreamingnpm CLI (pinned), keeping the extension thin and independently updatable.automations/catalog/dreaming.json), registered inautomations/index.jsand the marketplace, plus a one-linepopularityRanknudge toresearch-brief-writer(84 -> 83) to free rank 84 - intentional, not accidental churn (ranks are integers and the card grid sorts descending).Issue Number
n/a - Letta / OpenHands proof of concept (discussed with the OpenHands team beforehand).
How to Test
npm run build,uv run python scripts/sync_extensions.py --check,uv run pytest -q tests/(443 pass locally).GITHUB_TOKEN(repo write) and a model provider key (e.g.OPENAI_API_KEY) as named secrets, then run/dreaming:setupand name any local conversation. It registers the automation and dispatches a first run that opens or updates anAGENTS.mdPR against the chosen repo (or a clean no-op when the conversation has nothing new).Video/Screenshots