v1.0.0 - Online

1What is this tool?

Imagine you have a very intelligent assistant, available 24/7, living inside your own computer in the cloud. This assistant can read, write, summarize, research and much more.

1

Smart chat

Chat like you would with a human assistant. Ask anything.

2

Reads documents

Upload PDFs, Word or text files and ask for summaries.

3

100% private

Everything stays inside your company. Nothing goes online.

4

Agent team

Multiple assistants work together for complex tasks.

i
In simple words

It's like having your own ChatGPT, but private, inside your company, with the ability to work as a team of multiple assistants at once.

2How to enter the application

You only need a web browser (Chrome, Safari, Edge or Firefox) and an address provided by your administrator.

Open your browser

Use whichever you prefer. No installation needed.

Type the address

In the address bar, type something like this (your admin will give you the exact URL):

http://your-company-server.com:3000

Sign in

The first time you'll need to create your account. After that, just type your email and password.

!
If the page doesn't load

Ask your administrator to verify that port 3000 is open on the server. It's a technical step they must handle.

3Create your account

The first time you enter, the system will ask you to create an account. It's very quick.

  1. Click "Sign up" or "Register"
  2. Type your full name
  3. Type your email (can be your company one)
  4. Create a secure password (minimum 8 characters)
  5. Click "Create Account"
+
First one is the boss

The first person to create an account automatically becomes administrator. If you're first, you'll have extra powers to manage users.

4Chat with the AI

Once inside, you'll see a screen very similar to WhatsApp or ChatGPT. It's that simple.

The 3 basic elements of the screen

My chats
Conversation 1
Conversation 2
Conversation 3
Model: llama3.1:8b
-------------
You: Explain what AI is
AI is...
Type your message here...

How to use it

  1. Choose a model in the dropdown above (start with llama3.1:8b)
  2. Type your question in the box below
  3. Press Enter and wait for the response (10-30 seconds)

Examples of things you can ask

  • "Explain quantum computing in simple words"
  • "Help me draft an email to my boss requesting vacation"
  • "Translate this text to Spanish: [paste text]"
  • "Give me 10 ideas for a marketing campaign for my product"
  • "Summarize this article in 5 key points: [paste article]"

5Upload files for analysis

You can upload documents and ask the assistant to read, summarize or compare them.

Click the clip icon

It's at the bottom, near the text box.

Select your file

Works with PDF, Word, Excel, TXT and more.

Write what you want done

For example: "Summarize this contract in 10 points" or "What are the risks mentioned in this document?"

i
Useful tip

If you have multiple documents, upload them all and ask to compare them. For example: "Compare these 3 contracts and tell me the main differences".

6Request complex reports (agents)

This is the most powerful part. Instead of a single response, multiple "assistants" work as a team to give you a complete result.

What is an agent?

An agent is an assistant specialized in a task. When you ask for something complex, the system automatically activates multiple agents that work in a chain:

1

Planner

Breaks down the task into small, organized steps.

2

Researcher

Finds information and analyzes it deeply.

3

Writer

Writes the final report with all the info.

How to request a report

Simply write your request clearly and completely. For example:

+
Effective prompt example

"Research the electric vehicle market in Latin America during 2024 and write me an executive report with: market size, main players, trends and recommendations."

Important: these reports take longer (2-5 minutes) because multiple agents are working. It's normal. You'll see the progress step by step.

7Common issues

Issue Solution
Response takes too long Normal for long texts. Wait 30-60 seconds. If it takes more than 3 minutes, reload the page.
Chat got stuck thinking Press the stop button and try again.
No model appears Tell your administrator. It means the internal service is not connected.
Can't upload my file Verify it's under 20 MB and in a supported format (PDF, DOCX, TXT).
Forgot my password Contact the system administrator to reset your access.

8Best practices

For better responses

  • Be specific: instead of "tell me about marketing", ask "give me 5 marketing strategies for a coffee shop in Madrid".
  • Give context: explain the purpose. "I need an email for an upset customer because..." works better than "write me an email".
  • Request format: "as a table", "in 5 points", "in a formal tone" - the assistant adapts.
  • Iterate: if the answer isn't exact, ask to adjust it. "Make it shorter", "add examples", "change the tone".

What to avoid

  • Don't share passwords, credit cards or very sensitive data.
  • Don't blindly trust numbers - verify critical data.
  • Don't use the same conversation for different topics - open a new one.

