AI agent infrastructure, fully hosted.

Create agents, define tools, and run the agentic loop. Ajentify handles message storage, tool orchestration, and context management so you can focus on building AI features.

Frontend SDK

Embed an AI agent directly in your app

The @ajentify/chat SDK gives you the shortest path from agent creation to a working in-app assistant. Your agent can navigate routes, read page data, fill forms, and control UI state — through client-side tools you define in plain TypeScript.

  • Navigate users to any page or setting
  • Read and act on visible page data
  • Fill forms and trigger actions on behalf of the user
  • Available 24/7 — knows the platform as well as the developers do
Where do I configure my billing settings?
Create a new product called 'Summer Sale Bundle'
Show me all users who signed up this week
App.tsx
import { AjentifyProvider, defineClientSideTools } from '@ajentify/chat';
import { ChatPanel } from '@ajentify/chat/ui';

const tools = defineClientSideTools({
  navigate: ({ path }) => {
    navigate(path);
    return { ok: true, path };
  },
  create_product: async ({ name, price }) => {
    const product = await api.createProduct({ name, price });
    return { ok: true, product };
  },
});

<AjentifyProvider config={{ onAjentifyProxyRequest, tools }}>
  <ChatPanel title="Assistant">
    <YourApp />
  </ChatPanel>
</AjentifyProvider>
Full API Control
context.py
# Create a personalized context
context = ajentify.create_context(
    agent_id="agent_123",
    prompt_args={
        "ARG_USER_NAME": "Alice",
        "ARG_COMPANY": "Acme Corp",
    },
    user_defined={
        "user_id": "usr_456",
        "access_token": session.token,
        "api_url": "https://api.example.com",
    },
)

# Add messages or inject system prompts at any time
ajentify.add_messages(context.id, messages=[...])
ajentify.chat.add_ai_message(context.id, system_prompt="...")

Own every message in the context window

For deeply integrated agentic pipelines, the Ajentify API gives you fine-grained control over the conversation. Generate messages, edit or remove previous messages, inject system prompts mid-conversation, and use Data Windows to surface live data the moment it's available.

Prompt Arguments

Personalize agent behavior per-user with dynamic prompt templating. Values are injected when creating a context.

User-Defined Variables

Attach user IDs, access tokens, or API URLs to a context. Tools receive these automatically.

Data Windows

Real-time cached data injected into the context so the agent sees live information as soon as it's updated.

Message Control

Add, replace, or remove messages at any point. Trigger AI responses with custom system prompts.

Agent Testing

Test your agents like you test your code

The ajentify-testing framework lets you write automated tests for your agents using simulated conversations, deterministic assertions, and LLM-powered assessments. Catch regressions before they reach production.

  • SimAgent role-plays real user scenarios against your agent
  • assert_* checks for tool calls, message content, turn counts — instant and deterministic
  • assess_* uses LLM evaluation for subjective quality checks
  • Results saved as markdown reports, ready for CI integration
test_property_lookup.py
from ajentify_testing import SimAgent, TargetContext, run_conversation

name = "property_lookup"
description = "Agent should look up property details when asked"

def run(session):
    sim = SimAgent(session,
        persona="A buyer asking about a 3-bedroom house",
        first_message="What's the price for 42 Smith St?",
    )
    target = TargetContext(session, agent_id=session.env("AGENT_ID"))

    run_conversation(sim, target, max_turns=15)

    # Deterministic assertions — instant, zero-cost
    target.assert_called_tool("lookup_property")
    target.assert_message_contains("price guide")

    # LLM-powered assessments — semantic, subjective
    target.assess_true("Gave the user a price guide")
    target.assess_score("Professional sales approach", min=0.7)
Voice Agents

Same agent, now with a voice

The same agent you build in Ajentify — same prompt, same tools, same tests — can power a WebRTC voice experience. Ajentify's voice system handles speech-to-text, LLM invocation, and text-to-speech with an ElevenLabs voice of your choice. Deploy it anywhere you can put a WebRTC client.

One agent, two modalities

Same prompt, same tools, same tests — chat and voice from a single agent definition.

ElevenLabs voice synthesis

Choose from a library of natural-sounding voices for text-to-speech output.

Works anywhere WebRTC works

Browsers, mobile apps, kiosks, IoT — if it supports WebRTC, it can host a voice agent.

Full tool execution

Voice agents call the same tools as chat agents. Look up data, take actions, respond with results.

Chat
Same agent
Voice

Start building with Ajentify

Free to get started. No credit card required.