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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ad191156f679d9c6eaef961202d3fd1b65e63d132dd9867728fed68c77be538
|
|
| MD5 |
0af743e9a1b66e6a915f2e06b49a18ee
|
|
| BLAKE2b-256 |
93d393260b56d7744602429da7a8796b10ad767c46d8d6fbbff0348c6629b81d
|