Skip to main content

eqbuilder

Score your AI agent's replies for human-likeness before sending — and check they stick to your approved facts. No account, no API key. 3 free scores, then pay-per-score (~5¢) in USDC on Base via x402 — the buyer wallet needs zero gas, USDC only.

# pip install eqbuilder
from eqbuilder import EqBuilder, WishlistRequired

eq = EqBuilder()
result = eq.free_score(
    "Sounds good — I'll double-check the invoice and get back to you.",
    delay_seconds=4.2,
    profile="analytical_executive",
)
print(result["eq_score_percentage"], result.get("suggested_prompt_addition"))

Free trial note — 3rd score: The final free score is gated behind a one-time wishlist step. Before calling free_score for the third time, POST your feature wish:

import requests
requests.post(
    "https://eqbuilder.dev/api/wishlist",
    json={"need": "a profile for customer-support bots", "audience": "bot"},
)

No free round is consumed until you do. The SDK raises WishlistRequired (a subclass of EqBuilderError) if you forget, with step-by-step instructions in the exception message. (Or use eq.wishlist("...") — or let auto_score handle it, below.)

Set and forget (one standing call)

# pip install "eqbuilder[payments]"
eq = EqBuilder(wallet_key="0x<private key of a wallet holding USDC on Base>")
result = eq.auto_score(
    "Sounds good — I'll double-check the invoice and get back to you.",
    delay_seconds=4.2,
    profile="analytical_executive",
    wishlist_need="a profile for customer-support bots",  # unlocks the final free round automatically
)
print(result["paid"])  # False while free scores last, True once it graduates to x402

auto_score uses your free trial while it lasts, then transparently retries the same input through the paid x402 path on 429 free_trial_exhausted. Without a wallet_key it raises PaymentRequired at that point instead. Free and paid results have slightly different shapes; the added "paid" key tells you which path ran. If a paid call times out, do not blindly retry — the charge may have settled; reconcile via GET /api/wallet/{address}/statement?auth_tx_hash=... first.

LangChain (one line)

# pip install "eqbuilder[langchain]"
from eqbuilder.langchain_tool import get_langchain_tools

tools = get_langchain_tools()  # add wallet_key="0x..." to keep scoring after the free trial

CrewAI

# pip install "eqbuilder[crewai]"
from eqbuilder.crewai_tool import HumanLikenessScoreTool

agent = Agent(role="support", tools=[HumanLikenessScoreTool()], ...)

Everything at once: pip install "eqbuilder[all]" (payments + LangChain + CrewAI).

Paid scoring (after the 3 free scores)

# pip install "eqbuilder[payments]"
eq = EqBuilder(wallet_key="0x<private key of a wallet holding USDC on Base>")
result = eq.score("...", delay_seconds=4.2, profile="analytical_executive")
deep   = eq.score("...", delay_seconds=4.2, profile="analytical_executive", tier="deep")

Payment is a signed, gasless USDC transfer authorization (EIP-3009) sent in the X-PAYMENT header — the platform's facilitator settles it on-chain. A malformed request is rejected before any money moves.

Script adherence (paid)

check = eq.script_check(
    reply_text="The plan is $49/mo, see example.com/pricing",
    approved_facts=["Plan price is $29/mo", "Docs: https://docs.example.com"],
)
# flags the invented $49 price and the off-script URL

Improvement loop

def rewrite(text, suggestion):
    return my_llm(f"Rewrite this reply. {suggestion}\n\n{text}")

final = eq.improve("...", 4.2, "analytical_executive", rewrite, max_rounds=3)

Download files

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

Source Distribution

eqbuilder-0.1.4.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

eqbuilder-0.1.4-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file eqbuilder-0.1.4.tar.gz.

File metadata

  • Download URL: eqbuilder-0.1.4.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for eqbuilder-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fbbb4052b0b770d8d51bcd23ac71c2a9fc0118533164357590a55678cd2e8251
MD5 c2cd8753c5cfa8e817f482779c3c6251
BLAKE2b-256 97e769821c62bbede085d519944a6369c17f0a83a9289db96b5bbfa974d4f172

See more details on using hashes here.

File details

Details for the file eqbuilder-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: eqbuilder-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for eqbuilder-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6daaa56a05e286004ebed282ffee0cadf03f3e3b327ad1e140873cecca4623
MD5 d7788b5deddb7e92891dc93207e635e9
BLAKE2b-256 b499bbf07b1ec33e799aec2a07d9845a8ddacf7bc54fb941b85f9cc15afa43ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page