first agent - kongusen/loom-agent GitHub Wiki

Your First Agent

1. Create An Agent

from loom import Agent, Capability, Model, Runtime

agent = 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 = await agent.run("Analyze the README and summarize key features")

print(result.state)   # RunState.COMPLETED
print(result.output)  # model output

3. Use A Session For Continuity

from loom import RunContext, SessionConfig

session = agent.session(SessionConfig(id="demo"))

first = await session.run("List three important features")
second = await session.run(
    "Summarize the previous answer in one sentence",
    context=RunContext(inputs={"previous_answer": first.output}),
)

4. Receive External Signals

from loom import RuntimeSignal

await session.receive(
    RuntimeSignal.create(
        "Repository index is stale",
        source="cron",
        type="job",
        urgency="normal",
        payload={"job_id": "repo-index"},
    )
)

result = await session.run("Handle pending runtime signals")

5. Stream Events

run = session.start("Inspect the project layout")

async for event in run.events():
    print(event.type, event.payload)

result = await run.wait()

6. Attach Knowledge

from loom import KnowledgeQuery, RunContext

knowledge = agent.resolve_knowledge(
    KnowledgeQuery(
        text="What are the deployment rules?",
        goal="Summarize deployment policy",
        top_k=3,
    )
)

result = await agent.run(
    "Summarize deployment policy",
    context=RunContext(knowledge=knowledge),
)

Next

⚠️ **GitHub.com Fallback** ⚠️