Observed since 20 Oct, 23:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentready-sdk
Cut your AI token costs by 40-60%. Drop-in proxy for OpenAI, LangChain, LlamaIndex, CrewAI.
Cut AI token costs by 40-60%. Drop-in proxy for OpenAI, LangChain, LlamaIndex, CrewAI.
pip install agentready-sdk
agentready init
This opens your browser → create a free account → API key is saved to .env automatically.
Just swap your base_url. Zero code changes to your existing OpenAI calls:
from openai import OpenAI
client = OpenAI(
base_url="https://agentready.cloud/v1", # ← only change needed
api_key="ak_...", # your AgentReady key
default_headers={
"X-Upstream-API-Key": "sk-...", # your OpenAI key
},
)
# Everything works exactly like before — but 40-60% cheaper
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": your_long_prompt}],
)
import agentready
client = agentready.openai("ak_...", upstream_key="sk-...")
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
client = agentready.create_client("ak_...", upstream_key="sk-...", async_client=True)
response = await client.chat.completions.create(...)
Patch all OpenAI/Anthropic calls globally with two lines:
from agentready import patch_openai
patch_openai(api_key="ak_...")
# All existing OpenAI code is now compressed automatically
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": your_long_prompt}],
)
Or patch everything at once:
import agentready
agentready.api_key = "ak_..."
agentready.auto() # patches OpenAI + Anthropic
For fine-grained control:
import agentready
agentready.api_key = "ak_..."
result = agentready.compress("Your long prompt text here...")
print(result.text) # compressed text
print(result.tokens_saved) # 1,247
print(result.reduction_percent) # 52.3
print(result.savings_usd) # 0.0374
from agentready.integrations.langchain import TokenCutCallbackHandler
from langchain_openai import ChatOpenAI
handler = TokenCutCallbackHandler(api_key="ak_...")
llm = ChatOpenAI(model="gpt-4o", callbacks=[handler])
response = llm.invoke("Your very long prompt here...")
from agentready.integrations.llamaindex import TokenCutPostprocessor
postprocessor = TokenCutPostprocessor(api_key="ak_...")
query_engine = index.as_query_engine(
node_postprocessors=[postprocessor]
)
from agentready.integrations.crewai import create_crewai_llm
from crewai import Agent, Task, Crew
llm = create_crewai_llm(
agentready_key="ak_...",
upstream_key="sk-...",
model="gpt-4o",
)
agent = Agent(
role="Researcher",
goal="Research AI trends",
backstory="Expert AI researcher.",
llm=llm,
)
AgentReady's proxy sits between your code and OpenAI. Every request is:
Code blocks, URLs, numbers, and key terms are always preserved.
# Proxy mode — compression level via header
client = agentready.openai(
"ak_...",
upstream_key="sk-...",
compression_level="aggressive", # "light", "standard", "aggressive"
)
# Patch mode — configuration via arguments
agentready.auto(
level="medium",
preserve_code=True,
min_tokens=100,
)
Beta — Free unlimited usage. After beta: pay-per-token, ~60% less than direct API costs.
Get your API key at agentready.cloud
MIT — AgentReady
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.24.0 | runtime |
openaiEnvironment{
"extras": "",
"marker": "extra == \"openai\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0.0; extra == "openai" | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": "extra == \"langchain\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.1.0; extra == "langchain" | runtime |
llama-index-coreEnvironment{
"extras": "",
"marker": "extra == \"llamaindex\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | llama-index-core>=0.10.0; extra == "llamaindex" | runtime |
crewaiEnvironment{
"extras": "",
"marker": "extra == \"crewai\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | crewai>=0.28.0; extra == "crewai" | runtime |
openaiEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0.0; extra == "all" | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.1.0; extra == "all" | runtime |
llama-index-coreEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | llama-index-core>=0.10.0; extra == "all" | runtime |
crewaiEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | crewai>=0.28.0; extra == "all" | runtime |
bdist_wheel · 16.72 KB · Python py3
sdist · 14.32 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:2d3f21724c65fb2e96e6e4fdde8e2386a972259b33928baf0bc31de53d44fbbb