You're all set!

Open the application and start exploring. The best way to learn is by doing.

1System architecture

Complete stack deployed on a single EC2 g4dn.2xlarge instance with GPU acceleration.

LayerTechnologyPort
Operating SystemUbuntu 26.04 LTS - kernel 7.0 AWS-
GPU RuntimeNVIDIA Driver 580 - CUDA 13-
Container RuntimeDocker + NVIDIA Container Toolkit-
LLM RuntimeOllama11434 (localhost)
REST APIFastAPI + Uvicorn (systemd)8000
Web UIOpen WebUI (Docker)3000

Important system paths

# Main runtime
/opt/agentic-runtime/
  app/                    # FastAPI code
    main.py
    config.py
    routers/              # health, agents, crews
    graphs/               # LangGraph state machines
    crews/                # CrewAI crews
  venv/                   # Python 3.12 with deps
  data/                   # SQLite checkpoints
  logs/                   # api.log, api-error.log
  docker-compose.yml      # Open WebUI

systemd services

agentic-api.service   -> uvicorn app.main:app on :8000
open-webui.service    -> docker compose up (Open WebUI)
ollama.service        -> LLM runtime on :11434

2API Endpoints

REST API documented with OpenAPI. Swagger UI available at /docs.

MethodEndpointDescription
GET/Service info
GET/healthHealthcheck
GET/modelsAvailable Ollama models
POST/agents/runRuns LangGraph graph (research)
POST/crews/runRuns CrewAI crew
GET/docsInteractive Swagger UI
GET/redocAlternative ReDoc

Request schema

# POST /agents/run
{
  "query": "string",        # Question or task
  "thread_id": "string"     # Session ID (for checkpoints)
}

# POST /crews/run
{
  "query": "string"         # Task for the crew
}

3curl Examples

Healthcheck

curl -s http://localhost:8000/health

# Response:
{"status":"ok","service":"agentic-ai-runtime-server","version":"1.0.0"}

List models

curl -s http://localhost:8000/models | jq

Run LangGraph agent

curl -X POST http://localhost:8000/agents/run \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Explain how LangGraph works",
    "thread_id": "demo-001"
  }' | jq
!
Expected timeout

The /agents/run endpoint runs 3 sequential LLM calls (planner, researcher, writer). It may take 30-60s on T4. Configure timeout > 120s in your client.

Run CrewAI crew

curl -X POST http://localhost:8000/crews/run \
  -H "Content-Type: application/json" \
  -d '{"query": "Research Kubernetes"}' | jq

4systemd service management

Basic commands

# Status
sudo systemctl status agentic-api open-webui ollama

# Restart
sudo systemctl restart agentic-api
sudo systemctl restart open-webui

# Stop
sudo systemctl stop agentic-api

# Check if it starts at boot
sudo systemctl is-enabled agentic-api open-webui ollama

agentic-api service structure

# /etc/systemd/system/agentic-api.service
[Unit]
Description=Agentic AI Runtime Server API
After=network.target ollama.service
Wants=ollama.service

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/agentic-runtime
EnvironmentFile=/opt/agentic-runtime/.env
ExecStart=/opt/agentic-runtime/venv/bin/uvicorn \
  app.main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
i
Modify configuration

To change port, workers, or environment variables: edit .env or the service file, then run sudo systemctl daemon-reload and sudo systemctl restart agentic-api.

5Logs and monitoring

API Logs

# Real-time via journald
sudo journalctl -u agentic-api -f

# Last 100 lines
sudo journalctl -u agentic-api -n 100 --no-pager

# Errors today
sudo journalctl -u agentic-api --since today -p err

# Logs to file
tail -f /opt/agentic-runtime/logs/api.log
tail -f /opt/agentic-runtime/logs/api-error.log

Open WebUI Logs (Docker)

sudo docker logs -f open-webui
sudo docker logs --tail 100 open-webui

Ollama Logs

sudo journalctl -u ollama -f

GPU monitoring

# Snapshot
nvidia-smi

# Watch every 2 seconds
watch -n 2 nvidia-smi

# Processes using GPU
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv

System resources

htop                        # CPU and RAM
df -h                       # Disk
sudo ss -tulpn              # Open ports
sudo docker stats           # Container resources

6Ollama model management

List installed models

ollama list

Download new model

