Files
loki/docs/testing/plans/04-agents.md
2026-04-16 10:17:03 -06:00

3.0 KiB

Test Plan: Agents

Feature description

Agents combine a role (instructions), tools (bash/python/ts scripts), optional RAG, optional MCP servers, and optional sub-agent spawning capability. Agent::init compiles tools, resolves model, loads RAG, and sets up the agent environment.

Behaviors to test

Agent initialization

  • Agent::init loads config.yaml from agent directory
  • Agent tools compiled from tools.sh / tools.py / tools.ts
  • Tool file priority: .sh > .py > .ts > .js
  • Global tools loaded (from global_tools config)
  • Model resolved from agent config or defaults to current
  • Agent with no model_id uses current model
  • Temperature/top_p from agent config applied
  • Dynamic instructions (_instructions function) invoked if configured
  • Static instructions loaded from config
  • Agent variables interpolated into instructions
  • Special variables (os, cwd, now, etc.) interpolated
  • Agent .env file loaded if present
  • Built-in agents installed on first run (skip if exists)

Agent tools

  • Agent-specific tools available as function declarations
  • Global tools (from global_tools) also available
  • Tool binaries built in agent bin directory
  • clear_agent_bin_dir removes old binaries before rebuild
  • Tool declarations include name, description, parameters

Agent with MCP

  • MCP servers listed in agent config started
  • MCP meta functions (invoke/search/describe) added
  • Agent with MCP but mcp_server_support=false → error
  • MCP servers stopped on agent exit

Agent with RAG

  • RAG documents loaded from agent config
  • RAG available during agent conversation
  • RAG search results included in context

Agent sessions

  • Agent session started (temp or named)
  • agent_session config used if no explicit session
  • Agent session variables initialized

Agent lifecycle

  • use_agent checks function_calling_support
  • use_agent errors if agent already active
  • exit_agent clears agent, session, rag, supervisor
  • exit_agent restores global tool scope

Auto-continuation

  • Agents with auto_continue=true continue after incomplete todos
  • max_auto_continues limits continuation attempts
  • Continuation prompt sent with todo state
  • clear todo stops continuation

Conversation starters

  • Starters loaded from agent config
  • .starter lists available starters
  • .starter sends the starter as a message

Context switching scenarios

  • Agent → exit: tools cleared, MCP stopped, session ended
  • Agent with MCP → exit: MCP servers released, global MCP restored
  • Already in agent → start agent: error
  • Agent with RAG → exit: RAG cleared

Old code reference

  • src/config/agent.rs — Agent::init, agent config parsing
  • src/config/mod.rs — use_agent, exit_agent
  • src/config/request_context.rs — use_agent, exit_agent
  • src/function/mod.rs — Functions::init_agent, tool compilation