Skip to content

v0.17.0

Choose a tag to compare

@basepointer basepointer released this 19 Oct 04:57

Changed: init() is the default agent name and API key

  • init(agent_name=...) (or the new DECIMAL_AGENT_NAME) is now the agent name wherever
    one is not given: every adapter's instrument(), decimalai.start_trace(),
    @decimalai.trace (before the function's name) and SkillRouter. Before, only the
    adapters switched on in the same init() call saw it, so a later instrument() or a
    start_trace() filed traces under another name and routed without the agent's skills.
  • SkillRouter() no longer needs api_key=: it takes init()'s key (and its base_url),
    then DECIMAL_API_KEY / DECIMALAI_API_KEY.
  • OpenAI Agents: a DecimalAI agent name (from instrument(agent_name=), init() or
    DECIMAL_AGENT_NAME) now wins over Agent(name=...) for both the trace and routing, as
    instrument()'s docstring always said; with none, Agent(name=) is used as before. A name
    given together with agent= applies to that agent only. An INFO line says so once when the
    two names differ. Pydantic AI keeps its documented rule (Agent(name=) first).

Changed: decimalai init files name the agent once

  • A generated agent.py assigns AGENT_NAME once and passes it to
    decimalai.init(agent_name=AGENT_NAME); instrument(), load_agent() and the
    framework's own Agent(name=...) read it from there. Before, the name was written in
    up to four places, and renaming the agent in one of them filed traces under the old
    name with no error. The ADK file derives its node name from AGENT_NAME when it runs.
  • Because the name now reaches init(), its check for a near-miss agent name (a likely
    typo of an existing agent) runs at startup: one extra GET /api/v1/agents when
    verify is on.

Fixed

  • LangChain: a tool's result is recorded as what the tool said. From a LangGraph
    tool node (create_agent, create_react_agent) the output is a ToolMessage, and the
    record held its repr (content='...' name=... tool_call_id=...).
  • LangChain: an LLM call from a chat model that names no model in its invocation
    params (a custom model class, or a wrapper that drops the field) is recorded under the
    model's class name. Before, it was recorded with no model name and the platform
    rejected the whole trace.

Deprecated (unchanged, and kept one release longer)

The 0.14 disk verbs (decimalai skills export <ref>, decimalai skills install <ref>,
SkillRouter.install(), install_skill(), pull_missing(), export_to_disk() and the
disk_export writers) and the version 1 lock fallback still work in 0.17.0, with the same
warning. The 0.16.0 notes said they would stop working in 0.17; they now stop working in
0.18, and the warnings say so.