ActiveAgent::Base
Constants
AGENTS = [] of TypeNode
DEFAULT_MAX_STEPS = 8
Class methods
__max_steps
Source__model
Source__provider_name
Source__system_prompt
Source__tool_metas
Sourceask(input : String | Message, provider impl : Provider | Nil = nil, stream : Proc(String, Nil) | Nil = nil) : Run
Sourceexecute_tool(tc : ToolCall) : ToolResult
Execute one tool call via the compile-time dispatch: parse JSON args into compile-time types, run the tool's own code, never let tool errors escape the loop — the model sees the error and can correct itself.
Macros
max_steps(n)
Sourceprovider(name, model = nil)
provider :openai | :zai | :kimi | :deepseek | :lmstudio | :vllm | :ollama | :test [, model: "..."]
system(text)
Sourcetools(*klasses)
tools Foo, Bar — the allowlist (the agent's whole world). Compile-time dispatch: metas for the wire, a case-dispatch for execution (no runtime reflection, no metaclass arrays).