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.
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.
DeepSeek uses the OpenAI Python SDK directly. No separate package needed — just point it at DeepSeek's endpoint.
Fetch tool schemas from Slopshop's OpenAPI endpoint. They arrive already in OpenAI function_calling format — no conversion needed.
Pass tools into deepseek-chat's tools array. When DeepSeek emits a tool_call, POST the arguments to Slopshop and feed the result back.
Full agentic loop using the openai SDK pointed at DeepSeek's API. Handles parallel tool calls and iterates until DeepSeek returns stop_reason "stop".
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)
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "dns-lookup",
"arguments": "{\"host\":\"slopshop.gg\",\"type\":\"A\"}"
}
}{
"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.
DeepSeek is exceptional at reasoning. Slopshop gives it the execution layer to act on those conclusions — real tools across 82 categories, all verified.
DNS, SSL, HTTP, crypto, hashing, code execution, data transforms, document generation, web research. All real. No hallucinated outputs.
DeepSeek agents can write to and read from Slopshop's key-value store at zero credit cost. State persists across sessions automatically.
No schema conversion. Slopshop tools arrive in the exact format DeepSeek's function_calling expects. Plug in and run.
Audit logs, per-request tracing, credit usage per tool call. Every invocation is logged with inputs, outputs, and latency.
Run the entire Slopshop tool server on your own infrastructure. Zero external dependencies for compute APIs. Air-gapped setups supported.