← All integrations
STRANDS AGENTS · NATIVE PLUGIN · PYPI v0.1.0

Signed decision evidence for Strands Agents.

Attach a native Strands Plugin to capture invocation, model and tool lifecycle evidence while Strands continues to run the agent. LoopGrid preserves and verifies the evidence; it does not execute the business action.

loopgrid-strands v0.1.0 · validated with strands-agents 1.57.1 · LoopGrid Core 0.8.1-design-partner.

NATIVE EVIDENCE FLOW
01Agent invocation + decision
02Model evidence
03Application policy
04Tool request + execution / result
05Observed outcome
06Evidence complete + verify

Authority, application policy and business outcome stay application-owned. The detailed lifecycle below preserves the exact native Strands hook mapping.

01 · INSTALL

Install the native Strands integration.

pip install loopgrid-strands

The package installs the LoopGrid Python SDK and a compatible Strands Agents runtime. Version 0.1.0 is published on PyPI through Trusted Publishing.

02 · CONNECT

Attach the plugin and pass evidence context per invocation.

from strands import Agent
from loopgrid_strands import LoopGridPlugin

plugin = LoopGridPlugin()
agent = Agent(plugins=[plugin])

result = agent(
    "Evaluate the sandbox refund request.",
    invocation_state={
        "loopgrid": {
            "run_id": "case-123",
            "authority": {"scope": ["refund:create"]},
            "policy": {"version": "refund-policy-v3"},
            "proposed_action": {
                "tool": "refund_customer",
                "amount": 72
            },
            "context": {"prompt_version": "support-v4"}
        }
    },
)
Base URLLOOPGRID_BASE_URL, for example http://127.0.0.1:8000
WorkspaceLOOPGRID_WORKSPACE_ID, for example default
API keyLOOPGRID_API_KEY for authenticated deployments

Request-scoped invocation_state keeps authority, policy and correlation data with the current invocation rather than sharing it across unrelated customers or requests.

03 · NATIVE LIFECYCLE

Use Strands hooks instead of a generic callback wrapper.

01Before invocation

Creates the LoopGrid decision envelope from explicit request-scoped evidence.

02After model call

Records model completion/provenance. Application policy is recorded only when explicitly supplied.

03Before tool call

Records tool_requested before Strands executes the tool.

04After tool call

Records tool_executed on success or tool_result for error/cancellation instead of claiming success.

05After invocation

Retains a commitment to the final result without taking over the agent lifecycle.

06Observed outcome

The application calls observe_outcome(...) after it observes the authoritative downstream result.

04 · PRIVACY DEFAULT

Commit to content without storing it by default.

capture_content = false by default. Raw user/model messages, tool inputs/results and exception text are not stored by this integration unless the application deliberately opts in.

SHA-256 commitments can preserve evidence linkage while reducing unnecessary raw-content retention. Choose the disclosure level that matches the evidence claim and your data-handling requirements.

05 · ACTION + OUTCOME BOUNDARY

Strands executes the agent. LoopGrid records the evidence.

Strands Agent
  → model / tool loop
  → external sandbox action
  → application observes the result
  → plugin.observe_outcome(...)
  → LoopGrid outcome_observed
  → evidence_complete
  → verify valid:true

The plugin does not infer delegated authority, manufacture policy, approve a human review, cancel tools on LoopGrid's behalf or claim a business outcome it did not observe. External actions remain owned by the application/tooling boundary.

06 · RELEASE VALIDATION

Validated through the actual Strands runtime and a real LoopGrid Core E2E.

Automated tests14 / 14 passing, including an actual Strands Agent runtime + deterministic custom model + native tool loop
LoopGrid lifecycleevidence_complete
Applicable coverage100%
Verificationvalid: true with Ed25519 + SHA-256 workspace hash chain
Sandbox boundaryreal_money_moved=false; LoopGrid did not execute the refund

The release test used a real Strands Agent, native plugin hooks and a real tool loop without requiring a paid model API. Verification establishes captured integrity/provenance; it does not prove that the underlying decision was correct or legally compliant.

STRANDS + LOOPGRID

Keep the agent native. Make the evidence portable.

Install the PyPI package, attach the plugin, and preserve consequential decision evidence without replacing the Strands runtime.