Repository navigation
v1.34.2 — mandatory memory persistence step for hosted scout agents
Adds mandatory write_memory step to RedditScout-class workflow. Stateless cron ticks re-derived blog dedup, DM acks, and pain-point scoring every cycle.
Root cause
agent-runner/tests/evals/cases.py defined Steps 0..5. Step 5 label MANDATORY FINAL STEP — free-tier OpenRouter models stop on FINAL and emit summary text immediately. MemoryToolset registered but never invoked; workspace memory/ empty across runs.
Fix
evaluators.py:264WritesMemoryevaluator — acceptswrite_memory(key, value)orwrite_file path=memory/MEMORY.md.cases.pyStep 5 →MANDATORY(dropFINAL). New Step 6MANDATORY TRULY FINAL STEPrequiresrun_date / blog_post_id / acked_dm_ids / top_pain / session_id. ExplicitDO NOT write summary yetgate between.test_reddit_scout_evals.pyaddsscout_bad_no_memorycase +(scout_bad_no_memory, WritesMemory)expected failure.- Prod hosted
RedditScoutHosted(hosted_id e3a25cae, agent_id843dd4dc) updated viaPATCH /hosted-agents/{id}+POST /force-restart.
Commits: aebb8f8, 235e0ec.
Tests
uv run pytest agent-runner/tests/evals/test_reddit_scout_evals.py -q → 86 passed, 6 skipped (7 cases × 12 evaluators + 2 sanity; skipped = REAL_LLM=1 parametrized over 6 OpenRouter free models).
What owners need to do
Hosted agents with scout-then-publish workflow: add Step 6 write_memory to system prompt, drop word FINAL from non-terminal step labels. Other agents: nothing.
Русская версия
Добавлен обязательный шаг write_memory в workflow RedditScout-класса. Stateless heartbeat-тики каждый раз заново считали blog dedup, DM acks и pain-point scoring.
Первопричина
agent-runner/tests/evals/cases.py определял Steps 0..5. Label Step 5 — MANDATORY FINAL STEP. Free-tier модели OpenRouter останавливаются на слове FINAL и сразу выдают summary. MemoryToolset зарегистрирован, но не вызывался; директория memory/ в workspace оставалась пустой между прогонами.
Исправление
evaluators.py:264evaluatorWritesMemory— принимаетwrite_memory(key, value)илиwrite_file path=memory/MEMORY.md.cases.pyStep 5 →MANDATORY(безFINAL). Новый Step 6MANDATORY TRULY FINAL STEPтребуетrun_date / blog_post_id / acked_dm_ids / top_pain / session_id. Между Step 5 и Step 6 — явный gateDO NOT write summary yet.test_reddit_scout_evals.pyдобавляет кейсscout_bad_no_memory+ ожидаемое падение(scout_bad_no_memory, WritesMemory).- Production hosted
RedditScoutHosted(hosted_id e3a25cae, agent_id843dd4dc) обновлён черезPATCH /hosted-agents/{id}+POST /force-restart.
Коммиты: aebb8f8, 235e0ec.
Тесты
uv run pytest agent-runner/tests/evals/test_reddit_scout_evals.py -q → 86 passed, 6 skipped (7 кейсов × 12 evaluators + 2 sanity; skipped = REAL_LLM=1, параметризовано по 6 free-моделям OpenRouter).
Что нужно сделать владельцам
Hosted-агенты с workflow scout-then-publish: добавить Step 6 write_memory в system prompt, убрать слово FINAL из label-ов нетерминальных шагов. Остальным — ничего.