Skip to main content
To build effective agents, start simple — just a model, tools, and instructions. Once that works, layer in more functionality as needed. It’s also best to begin with well-defined tasks like report generation, data extraction, classification, summarization, knowledge search, and document processing. These early wins help you identify what works, validate user needs, and set the stage for advanced systems. Here’s the simplest possible report generation agent:

Setting a System Prompt

You can customize your agent’s behavior by providing a system_prompt or instructions parameter. The system_prompt gives you full control over the system message sent to the model, while instructions provides high-level guidance that gets incorporated into the agent’s default prompt. The instructions parameter is the simplest way to guide your agent’s behavior:

Using system_prompt (Full control)

For complete control over the system message, use system_prompt:

Combining with Agent Identity

You can also define your agent’s identity using role, goal, and other attributes:

Run your Agent

When running your agent, use the Agent.print_do() method to print the response in the terminal. This is only for development purposes and not recommended for production use. In production, use the Agent.do() or Agent.do_async() methods. For example:
Next, continue building your agent by adding functionality as needed. Common questions:
  • How do I run my agent? -> See the running agents documentation.
  • How do I manage sessions? -> See the memory documentation.
  • How do I manage input and capture output? -> See the running agents documentation.
  • How do I add tools? -> See the tools documentation.
  • How do I give the agent context? -> See the agent attributes documentation.
  • How do I add knowledge? -> See the knowledge base documentation.
  • How do I handle images, audio, video, and files? -> See the OCR documentation.
  • How do I add guardrails? -> See the safety engine documentation.
  • How do I cache model responses during development? -> See the task attributes documentation for cache configuration.

Developer Resources