Documentation
¶
Overview ¶
Package callback 提供 AI Agent 回调接口。 允许 AI Agent 在执行过程中与主程序交互,如发送消息、创建任务等。
Index ¶
- type ApprovalRequest
- type ApprovalResponse
- type Callback
- type FSCallback
- func (c *FSCallback) CancelTask(ctx context.Context, taskID string) error
- func (c *FSCallback) ListTasks(ctx context.Context, groupID string) ([]scheduler.Task, error)
- func (c *FSCallback) PauseTask(ctx context.Context, taskID string) error
- func (c *FSCallback) ReadPendingApprovalRequests(ctx context.Context) ([]IPCMessage, error)
- func (c *FSCallback) ReadPendingMessages(ctx context.Context) ([]IPCMessage, error)
- func (c *FSCallback) RequestApproval(ctx context.Context, req ApprovalRequest) (*ApprovalResponse, error)
- func (c *FSCallback) RespondToApproval(ctx context.Context, approvalID string, approved bool, ...) error
- func (c *FSCallback) ResumeTask(ctx context.Context, taskID string) error
- func (c *FSCallback) ScheduleTask(ctx context.Context, req scheduler.CreateTaskRequest) (*scheduler.Task, error)
- func (c *FSCallback) SendMessage(ctx context.Context, req SendMessageRequest) error
- type IPCMessage
- type MessageType
- type SendMessageRequest
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) 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" )