Skip to main content

semora

Durable agent runtime for Python. This is the core: contracts, control points, tool execution, the orchestrator, the plain async while planner, and AgentRuntime.

By default AgentRuntime drives the planner directly — no orchestrator, no ledger:

from semora import Agent, AgentRuntime, ChatModel

model = ChatModel(model="gpt-4.1")
agent = Agent("reviewer", "Reviews repositories", model, tools, system_prompt)
outcome = await AgentRuntime().run("attempt-42", agent, "inspect this repository")

This path cannot suspend or recover a crashed round. Attach a ledger when those guarantees are required:

from semora import AgentRuntime, MemorySteps

runtime = AgentRuntime(store=MemorySteps())
outcome = await runtime.run("attempt-42", agent, "inspect this repository")

Policy lives on Controls / ControlPlane (on_inputs, before_model, pre_tool_use, after_tool_call, before_finish, on_resume, on_suspend). before_finish can refuse an ending and send the loop around again.

semora.builtins.builtin_tools() supplies read, write, edit, grep, glob, Bash, and web_fetch. web_search is not included. Bash stays disabled until ExecToolOptions.allow_list is set. File and process effects use the WorkspaceProvider injected by AgentRuntime (semora.workspace).

Install extras beside it:

semora the runtime, with in-memory MemorySteps
semora[openai] langchain-openai
semora[anthropic] langchain-anthropic
semora[google] langchain-google-genai
semora[xai] langchain-xai
semora[openrouter] OpenAI adapter for OpenRouter
semora[postgres] Postgres ledger (semora_store_pg)
semora[permissions] permission rule table (semora_permissions)
semora[ui] local console (semora_ui)

See the repository README for examples.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

semora-0.1.0-py3-none-any.whl (124.2 kB view details)

Uploaded Python 3

File details

Details for the file semora-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: semora-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 124.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for semora-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ad191156f679d9c6eaef961202d3fd1b65e63d132dd9867728fed68c77be538
MD5 0af743e9a1b66e6a915f2e06b49a18ee
BLAKE2b-256 93d393260b56d7744602429da7a8796b10ad767c46d8d6fbbff0348c6629b81d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page