mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
feat: enable persistent shell by default for SSH, add config option
SSH persistent shell now defaults to true — non-local backends benefit most from state persistence across execute() calls. Local backend remains opt-in via TERMINAL_LOCAL_PERSISTENT env var. New config.yaml option: terminal.persistent_shell (default: true) Controls the default for non-local backends. Users can disable with: hermes config set terminal.persistent_shell false Precedence: per-backend env var > TERMINAL_PERSISTENT_SHELL > default. Wired through cli.py, gateway/run.py, and hermes_cli/config.py so the config.yaml value reaches terminal_tool via env var bridge.
This commit is contained in:
parent
5b80654198
commit
33ebedc76d
5 changed files with 33 additions and 3 deletions
|
|
@ -505,7 +505,13 @@ def _get_env_config() -> Dict[str, Any]:
|
|||
"ssh_user": os.getenv("TERMINAL_SSH_USER", ""),
|
||||
"ssh_port": _parse_env_var("TERMINAL_SSH_PORT", "22"),
|
||||
"ssh_key": os.getenv("TERMINAL_SSH_KEY", ""),
|
||||
"ssh_persistent": os.getenv("TERMINAL_SSH_PERSISTENT", "false").lower() in ("true", "1", "yes"),
|
||||
# Persistent shell: SSH defaults to the config-level persistent_shell
|
||||
# setting (true by default for non-local backends); local is always opt-in.
|
||||
# Per-backend env vars override if explicitly set.
|
||||
"ssh_persistent": os.getenv(
|
||||
"TERMINAL_SSH_PERSISTENT",
|
||||
os.getenv("TERMINAL_PERSISTENT_SHELL", "true"),
|
||||
).lower() in ("true", "1", "yes"),
|
||||
"local_persistent": os.getenv("TERMINAL_LOCAL_PERSISTENT", "false").lower() in ("true", "1", "yes"),
|
||||
# Container resource config (applies to docker, singularity, modal, daytona -- ignored for local/ssh)
|
||||
"container_cpu": _parse_env_var("TERMINAL_CONTAINER_CPU", "1", float, "number"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue