Agent SDKCustomizationSystem Prompts

System Prompts

The system prompt is the highest-leverage way to shape how Amara behaves. It sets the agent’s role, priorities, tone, and constraints for every turn in a session, before any user prompt is considered. The Syntic Agent SDK lets you use the default Syntic Code system prompt, append your own guidance to it, or replace it entirely.

Appending to the default prompt

Most applications should build on the default rather than discard it. The default prompt already teaches Amara how to use tools, edit files safely, and reason about a codebase. Appending lets you add your policies on top of that foundation.

import { query } from "@syntic/agent-sdk";
 
const response = query({
  prompt: "Refactor the auth module.",
  options: {
    systemPrompt: {
      preset: "syntic-code",
      append: "Always prefer small, reviewable diffs. Never introduce new dependencies without flagging them first.",
    },
  },
});
from syntic_agent_sdk import query
 
response = query(
    prompt="Refactor the auth module.",
    options={
        "system_prompt": {
            "preset": "syntic-code",
            "append": "Always prefer small, reviewable diffs. Never introduce new dependencies without flagging them first.",
        }
    },
)

Replacing the prompt entirely

When you’re building an agent that isn’t a coding assistant — say, a data-analysis or support agent — you can supply a fully custom system prompt. This gives you complete control but means you own all the behavioral guidance the default would have provided.

const response = query({
  prompt: "Summarize this quarter's incidents.",
  options: {
    systemPrompt: "You are Amara, an SRE assistant. Be terse, cite log lines, and never speculate about root cause without evidence.",
  },
});

Guidance for writing prompts

Keep instructions concrete and testable. Prefer positive directives (“do X”) over long lists of prohibitions, put the most important constraints first, and avoid contradicting the tool-use behavior the SDK relies on. If you find yourself repeating the same block across many queries, that is a signal to promote it into a reusable skill or slash command instead.