Nous.RunContext (nous v0.13.3)

View Source

Context passed to tools and dynamic prompts during agent execution.

The RunContext provides access to:

  • Dependencies (deps) - User-provided data like database connections
  • Retry count - Number of times this tool has been retried
  • Usage information - Token and request counts so far

Example with Tool

defmodule MyTools do
  def search_database(ctx, query) do
    # Access database from dependencies
    ctx.deps.database
    |> Database.search(query)
    |> format_results()
  end
end

# Pass deps when running agent
deps = %{database: MyApp.Database}
{:ok, result} = Agent.run(agent, "Search for users", deps: deps)

Summary

Functions

Create a new run context with dependencies.

Types

t()

@type t() :: t(any())

t(deps)

@type t(deps) :: %Nous.RunContext{
  deps: deps,
  retry: non_neg_integer(),
  usage: Nous.Usage.t()
}

Functions

new(deps, opts \\ [])

@spec new(deps :: any(), opts :: keyword()) :: t(any())

Create a new run context with dependencies.

Options

  • :retry - Current retry count (default: 0)
  • :usage - Current usage information (default: empty Usage)

Example

deps = %{database: MyApp.Database, api_key: "secret"}
ctx = RunContext.new(deps)
# Access in tools: ctx.deps.database