fromloomimportAgent, Capability, Model, Runtimeagent=Agent(
model=Model.anthropic("claude-sonnet-4"),
instructions="Analyze repositories and summarize what matters.",
capabilities=[
Capability.files(read_only=True),
Capability.web(),
],
runtime=Runtime.sdk(),
)
2. Run It Once
result=awaitagent.run("Analyze the README and summarize key features")
print(result.state) # RunState.COMPLETEDprint(result.output) # model output
3. Use A Session For Continuity
fromloomimportRunContext, SessionConfigsession=agent.session(SessionConfig(id="demo"))
first=awaitsession.run("List three important features")
second=awaitsession.run(
"Summarize the previous answer in one sentence",
context=RunContext(inputs={"previous_answer": first.output}),
)
4. Receive External Signals
fromloomimportRuntimeSignalawaitsession.receive(
RuntimeSignal.create(
"Repository index is stale",
source="cron",
type="job",
urgency="normal",
payload={"job_id": "repo-index"},
)
)
result=awaitsession.run("Handle pending runtime signals")
5. Stream Events
run=session.start("Inspect the project layout")
asyncforeventinrun.events():
print(event.type, event.payload)
result=awaitrun.wait()
6. Attach Knowledge
fromloomimportKnowledgeQuery, RunContextknowledge=agent.resolve_knowledge(
KnowledgeQuery(
text="What are the deployment rules?",
goal="Summarize deployment policy",
top_k=3,
)
)
result=awaitagent.run(
"Summarize deployment policy",
context=RunContext(knowledge=knowledge),
)