Docs

Agentes

Helmcode soporta tool calling (function calling) en todos los modelos de lenguaje: deepseek-v4-flash, qwen3.6 y gemma4. Como la API es compatible con OpenAI, los frameworks de agentes hechos para OpenAI — el Agents SDK, LangChain, LlamaIndex, tu propio bucle — funcionan con el mismo código contra Helmcode, cambiando solo la base URL y la key.

Definir herramientas

Pasa un array tools; el modelo decide cuándo llamarlas y devuelve los argumentos.

from openai import OpenAI
client = OpenAI(base_url="https://api.helmcode.com/v1", api_key="sk-your-key-here")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "What's the weather in Madrid?"}],
    tools=tools,
)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, call.function.arguments)  # get_weather {"city": "Madrid"}

El bucle del agente

  1. Envía el mensaje del usuario con tus tools.
  2. Si el modelo devuelve tool_calls, ejecútalas en tu código.
  3. Añade los resultados como mensajes role: "tool" y vuelve a llamar al modelo.
  4. Repite hasta que el modelo responda sin una llamada a herramienta.
messages.append(resp.choices[0].message)
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": '{"temp_c": 28, "sky": "clear"}',
})
final = client.chat.completions.create(model="deepseek-v4-flash", messages=messages, tools=tools)
print(final.choices[0].message.content)

Para agentes complejos de varios pasos, deepseek-v4-flash es el flagship. qwen3.6 es rápido y barato para bucles de alto volumen. gemma4 usa llamadas a herramientas en formato XML, pero la mayoría de los SDK se encargan de eso por ti.