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.2.0.tar.gz (14.6 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.2.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: antonlytics-2.2.0.tar.gz
  • Upload date:
  • Size: 14.6 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.2.0.tar.gz
Algorithm Hash digest
SHA256 955a0fa56fd500b140647994b10292112a6e165fcc08bda89e7a65738911728c
MD5 52fbe53d7f13d8774e713de51f68a258
BLAKE2b-256 58539aa7d5053d15022859b48c6fb5d2cc2901e1933b68dddee20539d9376741

See more details on using hashes here.

File details

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

File metadata

  • Download URL: antonlytics-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9731485b64628fd11278cee751bb998ab9edfb9b14e5c301f5390fd82dd31cd0
MD5 24827f5c0c084742d7de10ef7add3c9f
BLAKE2b-256 ce5405049b320d45dcf7e90a9287e411421bb9bf31041daae889ac97a2d7e54f

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