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 ¶
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:
- 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.
- 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.
- 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.