Skip to main content

Memory for AI Agents - Simple natural language SDK

Project description

Antonlytics Python SDK

Memory for AI Agents - Simple natural language SDK.

PyPI version Python Versions License: MIT

Installation

pip install antonlytics

Quick Start

from antonlytics import Agent

# Initialize agent
agent = Agent(
    api_key="your-api-key",
    project_id="your-project-id"
)

# Ingest - agent learns from natural language
agent.ingest("""
Had a call with Sarah Johnson from TechCorp today.
She's interested in our Enterprise plan for 50 users.
Follow up next Tuesday.
""")

# Chat - agent remembers and responds
response = agent.chat("Who should I follow up with?")
print(response["response"])
# => "You should follow up with Sarah Johnson from TechCorp..."

Features

  • Natural Language Ingestion - No complex entity creation, just plain English
  • AI-Powered Chat - Chat with your agent using our model + your memory
  • Memory Access - Get structured memory for your own AI model
  • System Prompts - Configure agent behavior and personality
  • Simple API - 3 lines of code to get started

Two Usage Options

Option 1: Use Our Model

Full-service AI with your system prompt + memory:

# We handle everything
response = agent.chat("Who should I follow up with?")
print(response["response"])

Option 2: Use Your Model

Just get memory context for your own model:

# Get memory
memory = agent.get_memory()

# Use with your model (OpenAI, Anthropic, etc.)
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "You are a sales assistant"},
        {"role": "system", "content": f"Memory: {memory}"},
        {"role": "user", "content": "Who to follow up?"}
    ]
)

Documentation

Agent Class

__init__(api_key, project_id, base_url=None)

Initialize the agent.

Parameters:

  • api_key (str): Your Antonlytics API key
  • project_id (str): Your project/agent ID
  • base_url (str, optional): API base URL

ingest(text: str) -> dict

Ingest natural language text and extract entities/relationships.

Parameters:

  • text (str): Natural language text (conversations, notes, emails)

Returns:

  • dict with extracted entities and relationships

Example:

result = agent.ingest("Customer Alice bought Laptop Pro for $999")
print(result["created"])  # {"entities": 2, "relationships": 1}

chat(message: str, history: list = None) -> dict

Chat with your agent. Uses system prompt + full memory context.

Parameters:

  • message (str): Your question or message
  • history (list, optional): Conversation history

Returns:

  • dict with response and relevant entities

Example:

response = agent.chat("Who bought laptops?")
print(response["response"])
print(response["relevant_entities"])

get_memory(query: str = None) -> dict

Get structured memory for your own AI model.

Parameters:

  • query (str, optional): Natural language query to filter memory

Returns:

  • dict with entities and relationships

Example:

memory = agent.get_memory("laptop purchases")
# Use with your own model

set_system_prompt(prompt: str) -> dict

Configure agent behavior and personality.

Parameters:

  • prompt (str): System prompt text

Example:

agent.set_system_prompt("""
You are a helpful sales assistant.
Be concise and action-oriented.
Focus on follow-ups and next steps.
""")

get_system_prompt() -> str

Get current system prompt.

Returns:

  • str: System prompt text

Error Handling

from antonlytics import Agent, AntonlyticsError, APIError, AuthenticationError

try:
    agent = Agent(api_key="invalid", project_id="test")
    agent.chat("Hello")
except AuthenticationError as e:
    print(f"Auth error: {e}")
except APIError as e:
    print(f"API error: {e.status_code} - {e}")
except AntonlyticsError as e:
    print(f"Error: {e}")

Complete Example

from antonlytics import Agent

# Initialize
agent = Agent(
    api_key="your-api-key",
    project_id="your-project-id"
)

# Set behavior
agent.set_system_prompt("""
You are a sales assistant.
Focus on follow-ups and next steps.
""")

# Ingest multiple conversations
agent.ingest("""
Call with Mike Rodriguez from StartupXYZ.
He's the founder. Looking at our API for their mobile app.
Has 100K users. Wants custom pricing.
Send proposal by Friday.
""")

agent.ingest("""
Email from Sarah Chen at BigCorp.
VP of Engineering. Interested in Enterprise.
Team of 200 developers. Budget discussion next week.
""")

# Query memory
response = agent.chat("What are my top priorities this week?")
print(response["response"])

# Get all contacts
response = agent.chat("List all people I've talked to")
for entity in response["relevant_entities"]:
    if entity["type"] == "Person":
        print(f"- {entity['name']}")

Requirements

  • Python >= 3.8
  • requests >= 2.28.0

Development

# Clone repository
git clone https://github.com/Voidback-Inc/antonlytics-python-sdk
cd antonlytics-python-sdk

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .

# Type check
mypy antonlytics

Links

License

MIT License - see LICENSE file for details.

Support

Project details


Download files

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

Source Distribution

antonlytics-2.0.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

antonlytics-2.0.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file antonlytics-2.0.0.tar.gz.

File metadata

  • Download URL: antonlytics-2.0.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for antonlytics-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2bd5bdc6f9a2d22e5ba3933d87e8d085d25aaca68d18333c76b520960eb978f0
MD5 3a095d8aa1c84fd11a19399652330e0a
BLAKE2b-256 038e037f3a2f415f22fb801c66e35acd28bcff529a9d511878e92cefd74d41e2

See more details on using hashes here.

File details

Details for the file antonlytics-2.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for antonlytics-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5aa0e7c273bcc195b3a43f99587df9047f5fb6e6cf029d18ab4847b1b0bef64f
MD5 181d11322aa66d1c206c5c491481824c
BLAKE2b-256 122709da1e7aa9b56f6496e021e607a220edc698272dd94abcde1e2a90bbe02a

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 Pingdom Monitoring Sentry Error logging StatusPage Status page