The console script today (aiida-agents -> cli.py:main) is just a bare REPL with no subcommands. We should to turn it into a thin Click CLI. Click because verdi is Click and it's the idiom we and our users already live in, so the patterns from aiida-core carry over.
The real motivation isn't the REPL, which we already have, it's one-shot mode: aiida-agents ask "what are the last 5 processes?". That's scriptable, testable, CI-able, and it's how I'd actually dogfood the agent without sitting in an interactive loop. aiida-agents chat keeps today's interactive REPL.
I'd also add --provider / --model / --profile as override flags sitting on top of the typed settings, so precedence reads flag > env > file > default. --profile especially: the agent runs against a profile, so people should be able to point it at one inline instead of doing verdi profile setdefault gymnastics first.
And aiida-agents config show: read-only, prints the effective settings and where each value came from. It's our verdi config list analogue, and it earns its place precisely because once config comes from several layers people start asking "why is it using that model and not mine?". Showing provenance answers that in one command. I'd hold off on config set / writing files until someone actually needs persistence beyond .env (YAGNI for now).
Depends on the typed-settings work, #6.
The console script today (
aiida-agents->cli.py:main) is just a bare REPL with no subcommands. We should to turn it into a thin Click CLI. Click becauseverdiis Click and it's the idiom we and our users already live in, so the patterns from aiida-core carry over.The real motivation isn't the REPL, which we already have, it's one-shot mode:
aiida-agents ask "what are the last 5 processes?". That's scriptable, testable, CI-able, and it's how I'd actually dogfood the agent without sitting in an interactive loop.aiida-agents chatkeeps today's interactive REPL.I'd also add
--provider/--model/--profileas override flags sitting on top of the typed settings, so precedence reads flag > env > file > default.--profileespecially: the agent runs against a profile, so people should be able to point it at one inline instead of doingverdi profile setdefaultgymnastics first.And
aiida-agents config show: read-only, prints the effective settings and where each value came from. It's ourverdi config listanalogue, and it earns its place precisely because once config comes from several layers people start asking "why is it using that model and not mine?". Showing provenance answers that in one command. I'd hold off onconfig set/ writing files until someone actually needs persistence beyond.env(YAGNI for now).Depends on the typed-settings work, #6.