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.3.0.tar.gz (16.3 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.3.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: antonlytics-2.3.0.tar.gz
  • Upload date:
  • Size: 16.3 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.3.0.tar.gz
Algorithm Hash digest
SHA256 0173b60655ca31b2a0371863c4b00fffd5198de7d0540b2c6240258081d852b4
MD5 a49e33d8756c54ebf4c12caa8837f88e
BLAKE2b-256 1c42fefaa974ab1ce316d33ea6f9d12a7bf02657e42e0be083802b352259cfb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: antonlytics-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e7bfea26ae6747121382ec7fb8d92966c1ce3e17ea3fcb6b8fee5da6bcab7d6f
MD5 3f26dada638189b57e4476d6dc1018ca
BLAKE2b-256 0445d72cf8b6c4093527174b63646a70b6c8989779ec68f453449e0e3903086f

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