refactor(honcho): rename recallMode "auto" to "hybrid"
Matches the mental model: hybrid = context + tools, context = context only, tools = tools only.
This commit is contained in:
parent
6782249df9
commit
c1228e9a4a
4 changed files with 10 additions and 10 deletions
|
|
@ -147,13 +147,13 @@ def cmd_setup(args) -> None:
|
||||||
cfg["writeFrequency"] = new_wf if new_wf in ("async", "turn", "session") else "async"
|
cfg["writeFrequency"] = new_wf if new_wf in ("async", "turn", "session") else "async"
|
||||||
|
|
||||||
# Recall mode
|
# Recall mode
|
||||||
current_recall = cfg.get("recallMode", "auto")
|
current_recall = cfg.get("recallMode", "hybrid")
|
||||||
print(f"\n Recall mode options:")
|
print(f"\n Recall mode options:")
|
||||||
print(" auto — pre-warmed context + memory tools available (default)")
|
print(" hybrid — pre-warmed context + memory tools available (default)")
|
||||||
print(" context — pre-warmed context only, memory tools suppressed")
|
print(" context — pre-warmed context only, memory tools suppressed")
|
||||||
print(" tools — no pre-loaded context, rely on tool calls only")
|
print(" tools — no pre-loaded context, rely on tool calls only")
|
||||||
new_recall = _prompt("Recall mode", default=current_recall)
|
new_recall = _prompt("Recall mode", default=current_recall)
|
||||||
if new_recall in ("auto", "context", "tools"):
|
if new_recall in ("hybrid", "context", "tools"):
|
||||||
cfg["recallMode"] = new_recall
|
cfg["recallMode"] = new_recall
|
||||||
|
|
||||||
# Session strategy
|
# Session strategy
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,10 @@ class HonchoClientConfig:
|
||||||
# Max chars of dialectic result to inject into Hermes system prompt
|
# Max chars of dialectic result to inject into Hermes system prompt
|
||||||
dialectic_max_chars: int = 600
|
dialectic_max_chars: int = 600
|
||||||
# Recall mode: how memory retrieval works when Honcho is active.
|
# Recall mode: how memory retrieval works when Honcho is active.
|
||||||
# "auto" — pre-warmed context + memory tools available (model decides)
|
# "hybrid" — pre-warmed context + memory tools available (model decides)
|
||||||
# "context" — pre-warmed context only, honcho memory tools removed
|
# "context" — pre-warmed context only, honcho memory tools removed
|
||||||
# "tools" — no pre-loaded context, rely on tool calls only
|
# "tools" — no pre-loaded context, rely on tool calls only
|
||||||
recall_mode: str = "auto"
|
recall_mode: str = "hybrid"
|
||||||
# Session resolution
|
# Session resolution
|
||||||
session_strategy: str = "per-session"
|
session_strategy: str = "per-session"
|
||||||
session_peer_prefix: bool = False
|
session_peer_prefix: bool = False
|
||||||
|
|
@ -199,7 +199,7 @@ class HonchoClientConfig:
|
||||||
recall_mode=(
|
recall_mode=(
|
||||||
host_block.get("recallMode")
|
host_block.get("recallMode")
|
||||||
or raw.get("recallMode")
|
or raw.get("recallMode")
|
||||||
or "auto"
|
or "hybrid"
|
||||||
),
|
),
|
||||||
session_strategy=raw.get("sessionStrategy", "per-session"),
|
session_strategy=raw.get("sessionStrategy", "per-session"),
|
||||||
session_peer_prefix=raw.get("sessionPeerPrefix", False),
|
session_peer_prefix=raw.get("sessionPeerPrefix", False),
|
||||||
|
|
|
||||||
|
|
@ -1580,7 +1580,7 @@ class AIAgent:
|
||||||
hcfg = self._honcho_config
|
hcfg = self._honcho_config
|
||||||
mode = hcfg.memory_mode if hcfg else "hybrid"
|
mode = hcfg.memory_mode if hcfg else "hybrid"
|
||||||
freq = hcfg.write_frequency if hcfg else "async"
|
freq = hcfg.write_frequency if hcfg else "async"
|
||||||
recall_mode = hcfg.recall_mode if hcfg else "auto"
|
recall_mode = hcfg.recall_mode if hcfg else "hybrid"
|
||||||
honcho_block = (
|
honcho_block = (
|
||||||
"# Honcho memory integration\n"
|
"# Honcho memory integration\n"
|
||||||
f"Active. Session: {self._honcho_session_key}. "
|
f"Active. Session: {self._honcho_session_key}. "
|
||||||
|
|
@ -3382,7 +3382,7 @@ class AIAgent:
|
||||||
# Honcho: read cached context from last turn's background fetch (non-blocking),
|
# Honcho: read cached context from last turn's background fetch (non-blocking),
|
||||||
# then fire both fetches for next turn. Skip in "tools" mode (no context injection).
|
# then fire both fetches for next turn. Skip in "tools" mode (no context injection).
|
||||||
self._honcho_context = ""
|
self._honcho_context = ""
|
||||||
_recall_mode = (self._honcho_config.recall_mode if self._honcho_config else "auto")
|
_recall_mode = (self._honcho_config.recall_mode if self._honcho_config else "hybrid")
|
||||||
if self._honcho and self._honcho_session_key and not conversation_history and _recall_mode != "tools":
|
if self._honcho and self._honcho_session_key and not conversation_history and _recall_mode != "tools":
|
||||||
try:
|
try:
|
||||||
self._honcho_context = self._honcho_prefetch(user_message)
|
self._honcho_context = self._honcho_prefetch(user_message)
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class TestHonchoClientConfigDefaults:
|
||||||
assert config.enabled is False
|
assert config.enabled is False
|
||||||
assert config.save_messages is True
|
assert config.save_messages is True
|
||||||
assert config.session_strategy == "per-session"
|
assert config.session_strategy == "per-session"
|
||||||
assert config.recall_mode == "auto"
|
assert config.recall_mode == "hybrid"
|
||||||
assert config.session_peer_prefix is False
|
assert config.session_peer_prefix is False
|
||||||
assert config.linked_hosts == []
|
assert config.linked_hosts == []
|
||||||
assert config.sessions == {}
|
assert config.sessions == {}
|
||||||
|
|
@ -168,7 +168,7 @@ class TestFromGlobalConfig:
|
||||||
config_file = tmp_path / "config.json"
|
config_file = tmp_path / "config.json"
|
||||||
config_file.write_text(json.dumps({"apiKey": "key"}))
|
config_file.write_text(json.dumps({"apiKey": "key"}))
|
||||||
config = HonchoClientConfig.from_global_config(config_path=config_file)
|
config = HonchoClientConfig.from_global_config(config_path=config_file)
|
||||||
assert config.recall_mode == "auto"
|
assert config.recall_mode == "hybrid"
|
||||||
|
|
||||||
def test_corrupt_config_falls_back_to_env(self, tmp_path):
|
def test_corrupt_config_falls_back_to_env(self, tmp_path):
|
||||||
config_file = tmp_path / "config.json"
|
config_file = tmp_path / "config.json"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue