18c9354095
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。 - 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。 - 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。 - 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
32 lines
1.1 KiB
Go
32 lines
1.1 KiB
Go
package contract
|
|
|
|
import "context"
|
|
|
|
// BusinessReadContext identifies the customer bound to the current support
|
|
// conversation. Host tools must use these trusted values instead of accepting
|
|
// customer identifiers from model-generated arguments.
|
|
type BusinessReadContext struct {
|
|
ConversationID int64
|
|
CustomerType string
|
|
CustomerID int64
|
|
CustomerExternalID string
|
|
CustomerName string
|
|
RequestMessageID int64
|
|
RequestID string
|
|
CheckPointID string
|
|
AccessProof *CustomerAccessProof
|
|
}
|
|
|
|
// BusinessReadTool lets the host expose a narrowly scoped, read-only business
|
|
// query to AI Agent without coupling the customer-service module to host data.
|
|
type BusinessReadTool struct {
|
|
Code string
|
|
Description string
|
|
CustomerTypes []string
|
|
InputSchema map[string]any
|
|
// MatchIntent lets the host require a fresh read for messages whose answer
|
|
// must not rely on stale conversational text. It must be side-effect free.
|
|
MatchIntent func(string) bool
|
|
Execute func(context.Context, BusinessReadContext, map[string]any) (any, error)
|
|
}
|