2026.5Feature · UI + SDK
May 2026Filter sessions by custom tags
Active filtersconnection: prod-db ×
a1b2c3…db-analystconnection: prod-dbteam: sales
e5f6a7…db-analystconnection: prod-dbdb_type: postgres
c9d0e1…db-analystconnection: 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={...})
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 2026Name 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")
Async LiteLLM fully instrumented
async def handle(msg):
resp = await litellm.acompletion(…)
● capturedreturn 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 2026Organise agents into folder hierarchies
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 2026Search across all sessions and events
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 2026One-click Slack integration for alerts
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.