decimalai is the Python package for DecimalAI. It gives your agent its skills and saved prompt, records what each run did, and tests a change before it ships. It also installs the decimalai command, which has its own reference. Your code still runs your agent: DecimalAI never hosts it.
Install
pip install "decimalai[langchain]". Init & Setup lists them, including the ones that need Python 3.11.
A key is optional to start. You get one from Settings → API keys, and the SDK reads it from DECIMAL_API_KEY. decimalai init checks your setup, or writes a small agent to start from.
Give an agent its skills
Eight frameworks have anagent_config(). It returns the agent’s saved prompt and a short list of its skills, and gives the model a load_skill tool to open one when a task calls for it. You pass what it returns into your own agent:
With no
DECIMAL_API_KEY, the skills come from files in your project and nothing is sent (details). Put them there with the command line, such as playwright-cli from the quickstart:
"support-agent" above, is the DecimalAI agent that runs are routed and traced under, whatever your framework calls the agent. A name your workspace has no agent by creates one, so a misspelling makes a new agent instead of an error.
CrewAI, Deep Agents, Microsoft Agent Framework and Strands load skills with their own loader, and LlamaIndex and OpenTelemetry trace only. All frameworks shows which way works on each. Code that calls a model itself uses decimalai.agent_config(), which hands over the same pieces as plain values.
load_skill
The model calls load_skill with a skill’s name, and the skill’s full text comes back as the tool’s answer. A framework’s agent_config() plugs the tool in. In a loop you wrote, run.load_skill(name) answers the call. A run opens at most three skills. How skills reach the model covers how a run’s skills are picked and how to turn the tool off.
Trace a run
Anagent_config() traces its own runs. For tracing alone, decimalai.init() takes a flag per framework, such as langchain=True, openai_agents=True or otel=True, and sends every run in the process. Init & Setup has the flags and the environment variables.
Code with no framework records a run by hand, with @decimalai.trace(), start_trace(), log_llm_call() and log_tool_call(). If you use a provider SDK with a flag such as anthropic=True, wrap each run in agent_run() so its calls form one trace. Tracing lists the parameters. To read a run in the dashboard, see Read a run.
Test a change
decimalai.evaluate() runs a file of cases through an agent, checks each run, and reports. Run it twice with different setups, such as a saved prompt version or an agent without one skill, and compare() the reports.
decimalai.openai_agents.agent_config(). Evaluations has the parameters and the functions that push scores onto traces. Test a change explains when to use which.
Everything else
Anything the SDK doesn’t wrap is a REST call. See Authentication and the API reference.