Help us shape the future of Go! Take the 2026 Go Developer Survey

agent

package
v0.19.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2026 License: MIT Imports: 38 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildInstructions

func BuildInstructions(modelID string, data prompt.SectionData) string

Types

type Agent

type Agent struct {
	// contains filtered or unexported fields
}

func New

func New(ws *code.Workspace, cfg Config, ui code.UI) *Agent

New creates a code agent; the caller keeps ownership of the workspace and telemetry.

func (*Agent) Cancel

func (a *Agent) Cancel(id string)

func (*Agent) Close

func (a *Agent) Close() error

func (*Agent) Compact added in v0.19.0

func (a *Agent) Compact(ctx context.Context, id, focus string) (harness.CompactResult, error)

func (*Agent) ContextStats added in v0.11.2

func (a *Agent) ContextStats(id string) (harness.ContextStats, bool)

func (*Agent) DeleteSession

func (a *Agent) DeleteSession(ctx context.Context, id string) error

func (*Agent) Effort

func (a *Agent) Effort(sessionID string) (string, []string)

func (*Agent) ExecSession added in v0.16.4

func (a *Agent) ExecSession(id string, execID int) (shell.ExecSessionInfo, bool)

func (*Agent) ExecSessions added in v0.16.4

func (a *Agent) ExecSessions(id string) []shell.ExecSessionInfo

ExecSessions exposes commands that exec left running so web clients can present them with the session's other background work.

func (*Agent) FetchModels added in v0.8.2

func (a *Agent) FetchModels(ctx context.Context) error

func (*Agent) ForkSession added in v0.19.0

func (a *Agent) ForkSession(ctx context.Context, id, title string) (string, error)

ForkSession copies history, model and mode; tasks, schedules and queued inputs stay with the source.

func (*Agent) HasSession

func (a *Agent) HasSession(id string) bool

func (*Agent) HistorySnapshot added in v0.12.9

func (a *Agent) HistorySnapshot(id string) code.HistorySnapshot

func (*Agent) HistoryVersion added in v0.12.9

func (a *Agent) HistoryVersion(id string) code.HistoryVersion

func (*Agent) ListSessions

func (a *Agent) ListSessions(_ context.Context) ([]code.SessionInfo, error)

func (*Agent) LoadSession

func (a *Agent) LoadSession(ctx context.Context, id string) error

func (*Agent) LoadTurnQueue added in v0.15.8

func (a *Agent) LoadTurnQueue(sessionID string) (code.TurnQueueState, error)

func (*Agent) Messages

func (a *Agent) Messages(id string) []harness.Message

func (*Agent) ModelDiscoveryError added in v0.18.0

func (a *Agent) ModelDiscoveryError() error

ModelDiscoveryError reports discovery failure without discarding the last known model list or preventing the use of an explicitly configured model.

func (*Agent) Models

func (a *Agent) Models(sessionID string) ([]model.Model, string)

func (*Agent) Modes added in v0.8.0

func (a *Agent) Modes(sessionID string) ([]code.Mode, string)

func (*Agent) Name

func (a *Agent) Name() string

func (*Agent) NewSession

func (a *Agent) NewSession(ctx context.Context) (string, error)

func (*Agent) Recap added in v0.11.2

func (a *Agent) Recap(ctx context.Context, id string) (string, error)

func (*Agent) RecordUserShellCommand added in v0.18.2

func (a *Agent) RecordUserShellCommand(id, command, output string, exitCode int, duration time.Duration) error

RecordUserShellCommand records a user-executed `!` shell command and its output in the session conversation history so the model can see it on subsequent turns.

func (*Agent) RoleModel added in v0.14.10

func (a *Agent) RoleModel(role string) (harness.ModelOption, bool)

RoleModel resolves "default", "complex", or "utility" without a session. Empty and "main" select default; "plan" is a compatibility alias for complex.

func (*Agent) RunningTaskCount added in v0.11.2

func (a *Agent) RunningTaskCount() int

RunningTaskCount sums running background agents across every live session, so quitting warns about agents outside the currently viewed session too.

func (*Agent) Save

func (a *Agent) Save(id string) error

func (*Agent) SaveTurnQueue added in v0.15.8

func (a *Agent) SaveTurnQueue(sessionID string, state code.TurnQueueState) error

func (*Agent) Schedules added in v0.12.19

func (a *Agent) Schedules(id string) schedule.Store

Schedules exposes the session's scheduled tasks so UI surfaces can list them alongside its background agents.

func (*Agent) Send

func (a *Agent) Send(ctx context.Context, id string, input []harness.Content) (iter.Seq2[harness.Message, error], error)

func (*Agent) SessionsDir

func (a *Agent) SessionsDir() string

func (*Agent) SetEffort

func (a *Agent) SetEffort(_ context.Context, sessionID, value string) error

func (*Agent) SetMode added in v0.8.0

func (a *Agent) SetMode(_ context.Context, sessionID, modeID string) error

func (*Agent) SetModel

func (a *Agent) SetModel(_ context.Context, sessionID, id string) error

SetModel selects one model for the session, shared by Agent and Plan modes.

func (*Agent) SetUI

func (a *Agent) SetUI(ui code.UI)

func (*Agent) SetUnattended added in v0.17.3

func (a *Agent) SetUnattended(_ context.Context, sessionID string, enabled bool) error

func (*Agent) Steer added in v0.10.9

func (a *Agent) Steer(_ context.Context, id string, input code.TurnInput) error

func (*Agent) StopExecSession added in v0.16.4

func (a *Agent) StopExecSession(id string, execID int) error

func (*Agent) Tasks added in v0.11.2

func (a *Agent) Tasks(id string) *task.Registry

Tasks exposes the session's background-agent registry so UI surfaces can list running agents and deliver completion notifications.

func (*Agent) Tools

func (a *Agent) Tools(id string) []tool.Tool

func (*Agent) TurnFeatures added in v0.10.9

func (a *Agent) TurnFeatures(string) code.TurnFeatures

func (*Agent) TurnReviews added in v0.16.10

func (a *Agent) TurnReviews(ctx context.Context, id string) ([]harness.TurnReview, error)

func (*Agent) Unattended added in v0.17.3

func (a *Agent) Unattended(sessionID string) bool

func (*Agent) UndoTurn added in v0.16.10

func (a *Agent) UndoTurn(ctx context.Context, sessionID, turnID string) error

func (*Agent) Usage

func (a *Agent) Usage(id string) harness.Usage

func (*Agent) Workspace

func (a *Agent) Workspace() *code.Workspace

type Config added in v0.19.0

type Config struct {
	harness.Config
	Options
}

Config holds the startup settings for New.

func DefaultConfig added in v0.19.0

func DefaultConfig() (Config, error)

DefaultConfig loads settings from the environment; the caller must shut down Telemetry after closing its agents.

type Options added in v0.15.9

type Options struct {
	// IsolateSessions disables single-client prompt routing fallbacks and keeps model
	// and effort changes scoped to the session where they were made.
	IsolateSessions bool

	DisableShell     bool
	DisableSandbox   bool
	SandboxNetwork   bool
	DisableWebSearch bool
	DisableWebFetch  bool

	// Empty role models are selected automatically from available models.
	ComplexModel string
	UtilityModel string
}

Options toggles code agent features; the zero value enables all tools with sandboxing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL