Documentation
¶
Index ¶
- Variables
- func CheckDBHealth(db *gorm.DB) error
- func InitAsynqClient() *asynq.Client
- func InitAsynqServer() *asynq.Server
- func InitDB() *gorm.DB
- func InitGinServer(m []gin.HandlerFunc, userHdl *systemApi.UserHandler, ...) *gin.Engine
- func InitLogger() *zap.Logger
- func InitMiddlewares(ih ijwt.Handler, l *zap.Logger, roleSvc service.RoleService, ...) []gin.HandlerFunc
- func InitRedis() redis.Cmdable
- func InitScheduler() *asynq.Scheduler
- func InitStoredProcedures(db *gorm.DB) error
- func InitTables(db *gorm.DB) error
- func InitTrans() error
- func InitViper() error
- func IsDBAvailable(db *gorm.DB) bool
- func ProvideAgentAuditStore(dao agentDao.AgentDAO, l *zap.Logger) agentAudit.Store
- func ProvideAgentConfigDAO(db *gorm.DB) *agentDao.AgentConfigDAO
- func ProvideAgentConfigService(dao *agentDao.AgentConfigDAO) *agentService.ConfigService
- func ProvideAgentDAO(db *gorm.DB, l *zap.Logger, searchEngine *agentSearch.SearchEngine) agentDao.AgentDAO
- func ProvideAgentGuardChain(eval *agentRisk.Evaluator, l *zap.Logger) *agentGuard.Chain
- func ProvideAgentHandler(agentSvc agentService.AgentService, hubSvc agentHub.HubService, ...) *api.Handler
- func ProvideAgentInsightsEngine(db *gorm.DB, l *zap.Logger) *agentInsight.InsightsEngine
- func ProvideAgentLLMAuditor(l *zap.Logger) *agentPipeline.LLMAuditor
- func ProvideAgentMemoryProvider(dao agentDao.AgentDAO, l *zap.Logger) spi.MemoryProvider
- func ProvideAgentNudgeReviewer(cfg *AgentConfig, l *zap.Logger) *agentNudge.MemoryNudgeReviewer
- func ProvideAgentPipeline(dao agentDao.AgentDAO, cfgSvc *agentService.ConfigService, ...) *agentPipeline.Stage
- func ProvideAgentRiskEvaluator(cfg *AgentRiskConfig) *agentRisk.Evaluator
- func ProvideAgentService(dao agentDao.AgentDAO, toolMgr *agentToolManager.ToolManager, ...) agentService.AgentService
- func ProvideAgentSkillManagerTool(store *agentSkill.SkillStore) tool.InvokableTool
- func ProvideAgentSkillStore(cfg *AgentConfig, l *zap.Logger) (*agentSkill.SkillStore, error)
- func ProvideAgentToolManager(dao agentDao.AgentDAO, l *zap.Logger, skillStore *agentSkill.SkillStore) *agentToolManager.ToolManager
- func ProvideClawHubClient(cfg *AgentConfig) *agentSkill.ClawHubClient
- func ProvideCronAsynqClient() *asynq.Client
- func ProvideCronAsynqServer(svc *cronService.CronService, logger *zap.Logger) *cronServer.CronAsynqServer
- func ProvideCronDAO(db *gorm.DB) *cronDao.CronDAO
- func ProvideCronManager(svc *cronService.CronService, logger *zap.Logger) *cronManager.Manager
- func ProvideCronService(dao *cronDao.CronDAO, agentSvc agentService.AgentService, logger *zap.Logger, ...) *cronService.CronService
- func ProvideFileManagerConfig() filesService.ManagerConfig
- func ProvideFirewallMetrics() *agentGuard.FirewallMetrics
- func ProvideHubService(dao agentDao.AgentDAO, toolMgr *agentToolManager.ToolManager, ...) agentHub.HubService
- func ProvideLocalCapsuleExecutor(agentCfg *AgentConfig) (agentRuntime.CapsuleExecutor, error)
- func ProvideMemoryWriteGuard(l *zap.Logger) *agentRuntime.MemoryWriteGuard
- func ProvideModelFirewall(cfg *AgentConfig, metrics *agentGuard.FirewallMetrics) *agentGuard.ModelFirewall
- func ProvidePolicyEngine(l *zap.Logger) *agentRuntime.PolicyEngine
- func ProvideSearchEngine(db *gorm.DB, l *zap.Logger) *agentSearch.SearchEngine
- func ProvideSecureToolRuntime(guardChain *agentGuard.Chain, riskEval *agentRisk.Evaluator, ...) (*agentRuntime.SecureToolRuntime, error)
- func ProvideSkillService(store *agentSkill.SkillStore, clawHub *agentSkill.ClawHubClient, ...) *agentService.SkillService
- func ProvideTerminalConfig() terminalservice.Config
- func ProvideTerminalLocalAdapter() terminalservice.LocalAdapter
- func ProvideTerminalService(logger *zap.Logger, local terminalservice.LocalAdapter, ...) terminalservice.TerminalService
- func ProvideToolResultSanitizer(l *zap.Logger) *agentRuntime.ToolResultSanitizer
- type AgentConfig
- type AgentFirewallConfig
- type AgentHubConfig
- type AgentLLMConfig
- type AgentNudgeConfig
- type AgentRiskConfig
- type AgentSearchConfig
- type AgentShellConfig
- type AgentSkillConfig
- type Cmd
- type Config
- type DatabaseConfig
- type FileManagerConfig
- type FileManagerRootConfig
- type JWTConfig
- type LogConfig
- type MockConfig
- type MySQLConfig
- type RedisConfig
- type ServerConfig
Constants ¶
This section is empty.
Variables ¶
var AgentSet = wire.NewSet( ProvideAgentConfig, ProvideAgentRiskConfig, ProvideAgentHubConfig, ProvideAgentConfigDAO, ProvideAgentConfigService, ProvideAgentLLMAuditor, ProvideSearchEngine, ProvideAgentSkillStore, ProvideAgentSkillManagerTool, ProvideClawHubClient, ProvideSkillService, ProvideSecureToolRuntime, ProvideFirewallMetrics, ProvideModelFirewall, ProvideAgentToolManager, ProvideAgentRiskEvaluator, ProvideAgentAuditStore, ProvideAgentService, ProvideHubService, ProvideAgentGuardChain, ProvideAgentMemoryProvider, ProvideAgentPipeline, ProvideAgentNudgeReviewer, ProvideAgentInsightsEngine, )
var CronSet = wire.NewSet( ProvideCronDAO, ProvideCronService, ProvideCronManager, ProvideCronAsynqClient, ProvideCronAsynqServer, )
var DaoSet = wire.NewSet(dao.NewUserDAO, dao.NewRoleDAO, dao.NewApiDAO, dao.NewAuditDAO, dao2.NewFileShareDAO, ProvideAgentDAO)
var GlobalConfig = &Config{}
var HandlerSet = wire.NewSet(api.NewRoleHandler, api.NewApiHandler, api.NewAuditHandler, api.NewSystemHandler, api.NewUserHandler, api2.NewNotAuthHandler, api3.NewTerminalHandler, terminal.NewTerminalHandler, api4.NewFileHandler, api4.NewFileShareHandler, api4.NewShareAccessHandler, ProvideAgentHandler)
var Injector = wire.NewSet( InitMiddlewares, InitGinServer, InitLogger, InitRedis, InitDB, wire.Struct(new(Cmd), "*"), )
var ServiceSet = wire.NewSet(service.NewUserService, service.NewApiService, service.NewRoleService, service.NewAuditService, service.NewSystemService, service2.NewNotAuthService, service3.NewFileService, service3.NewFileShareService, ProvideFileManagerConfig, ProvideTerminalConfig, ProvideTerminalLocalAdapter, ProvideTerminalService, )
var UtilSet = wire.NewSet(jwt.NewJWTHandler, sse.NewHandler)
Functions ¶
func CheckDBHealth ¶
func InitAsynqClient ¶
func InitAsynqServer ¶
func InitGinServer ¶
func InitGinServer( m []gin.HandlerFunc, userHdl *systemApi.UserHandler, authApiHdl *systemApi.ApiHandler, authRoleHdl *systemApi.RoleHandler, systemHdl *systemApi.SystemHandler, notAuthHdl *notAuthHandler.NotAuthHandler, auditHdl *systemApi.AuditHandler, terminalHdl *terminalApi.TerminalHandler, fileHdl *filesApi.FileHandler, fileShareHdl *filesApi.FileShareHandler, shareAccessHdl *filesApi.ShareAccessHandler, agentHdl *agentApi.Handler, ) *gin.Engine
InitGinServer 初始化web服务
func InitMiddlewares ¶
func InitMiddlewares(ih ijwt.Handler, l *zap.Logger, roleSvc service.RoleService, auditSvc service.AuditService) []gin.HandlerFunc
InitMiddlewares 初始化中间件
func InitScheduler ¶
func InitStoredProcedures ¶
InitStoredProcedures 初始化存储过程
func InitTables ¶
func IsDBAvailable ¶
func ProvideAgentAuditStore ¶
ProvideAgentAuditStore 创建审计存储
func ProvideAgentConfigDAO ¶
func ProvideAgentConfigDAO(db *gorm.DB) *agentDao.AgentConfigDAO
ProvideAgentConfigDAO creates the config DAO
func ProvideAgentConfigService ¶
func ProvideAgentConfigService(dao *agentDao.AgentConfigDAO) *agentService.ConfigService
ProvideAgentConfigService creates the config service
func ProvideAgentDAO ¶
func ProvideAgentDAO(db *gorm.DB, l *zap.Logger, searchEngine *agentSearch.SearchEngine) agentDao.AgentDAO
ProvideAgentDAO 创建 Agent DAO
func ProvideAgentGuardChain ¶
ProvideAgentGuardChain 创建 GuardChain(双层防线)
func ProvideAgentHandler ¶
func ProvideAgentHandler( agentSvc agentService.AgentService, hubSvc agentHub.HubService, cfgSvc *agentService.ConfigService, searchEngine *agentSearch.SearchEngine, skillStore *agentSkill.SkillStore, insights *agentInsight.InsightsEngine, skillSvc *agentService.SkillService, ) *api.Handler
ProvideAgentHandler 创建智能体 API 处理器
func ProvideAgentInsightsEngine ¶
func ProvideAgentInsightsEngine(db *gorm.DB, l *zap.Logger) *agentInsight.InsightsEngine
ProvideAgentInsightsEngine 创建分析引擎
func ProvideAgentLLMAuditor ¶
func ProvideAgentLLMAuditor(l *zap.Logger) *agentPipeline.LLMAuditor
ProvideAgentLLMAuditor creates the LLM injection auditor (nil if not configured)
func ProvideAgentMemoryProvider ¶
ProvideAgentMemoryProvider 创建 MemoryProvider
func ProvideAgentNudgeReviewer ¶
func ProvideAgentNudgeReviewer(cfg *AgentConfig, l *zap.Logger) *agentNudge.MemoryNudgeReviewer
ProvideAgentNudgeReviewer 创建记忆轻推审查器
func ProvideAgentPipeline ¶
func ProvideAgentPipeline( dao agentDao.AgentDAO, cfgSvc *agentService.ConfigService, auditor *agentPipeline.LLMAuditor, l *zap.Logger, ) *agentPipeline.Stage
ProvideAgentPipeline 创建 Pipeline Stage
func ProvideAgentRiskEvaluator ¶
func ProvideAgentRiskEvaluator(cfg *AgentRiskConfig) *agentRisk.Evaluator
ProvideAgentRiskEvaluator 创建风险评估器
func ProvideAgentService ¶
func ProvideAgentService( dao agentDao.AgentDAO, toolMgr *agentToolManager.ToolManager, riskEval *agentRisk.Evaluator, auditStore agentAudit.Store, cfg *AgentConfig, l *zap.Logger, pipelineStage *agentPipeline.Stage, nudgeReviewer *agentNudge.MemoryNudgeReviewer, secureRuntime *agentRuntime.SecureToolRuntime, modelFirewall *agentGuard.ModelFirewall, ) agentService.AgentService
ProvideAgentService 将 di 配置转换为 service 本地配置并创建智能体服务
func ProvideAgentSkillManagerTool ¶
func ProvideAgentSkillManagerTool(store *agentSkill.SkillStore) tool.InvokableTool
ProvideAgentSkillManagerTool 创建 skill_manage Eino 工具
func ProvideAgentSkillStore ¶
func ProvideAgentSkillStore(cfg *AgentConfig, l *zap.Logger) (*agentSkill.SkillStore, error)
ProvideAgentSkillStore 创建 skill 文件系统存储
func ProvideAgentToolManager ¶
func ProvideAgentToolManager(dao agentDao.AgentDAO, l *zap.Logger, skillStore *agentSkill.SkillStore) *agentToolManager.ToolManager
ProvideAgentToolManager 创建工具管理器
func ProvideClawHubClient ¶
func ProvideClawHubClient(cfg *AgentConfig) *agentSkill.ClawHubClient
ProvideClawHubClient 创建 ClawHub 注册表客户端
func ProvideCronAsynqClient ¶
ProvideCronAsynqClient 提供 Asynq Client
func ProvideCronAsynqServer ¶
func ProvideCronAsynqServer(svc *cronService.CronService, logger *zap.Logger) *cronServer.CronAsynqServer
ProvideCronAsynqServer 提供 Asynq Server 和 ServeMux 封装
func ProvideCronManager ¶
func ProvideCronManager(svc *cronService.CronService, logger *zap.Logger) *cronManager.Manager
ProvideCronManager 提供 Cron 调度管理器
func ProvideCronService ¶
func ProvideCronService( dao *cronDao.CronDAO, agentSvc agentService.AgentService, logger *zap.Logger, client *asynq.Client, ) *cronService.CronService
ProvideCronService 提供 Cron 服务;DB 不可用时返回 nil
func ProvideFileManagerConfig ¶
func ProvideFileManagerConfig() filesService.ManagerConfig
func ProvideFirewallMetrics ¶
func ProvideFirewallMetrics() *agentGuard.FirewallMetrics
ProvideFirewallMetrics 创建模型防火墙指标
func ProvideHubService ¶
func ProvideHubService( dao agentDao.AgentDAO, toolMgr *agentToolManager.ToolManager, cfg *AgentHubConfig, l *zap.Logger, ) agentHub.HubService
ProvideHubService 创建 Hub 服务
func ProvideLocalCapsuleExecutor ¶
func ProvideLocalCapsuleExecutor(agentCfg *AgentConfig) (agentRuntime.CapsuleExecutor, error)
ProvideLocalCapsuleExecutor 创建本地隔离执行器
func ProvideMemoryWriteGuard ¶
func ProvideMemoryWriteGuard(l *zap.Logger) *agentRuntime.MemoryWriteGuard
ProvideMemoryWriteGuard 创建记忆写入守卫
func ProvideModelFirewall ¶
func ProvideModelFirewall(cfg *AgentConfig, metrics *agentGuard.FirewallMetrics) *agentGuard.ModelFirewall
ProvideModelFirewall 创建模型防火墙
func ProvidePolicyEngine ¶
func ProvidePolicyEngine(l *zap.Logger) *agentRuntime.PolicyEngine
ProvidePolicyEngine 创建工具调用策略引擎
func ProvideSearchEngine ¶
func ProvideSearchEngine(db *gorm.DB, l *zap.Logger) *agentSearch.SearchEngine
ProvideSearchEngine 创建全文搜索引擎
func ProvideSecureToolRuntime ¶
func ProvideSecureToolRuntime( guardChain *agentGuard.Chain, riskEval *agentRisk.Evaluator, agentCfg *AgentConfig, l *zap.Logger, ) (*agentRuntime.SecureToolRuntime, error)
ProvideSecureToolRuntime 创建安全工具执行运行时 调用链: GuardChain → PolicyEngine → ApprovalManager → CapsuleExecutor → ToolResultSanitizer → MemoryWriteGuard
func ProvideSkillService ¶
func ProvideSkillService(store *agentSkill.SkillStore, clawHub *agentSkill.ClawHubClient, cfg *AgentConfig, l *zap.Logger) *agentService.SkillService
ProvideSkillService 创建 Gateway 可用的 SkillService
func ProvideTerminalConfig ¶
func ProvideTerminalConfig() terminalservice.Config
func ProvideTerminalLocalAdapter ¶
func ProvideTerminalLocalAdapter() terminalservice.LocalAdapter
func ProvideTerminalService ¶
func ProvideTerminalService(logger *zap.Logger, local terminalservice.LocalAdapter, config terminalservice.Config) terminalservice.TerminalService
func ProvideToolResultSanitizer ¶
func ProvideToolResultSanitizer(l *zap.Logger) *agentRuntime.ToolResultSanitizer
ProvideToolResultSanitizer 创建工具结果脱敏器
Types ¶
type AgentConfig ¶
type AgentConfig struct {
LLM AgentLLMConfig `mapstructure:"llm"`
Risk AgentRiskConfig `mapstructure:"risk"`
Hub AgentHubConfig `mapstructure:"hub"`
Firewall AgentFirewallConfig `mapstructure:"firewall"`
MaxHistory int `mapstructure:"max_history" .env:"AGENT_MAX_HISTORY" default:"20"`
Search AgentSearchConfig `mapstructure:"search"`
Nudge AgentNudgeConfig `mapstructure:"nudge"`
Skill AgentSkillConfig `mapstructure:"skill"`
WorkspaceRoot string `mapstructure:"workspace_root" .env:"AGENT_WORKSPACE_ROOT" default:"/var/lib/agent/workspace"`
}
func ProvideAgentConfig ¶
func ProvideAgentConfig() *AgentConfig
ProvideAgentConfig 从全局配置中提取 Agent 配置
type AgentFirewallConfig ¶
type AgentHubConfig ¶
type AgentHubConfig struct {
PluginDir string `mapstructure:"plugin_dir" .env:"AGENT_HUB_PLUGIN_DIR" default:"./data/plugins"`
MaxPluginSize int `mapstructure:"max_plugin_size" .env:"AGENT_HUB_MAX_SIZE" default:"52428800"`
MaxConcurrentPlugins int `mapstructure:"max_concurrent_plugins" .env:"AGENT_HUB_MAX_CONCURRENT" default:"10"`
}
func ProvideAgentHubConfig ¶
func ProvideAgentHubConfig() *AgentHubConfig
ProvideAgentHubConfig 从全局配置中提取 Agent Hub 配置
type AgentLLMConfig ¶
type AgentLLMConfig struct {
Provider string `mapstructure:"provider" .env:"AGENT_LLM_PROVIDER" default:"openai"`
BaseURL string `mapstructure:"base_url" .env:"AGENT_LLM_BASE_URL" default:"https://api.openai.com/v1"`
APIKey string `mapstructure:"api_key" .env:"AGENT_LLM_API_KEY" default:""`
Model string `mapstructure:"model" .env:"AGENT_LLM_MODEL" default:"gpt-4o"`
Temperature float64 `mapstructure:"temperature" .env:"AGENT_LLM_TEMPERATURE" default:"0.7"`
MaxTokens int `mapstructure:"max_tokens" .env:"AGENT_LLM_MAX_TOKENS" default:"4096"`
}
type AgentNudgeConfig ¶
type AgentRiskConfig ¶
type AgentRiskConfig struct {
HighRiskPatterns []string `mapstructure:"high_risk_patterns"`
ProtectedPaths []string `mapstructure:"protected_paths"`
ApprovalTimeout string `mapstructure:"approval_timeout" .env:"AGENT_RISK_APPROVAL_TIMEOUT" default:"10m"`
Shell AgentShellConfig `mapstructure:"shell"`
}
func ProvideAgentRiskConfig ¶
func ProvideAgentRiskConfig() *AgentRiskConfig
ProvideAgentRiskConfig 从全局配置中提取 Agent 风险配置
type AgentSearchConfig ¶
type AgentSearchConfig struct {
MaxResults int `mapstructure:"max_results" default:"20" env:"AGENT_SEARCH_MAX_RESULTS"`
}
type AgentShellConfig ¶
type AgentShellConfig struct {
DefaultRisk string `mapstructure:"default_risk" .env:"AGENT_SHELL_DEFAULT_RISK" default:"low"`
Timeout string `mapstructure:"timeout" .env:"AGENT_SHELL_TIMEOUT" default:"30s"`
MaxOutputBytes int `mapstructure:"max_output_bytes" .env:"AGENT_SHELL_MAX_OUTPUT" default:"65536"`
Blacklist []string `mapstructure:"blacklist"`
Whitelist []string `mapstructure:"whitelist"`
}
type AgentSkillConfig ¶
type AgentSkillConfig struct {
BaseDir string `mapstructure:"base_dir" default:"data/skills" env:"AGENT_SKILL_BASE_DIR"`
ClawHubBaseURL string `mapstructure:"clawhub_base_url" default:"https://clawhub.ai" env:"AGENT_SKILL_CLAWHUB_BASE_URL"`
ClawHubAPIKey string `mapstructure:"clawhub_api_key" default:"" env:"AGENT_SKILL_CLAWHUB_API_KEY"`
Registry string `mapstructure:"registry" default:"clawhub" env:"AGENT_SKILL_REGISTRY"`
}
type Cmd ¶
type Cmd struct {
Server *gin.Engine
AgentService service4.AgentService
ConfigService *service4.ConfigService
SkillService *service4.SkillService
ToolManager *manager.ToolManager
CronService *service5.CronService
CronManager *manager2.Manager
CronAsynqServer *server.CronAsynqServer
}
func ProvideCmd ¶
type Config ¶
type Config struct {
Server ServerConfig `mapstructure:"server"`
Log LogConfig `mapstructure:"log"`
JWT JWTConfig `mapstructure:"jwt"`
Redis RedisConfig `mapstructure:"redis"`
Database DatabaseConfig `mapstructure:"database"`
MySQL MySQLConfig `mapstructure:"mysql"`
Mock MockConfig `mapstructure:"mock"`
FileManager FileManagerConfig `mapstructure:"file_manager"`
Agent AgentConfig `mapstructure:"agent"`
}
Config application configuration.
type DatabaseConfig ¶
type DatabaseConfig struct {
Driver string `mapstructure:"driver" .env:"DATABASE_DRIVER" default:"mysql"`
DSN string `` /* 128-byte string literal not displayed */
}
DatabaseConfig is the primary runtime database configuration.
type FileManagerConfig ¶
type FileManagerConfig struct {
Enabled bool `mapstructure:"enabled" .env:"FILE_MANAGER_ENABLED" default:"true"`
AllowFullDisk bool `mapstructure:"allow_full_disk" .env:"FILE_MANAGER_ALLOW_FULL_DISK" default:"false"`
Roots []FileManagerRootConfig `mapstructure:"roots"`
MaxEditSizeMB int `mapstructure:"max_edit_size_mb" .env:"FILE_MANAGER_MAX_EDIT_SIZE_MB" default:"5"`
MaxPreviewSizeMB int `mapstructure:"max_preview_size_mb" .env:"FILE_MANAGER_MAX_PREVIEW_SIZE_MB" default:"10"`
AllowedArchiveTypes []string `mapstructure:"allowed_archive_types"`
}
type FileManagerRootConfig ¶
type JWTConfig ¶
type JWTConfig struct {
Key1 string `mapstructure:"key1" .env:"JWT_KEY1" default:"ebe3vxIP7sblVvUHXb7ZaiMPuz4oXo0l"`
Key2 string `mapstructure:"key2" .env:"JWT_KEY2" default:"ebe3vxIP7sblVvUHXb7ZaiMPuz4oXo0z"`
Issuer string `mapstructure:"issuer" .env:"JWT_ISSUER" default:"K5mBPBYNQeNWEBvCTE5msog3KSGTdhmx"`
Expiration int64 `mapstructure:"expiration" .env:"JWT_EXPIRATION" default:"3600"`
}
type MockConfig ¶
type MockConfig struct {
Enabled bool `mapstructure:"enabled" .env:"MOCK_ENABLED" default:"true"`
}
type MySQLConfig ¶
type MySQLConfig struct {
Addr string `` /* 127-byte string literal not displayed */
}
MySQLConfig is kept for backward-compatible config fallback.
type RedisConfig ¶
type ServerConfig ¶
type ServerConfig struct {
Port string `mapstructure:"port" .env:"SERVER_PORT" default:"8889"`
}