refactor(agent): plugin_llm/nous_rate_guard/moonshot_schema/provider_* — unify atomic write, compact docstrings, collapse defensive layers
This commit is contained in:
@@ -1,23 +1,13 @@
|
||||
"""Fold an agent-as-provider's own activity back into Hermes' turn state.
|
||||
|
||||
Some providers are *agents* (an ACP CLI behind a client shim; the codex
|
||||
app-server takes an analogous path in ``agent/codex_runtime.py``): they run
|
||||
their own tools inside their own session, so by the time Hermes sees the
|
||||
response that work is done. Those calls must never come back as pending
|
||||
``tool_calls`` (Hermes would re-run finished work), but two subsystems go blind
|
||||
if they are merely summarised into ``reasoning``:
|
||||
|
||||
* the **self-improvement loop**, which replays ``messages`` to distil memories
|
||||
and skills;
|
||||
* the **skill-review nudge**, whose ``_iters_since_skill`` counter only moves on
|
||||
Hermes tool iterations.
|
||||
|
||||
So the client hands both back on the completion object —
|
||||
``hermes_projected_messages`` (completed ``assistant(tool_calls=[…])`` +
|
||||
``tool(result)`` rows) and ``hermes_provider_tool_iterations`` — and this helper
|
||||
applies them. Ordinary OpenAI-compatible clients set neither and are unaffected.
|
||||
The splice is append-only through ``append_message`` so rows carry a timestamp
|
||||
and persist like any other live-transcript append.
|
||||
Agent providers (ACP CLI shims, the codex app-server) run their own tools, so that
|
||||
work must never come back as pending ``tool_calls`` (Hermes would re-run it) — but
|
||||
the self-improvement loop (replays ``messages``) and the skill-review nudge
|
||||
(``_iters_since_skill`` counter) go blind if it is merely summarised into
|
||||
``reasoning``. The client hands back ``hermes_projected_messages`` (completed
|
||||
assistant/tool rows) and ``hermes_provider_tool_iterations`` on the completion
|
||||
object; this helper applies them append-only via ``append_message`` (timestamped,
|
||||
persisted). Ordinary OpenAI-compatible clients set neither and are unaffected.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -46,9 +36,7 @@ def splice_provider_projection(
|
||||
append_message(messages, row)
|
||||
if rows:
|
||||
logger.debug(
|
||||
"spliced %d provider-projected transcript row(s) from %s",
|
||||
len(rows),
|
||||
getattr(agent, "provider", "?"),
|
||||
"spliced %d provider-projected transcript row(s) from %s", len(rows), getattr(agent, "provider", "?"),
|
||||
)
|
||||
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user