Skip to content

Document tool-time policy: advisory context, not hidden quiet-hours enforcement #17475

@markojak

Description

@markojak

Summary

Document the Hermes tool-time principle established in #17459:

Runtime time, timezone, and contact-window facts should be surfaced to the agent/tool result as context. Hermes core should not silently enforce quiet-hours policy in the control plane by default.

The repo currently does not appear to contain TOOL-PRINCIPLES.md, but this architectural decision needs a durable home so future PRs do not reintroduce hidden quiet-hours enforcement.

Why

Several related PRs/issues try to solve time awareness in different layers. Without a written principle, it is easy to regress toward gateway/control-plane suppression or duplicated timestamp-prefix mechanisms.

Proposed docs

Add or update docs that state:

  1. Stable cached prompt: volatile current time does not belong in the cached system prompt.
  2. Agent-visible runtime context: current time/timezone/contact-window facts should be injected through the chosen ephemeral runtime context path and/or returned by relevant tools.
  3. Advisory by default: tools may warn when an action appears outside the user's normal contact window, but Hermes core should not silently block, queue, or rewrite the action unless an explicit tool/user policy asks for that.
  4. One core path: avoid multiple gateway-specific timestamp-prefix mechanisms when a core ephemeral context path exists.
  5. Tool extension point: document how new time-sensitive tools should use the shared time-advisory helper.

Acceptance criteria

Related

Parent: #17459
Related: #10421, #15872, #17335

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/agentCore agent loop, run_agent.py, prompt buildercomp/toolsTool registry, model_tools, toolsetstype/docsDocumentation improvements

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions