controllers

package
v0.2.6 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2025 License: BSD-2-Clause, Unlicense Imports: 14 Imported by: 0

Documentation

Overview

This is intended to be a light wrapper to make automatically loading context easier to configure with yaml or json

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentConfiguration

type AgentConfiguration struct {
	Name       string
	Entrypoint string
	Runner     string
	Context    string
}

This the the structure we parse from configuration files for agents

func (*AgentConfiguration) GetCreateAgent

func (a *AgentConfiguration) GetCreateAgent() (*core.CreateAgent, error)

type NaiveConfiguration

type NaiveConfiguration struct {
	AgentConfigs []AgentConfiguration `json:"Agents"`
}

type NaiveController

type NaiveController struct {
	client.CoreAgent
	Agents []*core.CreateAgent
}

func NewNaiveController

func NewNaiveController(addr string) *NaiveController

func (*NaiveController) LoadConfig

func (c *NaiveController) LoadConfig(config_path string) error

Loads the state of the Controller from file. Allows us to set up the Controller however we need before passing to client.RunUntilComplete.

func (*NaiveController) Loop

func (c *NaiveController) Loop(ctx context.Context) (cont bool, err error)

Loop returns false because the NaiveController doesn't do anything besides create agents at system launch.

func (*NaiveController) Setup

func (c *NaiveController) Setup() error

type SlipnetConfiguration

type SlipnetConfiguration struct {
	NoticerConfigs      []AgentConfiguration
	FlushIntervalMs     int
	MaxCodeletsPerFlush int
}

This configuration is what we parse from disk

Users of SlipnetController are expected to configure the initial Noticers for the system.

type SlipnetController

type SlipnetController struct {
	client.CoreAgent
	client.Controller
	Config   SlipnetConfiguration
	CodeRack map[*core.CreateAgent]int //
	Noticers []*core.CreateAgent       // Don't love this borrowed terminology
	// contains filtered or unexported fields
}

SlipnetController is a pseudo-implementation of the `Slipnet` construct by Mitchell and Hofstadter. SlipnetController has three main components:

  1. Coderack (CodeRack): a population of codelets (Agents, via CreateAgent messages) to be executed. There may be multiple copies of a single codelet (hence the typing map[*CreateAgent]int); the more copies, the more "urgent" the task performed by that codelet is.
  2. Noticers (bottom-up codelets): codelets that act on general Blackboard state without strong preconceived notions about the data they observe. In other words, they simply notice what's available to notice and act on that information.
  3. Workspace (post_ch output): short-term memory revealing the progression of the events in a system (represented by Post messages). The SlipnetController responds to data present on the Workspace to accomplish a task.

SlipnetController uses these three interacting components to iteratively optimize a Core knowledge graph according to environmental pressures.

func NewSlipnetController

func NewSlipnetController(addr string) *SlipnetController

func (*SlipnetController) LoadConfig

func (c *SlipnetController) LoadConfig(config_path string) error

LoadConfig loads a SlipnetController config file for initialization.

func (*SlipnetController) Loop

func (c *SlipnetController) Loop(ctx context.Context) (cont bool, err error)

func (*SlipnetController) Setup

func (c *SlipnetController) Setup() error

type SlipnetNoticer

type SlipnetNoticer struct{}

SlipnetNoticers are agents that evalute the state of the blackboard and schedule followup processes via the controller.

We use the tag "slipnet-notification" to send "scheduling" signals back to the slipnet controller.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