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
- Envía el mensaje del usuario con tus
tools. - Si el modelo devuelve
tool_calls, ejecútalas en tu código. - Añade los resultados como mensajes
role: "tool"y vuelve a llamar al modelo. - 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-flashes el flagship.qwen3.6es rápido y barato para bucles de alto volumen.gemma4usa llamadas a herramientas en formato XML, pero la mayoría de los SDK se encargan de eso por ti.