module Riffer::Agent::Run
Riffer::Agent::Run is the generation loop. A pure module of functions over an agent β Agent owns every per-call value (provider, model, tools, tool runtime, structured output, session, context); Run just orchestrates.
Tools and user code see the agentβs context (a Riffer::Agent::Context) unchanged through the loop, so downstream tool runtimes can read caller-provided keys via context[:agent] / context.dig(:key), or the framework built-ins via context.skills. Cumulative token usage is updated into agent.context.token_usage as the loop progresses.
Riffer::Agent::Run.generate(agent: my_agent, prompt: "Hello") Riffer::Agent::Run.stream(agent: my_agent, prompt: "Hello")
Public Instance Methods
Source
# File lib/riffer/agent/run.rb, line 27 def generate(agent:, prompt: nil, files: nil) append_user_message(agent, prompt, files: files) run_loop(agent) end
Runs the generate loop for the given agent. See Riffer::Agent#generate for prompt/files semantics.
Source
# File lib/riffer/agent/run.rb, line 37 def stream(agent:, prompt: nil, files: nil) append_user_message(agent, prompt, files: files) Enumerator.new { |stream_yielder| run_loop(agent, stream_yielder: stream_yielder) } end
Runs the streaming loop for the given agent. See Riffer::Agent#stream for prompt/files semantics.