callback

package
v0.0.0-...-9d86306 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2026 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package callback 提供 AI Agent 回调接口。 允许 AI Agent 在执行过程中与主程序交互,如发送消息、创建任务等。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApprovalRequest

type ApprovalRequest struct {
	ChatID      string        // 发送审批请求的会话
	Title       string        // 审批标题
	Description string        // 审批描述
	Timeout     time.Duration // 超时时间
}

ApprovalRequest 审批请求

type ApprovalResponse

type ApprovalResponse struct {
	Approved   bool   // 是否批准
	ApprovedBy string // 批准人
	Comment    string // 批注
}

ApprovalResponse 审批响应

type Callback

type Callback interface {
	// SendMessage 发送消息到指定会话
	// 参数:ctx - 上下文,req - 发送请求
	// 返回:可能的错误
	SendMessage(ctx context.Context, req SendMessageRequest) error

	// ScheduleTask 创建定时任务
	// 参数:ctx - 上下文,req - 任务创建请求
	// 返回:创建的任务和可能的错误
	ScheduleTask(ctx context.Context, req scheduler.CreateTaskRequest) (*scheduler.Task, error)

	// PauseTask 暂停任务
	// 参数:ctx - 上下文,taskID - 任务 ID
	// 返回:可能的错误
	PauseTask(ctx context.Context, taskID string) error

	// ResumeTask 恢复任务
	// 参数:ctx - 上下文,taskID - 任务 ID
	// 返回:可能的错误
	ResumeTask(ctx context.Context, taskID string) error

	// CancelTask 取消任务
	// 参数:ctx - 上下文,taskID - 任务 ID
	// 返回:可能的错误
	CancelTask(ctx context.Context, taskID string) error

	// ListTasks 列出群组的任务
	// 参数:ctx - 上下文,groupID - 群组 ID
	// 返回:任务列表和可能的错误
	ListTasks(ctx context.Context, groupID string) ([]scheduler.Task, error)

	// RequestApproval 请求人工审批(阻塞等待)
	// 参数:ctx - 上下文,req - 审批请求
	// 返回:审批响应和可能的错误
	RequestApproval(ctx context.Context, req ApprovalRequest) (*ApprovalResponse, error)
}

Callback AI 回调接口 提供 Agent 执行过程中与主程序交互的能力。

type FSCallback

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

FSCallback 基于文件系统 IPC 的回调实现 兼容 NanoClaw 的 IPC 模式,通过 JSON 文件进行进程间通信。

func NewFSCallback

func NewFSCallback(ipcDir string, sched scheduler.Scheduler) *FSCallback

NewFSCallback 创建文件系统回调实例 参数:

  • ipcDir: IPC 目录路径
  • sched: 调度器实例(可选,用于任务管理)

返回:Callback 实现

func (*FSCallback) CancelTask

func (c *FSCallback) CancelTask(ctx context.Context, taskID string) error

CancelTask 取消任务

func (*FSCallback) ListTasks

func (c *FSCallback) ListTasks(ctx context.Context, groupID string) ([]scheduler.Task, error)

ListTasks 列出群组的任务

func (*FSCallback) PauseTask

func (c *FSCallback) PauseTask(ctx context.Context, taskID string) error

PauseTask 暂停任务

func (*FSCallback) ReadPendingApprovalRequests

func (c *FSCallback) ReadPendingApprovalRequests(ctx context.Context) ([]IPCMessage, error)

ReadPendingApprovalRequests 读取待处理的审批请求 用于主程序轮询审批请求。 参数:ctx - 上下文 返回:审批请求列表和可能的错误

func (*FSCallback) ReadPendingMessages

func (c *FSCallback) ReadPendingMessages(ctx context.Context) ([]IPCMessage, error)

ReadPendingMessages 读取并删除待处理的消息 用于主程序轮询 IPC 目录。 参数:ctx - 上下文 返回:消息列表和可能的错误

func (*FSCallback) RequestApproval

func (c *FSCallback) RequestApproval(ctx context.Context, req ApprovalRequest) (*ApprovalResponse, error)

RequestApproval 请求人工审批 写入审批请求文件,轮询等待审批响应。

func (*FSCallback) RespondToApproval

func (c *FSCallback) RespondToApproval(ctx context.Context, approvalID string, approved bool, approvedBy, comment string) error

RespondToApproval 响应审批请求 参数:

  • ctx: 上下文
  • approvalID: 审批请求 ID
  • approved: 是否批准
  • approvedBy: 批准人
  • comment: 批注

返回:可能的错误

func (*FSCallback) ResumeTask

func (c *FSCallback) ResumeTask(ctx context.Context, taskID string) error

ResumeTask 恢复任务

func (*FSCallback) ScheduleTask

func (c *FSCallback) ScheduleTask(ctx context.Context, req scheduler.CreateTaskRequest) (*scheduler.Task, error)

ScheduleTask 创建定时任务

func (*FSCallback) SendMessage

func (c *FSCallback) SendMessage(ctx context.Context, req SendMessageRequest) error

SendMessage 发送消息到指定会话

type IPCMessage

type IPCMessage struct {
	Type     MessageType `json:"type"`
	ID       string      `json:"id,omitempty"`
	ChatID   string      `json:"chat_id,omitempty"`
	Platform string      `json:"platform,omitempty"`
	Text     string      `json:"text,omitempty"`
	ReplyTo  string      `json:"reply_to,omitempty"`

	// 审批相关
	Title       string `json:"title,omitempty"`
	Description string `json:"description,omitempty"`
	Approved    bool   `json:"approved,omitempty"`
	ApprovedBy  string `json:"approved_by,omitempty"`
	Comment     string `json:"comment,omitempty"`
}

IPCMessage IPC 消息结构(用于文件系统 IPC)

type MessageType

type MessageType string

MessageType IPC 消息类型

const (
	// MessageTypeSend 发送消息
	MessageTypeSend MessageType = "message"
	// MessageTypeApprovalRequest 审批请求
	MessageTypeApprovalRequest MessageType = "approval_request"
	// MessageTypeApprovalResponse 审批响应
	MessageTypeApprovalResponse MessageType = "approval_response"
)

type SendMessageRequest

type SendMessageRequest struct {
	ChatID   string // 目标会话 ID
	Platform string // 平台标识
	Text     string // 消息内容
	ReplyTo  string // 回复的消息 ID(可选)
}

SendMessageRequest 发送消息请求

Jump to

Keyboard shortcuts

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