KeyWaiter
When output is structured (Agently Output Format), KeyWaiter lets you retrieve a key before the full response completes. This is useful for streaming UI or early triggers.
KeyWaiter relies on instant structured streaming, so you must define output() first.
Get one key early
python
from agently import Agently
agent = Agently.create_agent()
agent.input("34643523+52131231=?").output(
{
"thinking": (str,),
"result": (float,),
"reply": (str,),
}
)
reply = agent.get_key_result("thinking")
print(reply)Stream multiple keys
python
gen = agent.wait_keys(["thinking", "reply"])
for key, value in gen:
print(key, value)Callback per key
python
(
agent.input("34643523+52131231=?")
.output(
{
"thinking": (str,),
"result": (float,),
"reply": (str,),
}
)
.when_key("thinking", lambda v: print("🤔:", v))
.when_key("result", lambda v: print("✅:", v))
.when_key("reply", lambda v: print("⏩:", v))
.start_waiter()
)Rules
output()is requiredmust_in_prompt=Trueenforces key validation