set_gather_info

View as MarkdownOpen in Claude

Enable info gathering for this step. Call add_gather_question() after this method to define the questions.

The gather_info system collects structured information from the caller by presenting questions one at a time. It uses dynamic step instruction re-injection rather than tool calls, producing zero tool_call/tool_result entries in LLM-visible history.

Parameters

output_key
str

Key in global_data to store collected answers under. When None, answers are stored at the top level of global_data.

completion_action
str

Where to go when all questions are answered.

  • "next_step" — auto-advance to the next sequential step
  • A step name (e.g., "process_results") — jump to that specific step
  • None — return to normal step mode after gathering
prompt
str

Preamble text injected once when entering the gather step, giving the AI personality and context for asking the questions.

Returns

Step — Self for method chaining.

Example

from signalwire import AgentBase
agent = AgentBase(name="my-agent", route="/agent")
contexts = agent.define_contexts()
ctx = contexts.add_context("default")
intake = ctx.add_step("intake")
intake.set_text("Collect patient information.")
intake.set_gather_info(
output_key="patient_info",
completion_action="next_step",
prompt="Be friendly and professional when collecting information."
)
intake.add_gather_question(
key="full_name",
question="What is your full name?",
confirm=True
)
ctx.add_step("review").set_text("Review the collected information with the patient.")
agent.serve()