tools, the name agent loops use for them.
Agents created in Xpander Chat or through the API run on Claude Code, Codex or OpenCode by default. The SDK integrations on these pages are optional: you pick them when you want to run the LLM loop in your own process. The agent loop you choose is the library that does that: the thing with an Agent class, a function-calling interface, and an arun() method. xpander does not replace your agent loop; it supplies the agent definition and runs every skill call.
Selection lives in xpander_config.json, written by xpander agent new. The SDK reads the framework field from that file and wires up accordingly:
xpander_config.json
Comparison
A few takeaways worth calling out:
- Agno is the only path with automatic wiring.
Backend.aget_args()dispatches onagent.framework. On the other three, you load the agent throughAgents().aget(...)and read fields off it yourself. - Pre-built skills and custom
@register_toolfunctions reach every agent loop. What changes is the property name you read them from:agent.tools.functionsfor LangChain,agent.openai_agents_sdk_toolsfor the OpenAI Agents SDK,agent.strands_toolsfor AWS Strands. - Memory, knowledge retrieval, and guardrails are Agno-only auto-wired. On the other agent loops, xpander gives you the data (
agent.knowledge_bases_retriever(), session metadata, the agent’s memory config) but your code is responsible for plugging it into the loop. - Agno-exclusive features: context optimization (toon encoding, runtime compaction),
AgnoTeam-based multi-agent coordination, and the session helpers (agent.get_user_sessions,agent.get_session,agent.delete_session, which raiseNotImplementedErroroutside Agno).
Model calls through the LLM Gateway
On the OpenAI Agents SDK, LangChain and AWS Strands you build the model client yourself. To send those calls through your organization’s LLM Gateway, so they run on the models your organization turned on, within your budgets, and show in Logs, give the client the gateway address as its base URL and a personal xpander API key as its API key. The OpenAI SDK takes the address with/v1; the Anthropic SDK takes it without. Your address and key are under Settings > AI models & keys in Xpander Chat; the steps are on Connect your tools.
Set XPANDER_GATEWAY_KEY to your personal xpander API key and replace https://llm-gw.xpander.ai with the Gateway address shown in AI models & keys when yours differs. Replace <model> with a model listed there.
OpenAI Python SDK, base URL with /v1:
/v1:
OK. The call shows under your name in Platform > AI governance > Logs (for admins) and in your own Settings > Usage. A 403 names its cause; see LLM Gateway errors.
How to choose
Within the SDK path, start with Agno unless you have a reason not to. Pick a non-Agno agent loop when:- Existing investment. Your team already builds on it and switching cost is real. Example: a LangGraph workflow that’s been in production for six months.
- Loop-specific feature. You need something Agno doesn’t have. Example: LangGraph’s stateful multi-step workflows, the OpenAI Agents SDK’s
Runnerergonomics, Strands’ AWS-native primitives. - Embedded in an existing app. You’re adding xpander skills to a service that already runs one of these agent loops. Example: a FastAPI service that already imports
agents.Runner.
framework in xpander_config.json and rewriting your handler.
Next steps
Agno
The recommended path. What
Backend.aget_args() actually wires up.OpenAI Agents SDK
Manual wiring with
agent.openai_agents_sdk_tools.LangChain + LangGraph
Manual wiring with
agent.tools.functions and create_react_agent.AWS Strands
Manual wiring with
agent.strands_tools on AWS-native orchestration.Core Concepts
The SDK class names mapped onto agents, tasks, threads, skills, and memory.
Quickstart
10-minute scaffold-to-deploy walkthrough on the Agno path.




