viking_remember AttributeError
🤖
🔐 概要
OpenViking v0.4.4 において、Hermes Agent の viking_remember ツールが AttributeError で失敗する不具合。
原因は str と enum の型不一致。content_write.py 内で ctx.role が Role 型の enum 値を返す箇所で、
role=ctx.role.value とすべきところを role=ctx.role としており、後続の処理で型エラーが発生していた。
📁 技術詳細
発生箇所: openviking/storage/content_write.py
原因: ctx.role が Role 型 (enum) なのに str として扱われていた
修正: role=ctx.role.value → role=getattr(ctx.role, 'value', ctx.role)
PR: #2728 (v0.4.4 未収録)
🔖 影響
viking_remember がエラーを返し、Hermes から明示的な記憶保存ができなかった。
その他の viking_* ツール (search, read, browse, forget) は正常動作。
📋 対応と経緯
2026/06/20 : メモリプロバイダー移行時に発見
一時的にソース修正を試みたが、公式コードの直接編集は行わない方針に。
Hermes 標準メモリで代替運用(viking_remember 不使用)。
2026/07/07: Docker 移行により修正済みイメージ (ghcr.io/volcengine/openviking:latest) を使用開始。
2026/07/07_OpenVikingのDocker移行記録
Docker 版では viking_remember が正常動作することを確認。
📖 参照
2026-06-20 OpenViking メモリプロバイダー移行
OpenVikingのDocker乗り換え案
2026/07/07_OpenVikingのDocker移行記録