StackIntera is a control plane for AI agents. Give an agent your documents, approve the HTTP endpoints it may call, set a schedule, and call it from any app through one public API.
Runs in your own stack: Laravel, PostgreSQL (pgvector), and the models you choose.
POST /api/v1/agents/support-01/respond
{
"ok": true,
"output": "Order #123 shipped via DHL. The tracking link is in your inbox.",
"request_id": "01J9ZK7Q2R4M8X",
"model": "claude-sonnet-4-5",
"tools": [ { "name": "orders.status", "status": "completed" } ]
}
What is StackIntera
StackIntera wires the things you already run into a single callable agent. Your documents become knowledge, your endpoints become tools, and your apps get one HTTP call to talk to it.
Runs in your own stack: Laravel, PostgreSQL (pgvector), and the models you choose.
The model never gets a shell or SQL, only the HTTP endpoints you allow-list.
Every agent is scoped to its account: its own knowledge, tools, and keys.
Your documents
chunked, embedded, retrieved with pgvector
Approved endpoints
the only HTTP tools the agent may call
Schedules
one-time or cron runs, webhook on completion
The agent
model + knowledge + tools
One public API
a key and one endpoint per agent
Your apps
web, chat tools, cron jobs
The API
Send a message and get back the reply, which tools the agent called, and the model that answered.
60 calls per minute per key
Rate limits are enforced on the server.
X-Request-Id on every response
Every response includes a ULID so you can trace a request.
Redacted payloads
Tool inputs, request payloads, and provider errors are redacted before they reach logs or responses.
$ curl -X POST https://api.yourstack.test/api/v1/agents/support-01/respond
-H "Authorization: Bearer si_live_••••"
-H "Content-Type: application/json" \
-d '{"message": "Where is order #123?"}'
→ 200 OK · X-Request-Id: 01J9ZK…
{
"ok": true,
"output": "Order #123 shipped via DHL. The tracking link is in your inbox.",
"request_id": "01J9ZK7Q2R4M8X",
"model": "claude-sonnet-4-5",
"tools": [ { "name": "orders.status", "status": "completed" } ]
}
Use cases
Any job where a model needs your documents, your APIs, and a schedule.
A customer asks, the agent checks your orders API, and answers in plain language.
You: Where is order #123?
Agent: Shipped via DHL, link in your inbox.
orders.status · completed
A scheduled run reconciles your finance endpoints and posts the summary where your team looks.
cron: 0 2 * * *
webhook: delivered
412 ms · 3 tools
Questions get routed, answered from your docs, and escalated only when the allow-list runs out.
"Can I return this?"
→ Yes, within 30 days
docs/refunds.pdf §4
Operators ask how to roll back a release and get the steps, cited from your runbooks.
"How do we roll back a release?"
→ 1. Flip the feature flag…
runbooks/rollback.md
Under the hood
Every respond call runs the same pipeline, inside your account.
Receive message
Key checked, rate limit applied.
Search knowledge
Relevant chunks retrieved with pgvector.
Call approved tools
Only the endpoints you allow-listed.
Compose the reply
Primary model, with fallback if it fails.
Return the result
Output, tools, model, plus X-Request-Id.
A request in
X-API-Key: sk_live_9f2c…
Content-Type: application/json
{
"message": "Where is order #123?"
}
An answer out
{
"ok": true,
"output": "Order #123 shipped via DHL. The tracking link is in your inbox.",
"request_id": "01J9ZK7Q2R4M8X",
"model": "claude-sonnet-4-5",
"tools": [ { "name": "orders.status", "status": "completed" } ]
}
60 requests per minute, per key
Tool calls clamped to 1–600 s
Secrets are shown once, then hashed
No shell, no SQL, only allow-listed endpoints
How it works
01
Add your documents and approve the endpoints an agent may call.
docs · endpoints
02
Chat with the agent, schedule it, and assign roles to your team.
chat · cron · roles
03
Call the endpoint from any app.
one POST /respond
Create an account and call it from any app in your stack.
Runs in your own stack: Laravel, PostgreSQL (pgvector), and the models you choose.