local agent = require("agent")
local session = require("session")
local id = std.env.get_or("AGENT_ID", "default")
local prompt = _PROMPT or std.env.get_or("AGENT_PROMPT", "Say hello in one short sentence.")
local function trim_last_n(msgs, n)
if #msgs <= n then
return msgs
end
local out = {}
for i = #msgs - n + 1, #msgs do
table.insert(out, msgs[i])
end
return out
end
local prior = session.load(id)
print(string.format("session[%s] prior_turns=%d", id, #prior))
local r = agent.run({
prompt = prompt,
history = prior,
system = "You are a concise assistant. Remember context from prior turns.",
max_iterations = 5,
})
if not r.ok then
print("agent error: " .. tostring(r.error))
os.exit(1)
end
print("--- response ---")
print(r.content)
print("----------------")
print(string.format("usage: in=%d out=%d total=%d", r.usage.input_tokens, r.usage.output_tokens, r.usage.total_tokens))
session.save(id, r.messages)
print(string.format("session[%s] saved_turns=%d", id, #r.messages))