Documentation ¶
Index ¶
- Constants
- Variables
- func InitActAsForBots(ctx context.Context, allBots ...*Bot)
- type ActAs
- type Bot
- func (b *Bot) ExecuteFunctions(ctx context.Context, historyBeforeFunctionCall history.Messages, ...) (string, error)
- func (b *Bot) InjectCoordinatorPrompt(allBotConfigs []*Config)
- func (b *Bot) Introduce(ctx context.Context, historyMessages history.Messages) (string, error)
- func (b *Bot) Logger(ctx context.Context, funcName string) (*logrus.Entry, context.Context)
- func (b *Bot) MakeSystemMessage(ctx context.Context, appends ...string) *history.Message
- func (b *Bot) Messages(ctx context.Context, globalHistory *history.History) history.Messages
- func (b *Bot) NormalReq(ctx context.Context, mergedHistory history.Messages) (string, error)
- func (b *Bot) Question(ctx context.Context, h *history.History, question string) (string, error)
- func (b *Bot) SendChat(ctx context.Context, globalHistory *history.History) (string, error)
- func (b *Bot) String() string
- func (b *Bot) Summarize(ctx context.Context, messages2Summary history.Messages) (string, error)
- func (b *Bot) WithArgsReplacer(argsReplacer map[string]any) *Bot
- type Config
- type FunctionCtx
- type FunctionMode
- type Loader
- func (bl *Loader) Error() error
- func (bl *Loader) GetBot(name string) (*Bot, error)
- func (bl *Loader) GetBots() ([]*Bot, error)
- func (bl *Loader) LoadBot(ctx context.Context, conf *Config) *Loader
- func (bl *Loader) LoadBots(ctx context.Context, configs map[string]*Config) *Loader
- func (bl *Loader) StaplingBots(ctx context.Context, botsStructure any) error
- type Prompt
Constants ¶
View Source
const ( ActAsTellStart = `# 现在支持了以下 Agents ` ActAsTellTail = ` 当且仅当要使用 agent 时,回复 agent_call::name(问题),比如: ` + CallPrefix + `botheater_basic("接下来查询今天的交易信息") 注意: - 要调用 agent 时不要回复除调用 agent 以外的内容 - 如果不需要调用 agent, 你的回复一定不要包含这种格式 ` )
View Source
const ( // FunctionModePrivateOnly 遗忘模式, function 调用过程不会到原始上下文 FunctionModePrivateOnly FunctionMode = "private" // FunctionModeSampleOnly 采样模式, 要求 agent 将 function 调用总结成 sample,只有 sample 会到原始上下文 FunctionModeSampleOnly FunctionMode = "sample" // FunctionModeDump 复制模式, 将这个过程携带在返回中 FunctionModeDump FunctionMode = "dump" FunctionCtxLocal FunctionCtx = "local" FunctionCtxAll FunctionCtx = "all" )
Variables ¶
View Source
var ( ErrPrefabNotFound = irr.Error("prefab not found") ErrBotNotFound = irr.Error("bot not found") )
View Source
var Caller = &call.Caller{Prefix: CallPrefix, Regex: regexp.MustCompile(`agent_call::(\w+)\((.*?)\)`)}
Functions ¶
func InitActAsForBots ¶
InitActAsForBots 初始化所有 ActAs
Types ¶
type Bot ¶
type Bot struct { UUID string `yaml:"uuid" json:"uuid"` *Config // contains filtered or unexported fields }
func (*Bot) ExecuteFunctions ¶
func (*Bot) InjectCoordinatorPrompt ¶
InjectCoordinatorPrompt 注入所有机器人的信息到 Coordinator 的 prompt
func (*Bot) MakeSystemMessage ¶
type Config ¶
type Config struct { DriverConf driver.Config `yaml:",inline" json:",inline"` PrefabName string `yaml:"prefab_name,omitempty" json:"prefab_name,omitempty"` Usage string `yaml:"usage,omitempty" json:"usage,omitempty"` Prompt *Prompt `yaml:"prompt,omitempty" json:"prompt,omitempty"` // AckAs 表示这个 agent 的固有角色,用于支持多 Agent 模式 // 根据不同的角色,调度系统将 1. 启用特殊流程 2. 注入信息到 prompt (类似于 function) AckAs ActAs `yaml:"ack_as,omitempty" json:"ack_as,omitempty"` ActAsContext string `yaml:"act_as_context,omitempty" json:"act_as_context,omitempty"` }
type FunctionCtx ¶
type FunctionCtx string
type FunctionMode ¶
type FunctionMode string
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
Loader is a struct that helps to load bots with chainable methods and error handling.
func NewBotLoader ¶
NewBotLoader creates a new Loader instance.
type Prompt ¶
type Prompt struct { Content string `yaml:"content,omitempty" json:"content,omitempty" ` // Functions 放在 Prompt 里,处于对于 Functions 调用是 prompt 的一部分来理解 // todo: 这个有待考虑,因为实际上一切 Agent 行为都会体现在 Prompt 上,且 Example 可以基于知识库生成,因此这一层或许未必需要 Functions []string `yaml:"functions,omitempty" json:"functions,omitempty"` FunctionCtx `yaml:"function_ctx,omitempty" json:"function_ctx,omitempty"` FunctionMode `yaml:"function_mode,omitempty" json:"function_mode,omitempty"` }
func (*Prompt) BuildSystemMessage ¶
func (*Prompt) ReplaceContentBetween ¶
ReplaceContentBetween replaces the content between startStr and endStr with newContent
Click to show internal directories.
Click to hide internal directories.