# Recommended models for T4 (16 GB VRAM)
ollama pull qwen2.5:14b         # ~9 GB - complex reasoning
ollama pull deepseek-coder:6.7b # ~4 GB - code
ollama pull llama3.2-vision:11b # ~8 GB - vision (multimodal)

# Small models (fast)
ollama pull phi3:mini
ollama pull gemma2:2b

Check available VRAM

nvidia-smi --query-gpu=memory.used,memory.free,memory.total --format=csv

Remove model

ollama rm model-name

Quick inference test

ollama run llama3.1:8b "Respond only: OK"
# Should respond in 1-3 seconds
!
VRAM limit

T4 has 16 GB. Do not load more than 2 large models simultaneously. Ollama unloads them automatically when idle (5 min by default).

7Customize agents

Modify LangGraph graph

Edit /opt/agentic-runtime/app/graphs/research_graph.py. Current nodes are planner, researcher, writer. You can add more or change prompts.

# Example: add a "critic" node before the writer
def critic_node(state: ResearchState):
    prompt = f"Critique this research:\n{state['research'][-1]}"
    response = llm.invoke(prompt)
    return {"research": [response.content]}

g.add_node("critic", critic_node)
g.add_edge("researcher", "critic")
g.add_edge("critic", "writer")

Modify CrewAI crew

Edit /opt/agentic-runtime/app/crews/research_crew.py. Change role, goal, backstory and description of each Task.

Adjust the model used

# Edit .env
sudo nano /opt/agentic-runtime/.env

# Change models
ROUTER_MODEL=llama3.2:3b
MAIN_MODEL=qwen2.5:14b        # Change this
EMBED_MODEL=nomic-embed-text

# Restart to apply
sudo systemctl restart agentic-api

Add a new endpoint

# Create /opt/agentic-runtime/app/routers/custom.py
from fastapi import APIRouter

router = APIRouter(prefix="/custom", tags=["custom"])

@router.get("/ping")
async def ping():
    return {"pong": True}

# Register in main.py
from app.routers import custom
app.include_router(custom.router)

# Restart
sudo systemctl restart agentic-api

8Troubleshooting

SymptomProbable causeSolution
Connection refused :8000 Service down sudo systemctl restart agentic-api
Connection refused :3000 Docker down sudo systemctl restart open-webui
Timeout on /agents/run 3 sequential LLM calls Increase client timeout to 180s
OOM GPU Models don't fit in 16 GB Reduce loaded models or use Q4 quantization
ModuleNotFoundError Missing deps in venv source venv/bin/activate && uv pip install ...
WebUI shows no models Ollama not reachable from Docker Verify host.docker.internal in compose

Quick diagnostic

# 1. Active services
systemctl is-active agentic-api open-webui ollama

# 2. Listening ports
sudo ss -tulpn | grep -E ':(3000|8000|11434)'

# 3. GPU accessible
nvidia-smi

# 4. Docker with GPU
sudo docker run --rm --gpus all nvidia/cuda:12.1.1-base-ubuntu22.04 nvidia-smi

# 5. API responds
curl -s http://localhost:8000/health | jq

# 6. Ollama responds
curl -s http://localhost:11434/api/tags | jq

9Backup and restore

What to back up

  • /opt/agentic-runtime/app/ - your customized code
  • /opt/agentic-runtime/.env - configuration
  • /opt/agentic-runtime/data/ - LangGraph SQLite checkpoints
  • ollama list - model names (models will re-download)
  • Docker volume open-webui-data - chat history

Full backup

# Create tarball
sudo tar -czf /tmp/agentic-backup-$(date +%Y%m%d).tar.gz \
  /opt/agentic-runtime/app \
  /opt/agentic-runtime/.env \
  /opt/agentic-runtime/data

# Backup Docker volume
sudo docker run --rm \
  -v open-webui-data:/data \
  -v /tmp:/backup \
  alpine tar czf /backup/open-webui-data.tar.gz -C /data .

# Download locally
scp ubuntu@your-ip:/tmp/agentic-backup-*.tar.gz ./

Restore

sudo tar -xzf agentic-backup-YYYYMMDD.tar.gz -C /
sudo systemctl restart agentic-api
+
Recommendation

Automate backups with a cron job that runs daily and uploads the tarball to S3. Example: 0 3 * * * /opt/scripts/backup.sh.