function_calling  ·  小红书 · 知乎 · 微信 · B站  ·  Planet Research  ·  OpenAI-compatible

Slopshop for
DeepSeek Agents

Real tools across 82 categories via DeepSeek's function_calling — plus DeepSeek powers the Chinese internet intelligence layer of Planet Research: 小红书, 知乎, 微信, B站, 百度.
Free persistent memory. Every result verified with _engine: real.

小红书
+ 知乎 · B站
0cr
Memory Cost
OAI
Compatible
🌎
Planet Research

Quickstart

Three steps. DeepSeek has tools.

DeepSeek's API is OpenAI-compatible — you're using the same openai Python SDK you already know, just with a different base_url and your DeepSeek API key.

Step 01 — Install

Install the openai SDK

DeepSeek uses the OpenAI Python SDK directly. No separate package needed — just point it at DeepSeek's endpoint.

pip install openai requestsclick to copy
Step 02 — Fetch Tools

Pull Slopshop tool definitions

Fetch tool schemas from Slopshop's OpenAPI endpoint. They arrive already in OpenAI function_calling format — no conversion needed.

GET /v1/openapi.json → tools[]
Step 03 — Run

DeepSeek calls, Slopshop executes

Pass tools into deepseek-chat's tools array. When DeepSeek emits a tool_call, POST the arguments to Slopshop and feed the result back.

82 categories of tools · auto-discovered from schema

Code Example

function_calling with deepseek-chat

Full agentic loop using the openai SDK pointed at DeepSeek's API. Handles parallel tool calls and iterates until DeepSeek returns stop_reason "stop".

deepseek_agent.py python
import os, json, requests
from openai import OpenAI

# DeepSeek is OpenAI-compatible — just swap base_url
client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com"
)

SLOP_KEY = os.environ["SLOPSHOP_API_KEY"]
SLOP_URL = "https://slopshop.gg"

# 1. Fetch Slopshop tools — already in OpenAI function format
def get_tools(slugs: list[str]) -> list[dict]:
    schema = requests.get(
        f"{SLOP_URL}/v1/openapi.json",
        headers={"Authorization": f"Bearer {SLOP_KEY}"}
    ).json()
    # Convert OpenAPI paths to OpenAI tool definitions
    tools = []
    for slug in slugs:
        path = schema["paths"].get(f"/v1/{slug}", {}).get("post", {})
        if path:
            tools.append({
                "type": "function",
                "function": {
                    "name": slug,
                    "description": path.get("summary", ""),
                    "parameters": path["requestBody"]["content"]
                                        ["application/json"]["schema"]
                }
            })
    return tools

# 2. Execute a Slopshop tool call
def call_tool(name: str, args: dict) -> str:
    res = requests.post(
        f"{SLOP_URL}/v1/{name}",
        json=args,
        headers={
            "Authorization": f"Bearer {SLOP_KEY}",
            "Content-Type": "application/json"
        }
    )
    return json.dumps(res.json())

# 3. Agentic loop — DeepSeek decides, Slopshop executes
def run_agent(user_message: str) -> str:
    tools = get_tools(["dns-lookup", "ssl-check", "http-request",
                       "whois", "hash", "memory-set", "memory-get"])
    messages = [{"role": "user", "content": user_message}]

    while True:
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=messages,
            tools=tools,
            tool_choice="auto"
        )
        msg = response.choices[0].message

        # DeepSeek signals done with finish_reason "stop"
        if response.choices[0].finish_reason == "stop":
            return msg.content

        # Append assistant message with tool_calls
        messages.append(msg)

        # Execute each tool call and append results
        for tc in msg.tool_calls:
            result = call_tool(
                tc.function.name,
                json.loads(tc.function.arguments)
            )
            messages.append({
                "role": "tool",
                "tool_call_id": tc.id,
                "content": result
            })

# Run it
answer = run_agent("Check DNS records for slopshop.gg and save results to memory")
print(answer)
DeepSeek tool_call → Slopshop response
DeepSeek → tool_calls[]
{
  "id": "call_abc123",
  "type": "function",
  "function": {
    "name": "dns-lookup",
    "arguments": "{\"host\":\"slopshop.gg\",\"type\":\"A\"}"
  }
}
Slopshop → tool result
{
  "records": ["76.76.21.21"],
  "ttl": 300,
  "type": "A",
  "host": "slopshop.gg",
  "_engine": "real"
}

Every Slopshop response includes "_engine": "real" — confirmation that this result came from live compute, not a language model inference.


What You Get

Everything DeepSeek needs to act, not just reason

DeepSeek is exceptional at reasoning. Slopshop gives it the execution layer to act on those conclusions — real tools across 82 categories, all verified.

🀅

78 Categories of Real Tools

DNS, SSL, HTTP, crypto, hashing, code execution, data transforms, document generation, web research. All real. No hallucinated outputs.

🧠

Free Persistent Memory

DeepSeek agents can write to and read from Slopshop's key-value store at zero credit cost. State persists across sessions automatically.

🔗

OpenAI-Compatible Format

No schema conversion. Slopshop tools arrive in the exact format DeepSeek's function_calling expects. Plug in and run.

👀

Full Observability

Audit logs, per-request tracing, credit usage per tool call. Every invocation is logged with inputs, outputs, and latency.

🏠

Self-Hostable

Run the entire Slopshop tool server on your own infrastructure. Zero external dependencies for compute APIs. Air-gapped setups supported.


Give DeepSeek real tools across 82 categories

Three lines of Python. 82 categories of tools. Free memory. Every result verified.
DeepSeek reasons — Slopshop executes.

Get Started Free OpenAPI Schema Browse Browse All Tools
→ Full Docs → Browse Tools → Agent Templates → Savings Calculator