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.1.0.tar.gz (13.8 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.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: antonlytics-2.1.0.tar.gz
  • Upload date:
  • Size: 13.8 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.1.0.tar.gz
Algorithm Hash digest
SHA256 ce5ad1f2d648e90e089fc858c332396dce040697a690adbe1d218e0828974f6d
MD5 ca2714537b9aaa4e0775e96914f84caf
BLAKE2b-256 30287bb4afbee32031f951b20cac0a3266d27009597771a19a38189121a249f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: antonlytics-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 713ff8c2cbd22d1815e2733846a88c3689cf409c586e500d1bf086e38a5a24b2
MD5 25ccf5482173a52f2dab48a2e9987d3e
BLAKE2b-256 a897610db87f71b9a654bf28fbf2e873eb4ead456b2bd601fd3f73124d19f83d

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