Catalog PyPI
PACKAGE EXPLORERView in registry

agentharness-sdk

PyPI

Ergonomic agent harness on top of agentharness-core: Agent, @tool, and testable, replayable runs. Imports as `agentharness`.

agentaideterministicllmreplaystate-machinetools
Versions collected1
Direct dependencies1From release 0.1.0
Last observed20 Oct, 22:09 UTC

README

Version 0.1.0 documentation

agentharness

The ergonomic, batteries-included layer over agentharness-core.

from agentharness import Agent, tool

@tool
def add(a: int, b: int) -> str:
    """Add two numbers."""
    return str(a + b)

agent = Agent(model=my_model, tools=[add], system="You are helpful.")
run = agent.run("What is 2 + 3?")
print(run.result)          # "2 + 3 = 5."
run.trace.save("run.jsonl")  # the whole run is recorded and replayable
  • @tool turns a typed Python function into a tool — the JSON schema is generated from type hints, no hand-written schemas.
  • Agent wraps a model + tools + optional system prompt. run() executes to completion; stream() yields live events; arun()/astream() are the async variants.
  • Built entirely on the deterministic core, so every agent you build is inspectable and replayable for free (from agentharness_core import replay).

Test agents like ordinary code, with no network:

from agentharness.testing import FakeModel, assert_used_tool, assert_answer

agent = Agent(model=FakeModel([...]), tools=[add])
run = agent.run("What is 2 + 3?")
assert_used_tool(run, "add")
assert_answer(run, "2 + 3 = 5.")

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.025 Jun 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
aafre/agentharness

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:09 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:d64488d9f3912b71fa75adf9094125479677d9fa694f4c910edbf0b199008a28