# Prompting tips

Some prompting tips to use Tidewave effectively.

## Be specific

AI assistants are not very different from working with your teammates.
If you give specific instructions, it is more likely they will deliver
exactly what you asked. However, if you are vague, they may try things
completely different from what you had in mind, sometimes surprising you,
othertimes leading to work that will have to be discarded.

## Short chats

In general, you should keep your chats (also known as conversations/threads)
short.

Once the context window becomes too large, models may become imprecise,
forget previous instructions, or start running into loops. Furthermore,
once a model does something wrong, its mistakes remain in the prompt,
and trying to coax them to fix it often leads them to repeat those mistakes
in a loop, leading to increasing token/message consumption.

## Configure your prompts

All coding agents (except Claude Code) allows you to write an [`AGENTS.md`](https://agents.md/)
file that is given as context to models, with specifics to your application
and stack. If you are using Claude Code, you can use a `CLAUDE.md` file instead.

## Use eval: AI's swiss army knife

Tidewave can evaluate code within your project (using the `project_eval` tool),
as well as execute commands in the terminal (using `shell_eval`). Therefore,
you can ask Tidewave to execute complex tasks without a need for additional
tooling. With Tidewave, you can:

  * evaluate code within the project context
  * execute commands in the terminal
  * run SQL queries directly on your development database

This direct integration streamlines your workflow and keeps everything within
your existing development environment. For example, you no longer need to use
a separate tool to connect to your database, you can either execute SQL queries
directly or ask the agent to use your models and data schemas to load the data
in a more structured format. In this case, remember to be precise and don't shy
away from telling the exact tool it should use.

Similarly, any API that your application talks to is automatically available
to Tidewave, which can then leverage your established authentication methods
and access patterns without requiring you to set up and maintain additional
development keys.

If you find yourself needing to automate workflows, you can implement those
as regular functions in your codebase and ask the agent to use them, by
explicitly telling Tidewave to "use `project_eval` to invoke function
`Foo.Bar.baz`". This means extending Tidewave is simply a matter of adding
new functions/methods to your codebase, like any other code you write, and
informing Tidewave where this functionality is defined.

In our experience, models become less effective when there are too many
tools, and work best with a few powerful ones. With our eval tools, Tidewave
has the full power of your programming language within the context of your
project.
