Xpander supplies your agent’s identity (instructions, tools, knowledge bases, memory, deployment target) and routes tasks to your handler. The framework you choose is the library that runs the LLM loop in your process: the thing with anDocumentation Index
Fetch the complete documentation index at: https://docs.xpander.ai/llms.txt
Use this file to discover all available pages before exploring further.
Agent class, a tool-calling interface, and an arun() method. xpander does not replace your framework. It plugs into it.
Selection lives in xpander_config.json, written by xpander agent new. The SDK reads framework from that file and wires up accordingly:
xpander_config.json
Comparison
| Capability | Agno | OpenAI Agents SDK | LangChain | AWS Strands |
|---|---|---|---|---|
| Pre-built connectors (2,000+) | Auto-included | agent.openai_agents_sdk_tools | agent.tools.functions | agent.strands_tools |
Custom @register_tool functions | Auto-included | Auto-included | Auto-included | Auto-included |
| Instructions (role, goal, general) | Auto-attached | agent.instructions.full | agent.instructions.full | agent.instructions.full |
| Model + provider credentials | Auto-attached | agent.model_name (you build the client) | agent.model_name (you build the client) | agent.model_name (you build the client) |
| Knowledge-base retriever | Auto-attached | Manual via agent.knowledge_bases_retriever() | Manual | Manual |
| Session storage (Postgres) | Auto-wired | Manual | Manual | Manual |
| User and agent memory | Auto-wired | Manual | Manual | Manual |
| Context optimization (toon encoding, compaction) | Auto-wired | Not available | Not available | Not available |
| Guardrails (PII, prompt injection, moderation) | Auto-wired | Manual | Manual | Manual |
| Multi-agent teams | Auto-wired (AgnoTeam) | Manual | Manual | Manual |
Session helpers (agent.get_user_sessions, etc.) | Yes | Raises NotImplementedError | Raises NotImplementedError | Raises NotImplementedError |
- 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 connectors and custom
@register_toolfunctions reach every framework. 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 other frameworks, 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 framework. - 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).
How to choose
Default to Agno unless you have a reason not to. Pick a non-Agno framework 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.
- Framework-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 tools to a service that already runs one of these frameworks. Example: a FastAPI worker 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, tools, and memory.
Quickstart
10-minute scaffold-to-deploy walkthrough on the default Agno path.




