mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-06-12 20:11:38 +00:00
ed32e68c68
Part A — Channel quota limiter (managed mode): - DB-backed per-user/group request quotas with in-memory 60s TTL cache - Config merge priority: Groups > Channels > Providers > Default - Per-group quota override via channels.telegram.groups[chatID].quota - Migration 000009: index on channel_requests for quota queries - Hot-reload quota config via pub/sub (TopicConfigChanged) Part B — Per-run tool call budget: - Soft stop at configurable limit (default 25, per-agent override) - MaxToolCalls field on AgentDefaults + AgentSpec + LoopConfig - LLM gets one final call to summarize when budget exceeded Part C — Web UI + config page refactor: - QuotaSection with provider/channel dropdowns (useProviders, useChannelInstances) - Config page refactored to vertical sidebar tabs layout - Categories: General, Quota, Agents, Tools, Connections, Advanced, Raw Editor - Fixed config.patch RPC to serialize raw JSON + baseHash correctly - Config change pub/sub broadcast from handleApply/handlePatch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 lines
341 B
Go
14 lines
341 B
Go
package agent
|
|
|
|
import "context"
|
|
|
|
// Agent is the core abstraction for an AI agent execution loop.
|
|
// Implemented by *Loop; extracted as an interface for testability and composability.
|
|
type Agent interface {
|
|
ID() string
|
|
Run(ctx context.Context, req RunRequest) (*RunResult, error)
|
|
IsRunning() bool
|
|
Model() string
|
|
ProviderName() string
|
|
}
|