Skip to content

Runtime Profiles

Runtime profiles are the fastest way to shape how an autonomous agent behaves without tuning dozens of knobs by hand.

Why profiles exist

Each built-in profile bundles tradeoffs across:

  • tool call budget
  • context budget
  • summarization thresholds
  • memory read/write policy
  • delegation depth

That makes profiles operational presets, not just marketing labels.

Built-in profiles

ProfileBest forTool budgetParallel toolsContext budgetDelegation
fastShort tasks, fast UI turnarounds, mostly direct answers8332000off
balancedDefault product integrations and general autonomous workflows20596000role-based
deepHeavier investigation, larger context windows, more tool-heavy work408200000role-based
researchLong-running research agents with broad context and stronger delegation8010400000automatic

Profile defaults assume a modern frontier model (Claude 4.x, GPT-4o, Gemini 2.x) with at least a 128k context window. If you are running an older or smaller model, pass an explicit limits.maxContextTokens to clamp the budget.

Practical differences

ProfileLast turns keptChild context policyMemory scopeSummarization trigger
fast8minimalsession24000
balanced16scopedsession72000
deep30scopedworkspace150000
research60fullworkspace300000

Important default to remember

All built-in profiles currently default planning to off.

That is intentional. Autonomous planning is powerful, but it should be enabled because your workflow needs it, not because the profile silently turned it on.

Start here unless you know otherwise:

ts
const agent = createSmartAgent({
  model,
  tools,
  runtimeProfile: "balanced",
  planning: { mode: "todo" },
});

Use that as the baseline for autonomous product work. Move up to deep or research only when you can explain why the extra context and delegation are needed.

Custom profiles

If a built-in profile is close but not right, extend it:

ts
const agent = createSmartAgent({
  model,
  tools,
  runtimeProfile: "custom",
  customProfile: {
    extends: "balanced",
    limits: { maxToolCalls: 10, maxContextTokens: 18000 },
    planning: { mode: "todo" },
    context: { lastTurnsToKeep: 10 },
  },
});

Use custom profiles to tune behavior, not to discard the built-in operating assumptions without reason.

How to choose well

  • Choose fast if latency matters more than broad exploration.
  • Choose balanced if the agent is a product feature and not a research sandbox.
  • Choose deep if the agent must inspect more material before it acts.
  • Choose research if the agent is explicitly allowed to branch, search, and delegate more aggressively.

Common mistake

The common failure mode is starting with custom too early. You lose the benefit of tested presets and end up debugging self-inflicted configuration drift.

Agent SDK is part of the Cognipeer platform.