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. Get 3 lifetime free scores per caller with strict data_consent=True. Free score text and its result may be retained under a one-way pseudonymous caller key for calibration, so never submit secrets or sensitive personal data. Follow-up contact and wishlist feedback are optional and separate. Then score through POST /api/simulate with Base USDC via x402: the buyer wallet needs USDC only, no ETH.
# pip install eqbuilder
from eqbuilder import EqBuilder
eq = EqBuilder(data_consent=True)
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: Every free score requires
data_consent=True.EqBuilderdefaults todata_consent=False; opt in explicitly at construction or on an individualfree_score(..., data_consent=True)call. A false or non-boolean value is rejected before a free round is consumed. All three free scores follow the same path. Optional product feedback can be sent separately witheq.wishlist("...").
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",
)
print(result["paid"]) # False while free scores last, True once it graduates to x402
auto_score needs only explicit free-data consent plus an authorized wallet. It 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 with one machine-readable developer handoff containing the
live quote path, Base USDC funding requirement, and card alternative. Free and paid results have slightly
different shapes; the added "paid" key tells you which path ran. If a paid call
times out, the SDK does not automatically replay the paid authorization. Preserve the
original error/receipt and check payment status or contact the operator before creating
a fresh authorization.
If you decline free-trial retention (data_consent=False), call score() directly
for a paid evaluation; paid scoring does not silently inherit the free consent.
LangChain (one line)
# pip install "eqbuilder[langchain]"
from eqbuilder.langchain_tool import get_langchain_tools
tools = get_langchain_tools(data_consent=True) # add wallet_key="0x..." for paid fallback
CrewAI
# pip install "eqbuilder[crewai]"
from eqbuilder.crewai_tool import HumanLikenessScoreTool
agent = Agent(role="support", tools=[HumanLikenessScoreTool()], ...)
# The tool schema requires data_consent=true for a free call.
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 canonical x402 v2: score() calls POST /api/simulate, reads its
live HTTP 402 quote, chooses Base USDC, signs a gasless EIP-3009 transfer
authorization, and retries once with PAYMENT-SIGNATURE. The success response
contains the result and a PAYMENT-RESPONSE settlement receipt. The live quote
is authoritative for amount and terms; do not hardcode an approximate price.
SOL and X-PAYMENT remain compatibility paths, not this SDK quickstart.
Paid text does not enter the free consented corpus. Its
share_for_calibration option is a separate opt-in; when true, eligible
high-scoring text may be retained for manual operator calibration review.
Privacy-safe corpus evidence
evidence = eq.corpus_evidence() # aggregate counts only; no raw text or identities
The stable public evidence endpoint is
https://eqbuilder.dev/api/corpus/evidence (crawler alias:
https://eqbuilder.dev/.well-known/corpus-evidence.json). It reports thresholded
aggregate corpus and improvement evidence, not raw submissions or guaranteed
model improvement.
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,
data_consent=True, # required when using the free improvement loop
)
- 28 personality profiles:
eq.profiles() - Pricing:
eq.pricing() - Full API & MCP endpoint: https://eqbuilder.dev/integrate
Metadata
Release files for eqbuilder 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| eqbuilder-0.1.6.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eqbuilder-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.5 kB
Release files / eqbuilder-0.1.6.tar.gz
| Download URL | eqbuilder-0.1.6.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c46f5871e0ad6c80059bef5c8c5bdb8ab31028161a072717acf67a5fdacc25eb
|
|
BLAKE2b-256 checksum How to use checksums |
1e243c3674582d0dce6a540ace271d5ac563a013decedfa85b4ccc2a6cd270dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / eqbuilder-0.1.6-py3-none-any.whl
| Download URL | eqbuilder-0.1.6-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
719fb7114853c2f4d6cc14677336cf649d989964375e2ecb2924d3b36848282d
|
|
BLAKE2b-256 checksum How to use checksums |
541cad9a73df2b369a290f498583046d46c51b2d41dbd572f3863cd16b1400d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|