hermes-agent/agent
teknium1 1b8a1c7d5e fix: handle multimodal content in context compression summarization
The _generate_summary() method assumed message content is always a
string (msg.get('content') or ''). When content is a multimodal list
(e.g. [{type: 'text', text: '...'}, {type: 'image_url', ...}]), this
produced mangled output: len() returned the list length instead of
character count, and slicing produced list items instead of substrings.

Add _content_to_text() helper that safely converts any content format
to plain text:
- str → returned as-is
- None → empty string
- list (multimodal) → text parts joined, images replaced with [image]
- dict/other → JSON serialization with str() fallback

This ensures multimodal conversations compress correctly instead of
producing garbled summaries.

Inspired by PR #776 by @kshitijk4poor.
2026-03-11 05:42:31 -07:00
..
__init__.py Refactor Terminal and AIAgent cleanup 2026-02-21 22:31:43 -08:00
auxiliary_client.py fix: vision auto-detection now falls back to custom/local endpoints 2026-03-09 15:36:19 -07:00
context_compressor.py fix: handle multimodal content in context compression summarization 2026-03-11 05:42:31 -07:00
display.py fix: replace silent exception swallowing with debug logging across tools 2026-03-10 06:59:20 -07:00
insights.py chore: add GLM/Kimi/MiniMax models to insights pricing (zero cost) 2026-03-06 19:12:14 -08:00
model_metadata.py chore: add context lengths for Kimi and MiniMax models 2026-03-06 19:01:38 -08:00
prompt_builder.py fix: replace silent exception swallowing with debug logging across tools 2026-03-10 06:59:20 -07:00
prompt_caching.py Refactor Terminal and AIAgent cleanup 2026-02-21 22:31:43 -08:00
redact.py Merge PR #713: docs: clarify Telegram token regex constraint 2026-03-10 16:59:54 -07:00
skill_commands.py feat: platform-conditional skill loading + Apple/macOS skills 2026-03-07 00:47:54 -08:00
trajectory.py Refactor Terminal and AIAgent cleanup 2026-02-21 22:31:43 -08:00