Changelog

Release Notes

New features, SDK improvements, and platform updates.

2026

2026.5Feature · UI + SDK
May 2026

Filter sessions by custom tags

Active filtersconnection: prod-db ×
a1b2c3db-analyst
connection: prod-dbteam: sales
e5f6a7db-analyst
connection: prod-dbdb_type: postgres
c9d0e1db-analyst
connection: prod-dbregion: us-west

Tag any session with key-value pairs — connection name, team, region, user ID, or any dimension that matters to you. Tags appear as clickable chips in the Sessions table: click a chip to filter instantly. Stack multiple tag filters; the stat tiles update in real time to reflect only the tagged subset.

start_session(tags={...})
2026.5SDK
May 2026

SDK works gracefully without configuration

with niitaka.start_session(
goal="analyze", agent_id="bot") as s:
reply = run_agent(message)
# works with or without api_key

No more defensive boilerplate. When api_key is not set, start_session() silently returns a no-op context manager and all logging calls are silent. Your agent code is identical whether Niitaka is configured or not — adopt it at your own pace or disable it in test environments.

start_session() returns no-op when unconfigured · niitaka.create_session()
2026.4Feature · SDK + Dashboard
May 2026

Name your LLM call sites, configure prompts from the dashboard

with niitaka.
prompt_slot("planner"):
call_llm(...)
Prompt Slots
planneractive
You are a planning assistant. Break down…
executor
Execute each step precisely. Report all…

Tag each LLM call site in your agent with a named slot — "planner", "sql_generator", "interpreter". When a runtime config or experiment variant defines a prompt_slots override for that name, the correct system prompt is injected automatically — no code changes, no redeploy.

niitaka.prompt_slot("name")
2026.4SDK
May 2026

Async LiteLLM fully instrumented

async def handle(msg):
resp = await litellm.acompletion(…)
● captured
return reply(resp)
# niitaka.instrument_litellm() ← once at startup

litellm.acompletion() is now captured alongside synchronous litellm.completion(). Async agents — FastAPI backends, asyncio pipelines, async LangChain chains — are fully observed with zero extra setup after calling instrument_litellm().

niitaka.instrument_litellm()
2026.4Feature · SDK + Dashboard
May 2026

Organise agents into folder hierarchies

Agents
team-alpha
research
summariser
analyst
ops
monitor

Group related agents under slash-separated folder paths. Folders are created automatically on first use — no dashboard setup required. Navigate the hierarchy in the Agents view, or scope policies and runtime configs to an entire folder at once.

start_session(folder_path="team/subfolder")
2026.3Feature · UI
April 2026

Search across all sessions and events

"rate limit error"
session goal: analyze Q3 sales data
API call failed — rate limit error on gpt-4o at step 3
session goal: summarise customer feedback
Retrying after rate limit error (attempt 2/3)…

Full-text search across session goals, event content, tool inputs/outputs, decisions, and error messages — all from one search bar. PostgreSQL trigram indexes power fast partial-match results with highlighted snippets so you can spot the relevant line without opening each event.

2026.3Feature · Platform
April 2026

One-click Slack integration for alerts

Connect to Slack
Post to channel
#ops-alerts
#general
#engineering

Connect your Slack workspace directly from the Alerts settings page — no webhook URL hunting or manual channel configuration. OAuth scopes are minimal: Niitaka only requests permission to post to the channels you select. Existing webhook-based channels continue to work unchanged.