Skip to main content
skill CX Codex

agentica-server — Claude Code skill: Agentica with a proxy

This skill covers running Agentica SDK against a local Claude CLI proxy: startup order, environment variables, and the errors you will hit.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add parcadei/Continuous-Claude-v3 --skill agentica-server -a claude-code
Open on GitHub

What agentica-server does

Reach for it when Python agents built on Agentica need Claude CLI as their inference backend. The skill lays out a three-part chain: the SDK client, agentica-server, and claude_proxy.py, which accepts OpenAI-style requests and hands them to claude -p. You get the architecture diagram, the startup sequence, and a table of environment variables.

Everything starts in order, each piece in its own terminal. Proxy on port 8080 first, then the server on 2345 from its own directory, then your agent script. The two addresses are not interchangeable: the SDK client reaches the server through S_M_BASE_URL, while the server sends inference requests to the proxy through INFERENCE_ENDPOINT_URL. Swap them and nothing connects.

Five failure modes come with symptoms and causes. The proxy has to stream Server-Sent Events, or the first call after an agent spawns fails with APIConnectionError. Starting the server from the wrong folder throws ModuleNotFoundError. An agent that asks for file contents instead of reading them is missing --allowedTools in the claude -p call. And when an agent reports a file it never created, that is hallucination — the prompt now insists on real tool calls rather than descriptions. Two /health requests confirm the whole stack is up.

What it helps with

  • bring up Agentica SDK, the server and the Claude proxy together
  • set environment variables for client and server without mixing up the two URLs
  • trace an APIConnectionError that appears right after an agent spawns
  • fix ModuleNotFoundError when agentica-server starts
  • make an agent read and write files through tools instead of describing them

Example prompts for the agent

  • start the Claude proxy on port 8080 and check its health endpoint
  • launch agentica-server from its directory and show me which environment variables it needs
  • the agent hangs on a call — read the proxy logs and tell me what to simplify in the prompt

How to install agentica-server

1Skills CLI (Vercel)

npx skills add parcadei/Continuous-Claude-v3 --skill agentica-server -a claude-code

2Manually: put the files in place

~/.claude/skills/agentica-server/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/agentica-server/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about agentica-server

How do I install agentica-server in Claude?

Run npx skills add parcadei/Continuous-Claude-v3 --skill agentica-server -a claude-code. The skill file lands at ~/.claude/skills/agentica-server/SKILL.md.

What does agentica-server do?

It documents running Agentica SDK with a local Claude CLI proxy: the three-part architecture, the startup order across separate terminals, and the S_M_BASE_URL and INFERENCE_ENDPOINT_URL variables.

Why does the agent claim it created a file that isn't there?

It is describing actions instead of performing them. The prompt adds an explicit instruction to call tools for real rather than narrate them.

Source text

SKILL.md · MIT
---
name: agentica-server
description: Agentica server + Claude proxy setup - architecture, startup sequence, debugging
allowed-tools: [Bash, Read]
user-invocable: false
---

# Agentica Server + Claude Proxy Setup

Complete reference for running Agentica SDK with a local Claude proxy. This enables Python agents to use Claude CLI as their inference backend.

## When to Use

Use this skill when:
- Starting Agentica development with Claude proxy
- Debugging connection issues between SDK, server, and proxy
- Setting up a fresh Agentica environment
- Troubleshooting agent tool access or hallucination issues

## Architecture

```
Agentica SDK (client code)
    | S_M_BASE_URL=http://localhost:2345
    v
ClientSessionManager
    |
    v
Agentica Server (agentica-server)
    | INFERENCE_ENDPOINT_URL=http://localhost:8080/v1/chat/completions
    v
Claude Proxy (claude_proxy.py)
    |
    v
Claude CLI (claude -p)
```

## Environment Variables

| Variable | Set By | Used By | Purpose |
|----------|--------|---------|---------|
| `INFERENCE_ENDPOINT_URL` | Human | agentica-server | Where server sends LLM inference requests |
| `S_M_BASE_URL` | Human | Agentica SDK client | Where SDK connects to session manager |

**KEY:** These are NOT the same endpoint!
- SDK connects to server (port 2345)
- Server connects to proxy (port 8080)

## Startup Sequence

Must start in this order (each in a separate terminal):

### Terminal 1: Claude Proxy

```bash
uv run python scripts/agentica/claude_proxy.py --port 8080
```

### Terminal 2: Agentica Server

**MUST run from its directory:**

```bash
cd workspace/agentica-research/agentica-server
INFERENCE_ENDPOINT_URL=http://localhost:8080/v1/chat/completions uv run agentica-server --port 2345
```

### Terminal 3: Your Agent Script

```bash
S_M_BASE_URL=http://localhost:2345 uv run python scripts/agentica/your_script.py
```

## Health Checks

```bash
# Claude proxy health
curl http://localhost:8080/health

# Agentica server health
curl http://localhost:2345/health
```

## Common Errors & Fixes

### 1. APIConnectionError after agent spawn

**Symptom:** Agent spawns successfully but fails on first call with connection error.

**Cause:** Claude proxy returning plain JSON instead of SSE format.

**Fix:** Proxy must return Server-Sent Events format:
```
data: {"choices": [...]}\n\n
```

### 2. ModuleNotFoundError for agentica-server

**Symptom:** `ModuleNotFoundError: No module named 'agentica_server'`

**Cause:** Running `uv run agentica-server` from wrong directory.

**Fix:** Must `cd workspace/agentica-research/agentica-server` first.

### 3. Agent can't use Read/Write/Edit tools

**Symptom:** Agent asks for file contents instead of reading them.

**Cause:** Missing `--allowedTools` in claude_proxy.py CLI call.

**Fix:** Proxy must pass tool permissions:
```bash
claude -p ... --allowedTools Read Write Edit Bash
```

### 4. Agent claims success but didn't do task

**Symptom:** Agent says "I've created the file" but file doesn't exist.

**Cause:** Hallucination - agent describing intended actions without executing.

**Fix:** Added emphatic anti-hallucination prompt in REPL_BASELINE:
```
CRITICAL: Use ACTUAL tools. Never DESCRIBE using tools.
```

### 5. Timeout on agent.call()

**Symptom:** Call hangs for 30+ seconds then times out.

**Cause:** Claude CLI taking too long or stuck in a loop.

**Fix:** Check proxy logs for the actual CLI output. May need to simplify prompt.

## Key Files

| File | Purpose |
|------|---------|
| `scripts/agentica/claude_proxy.py` | OpenAI-compatible proxy with SSE streaming |
| `workspace/agentica-research/agentica-server/` | Local agentica-server installation |
| `scripts/agentica/PATTERNS.md` | Multi-agent pattern documentation |

## Quick Verification

Test the full stack:

```bash
# 1. Verify proxy responds
curl http://localhost:8080/health

# 2. Verify server responds
curl http://localhost:2345/health

# 3. Test inference through proxy
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"claude","messages":[{"role":"user","content":"Say hello"}]}'
```

## Checklist

Before running agents:
- [ ] Claude proxy running on port 8080
- [ ] Agentica server running on port 2345 (from its directory)
- [ ] `S_M_BASE_URL` set for client scripts
- [ ] `INFERENCE_ENDPOINT_URL` set for server
- [ ] Both health checks return 200

© parcadei · MIT · parcadei/Continuous-Claude-v3

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set77

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor