first commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"agent/internal/agent"
|
||||
"agent/internal/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cfg := agent.LoadConfig()
|
||||
|
||||
store, err := agent.NewSessionStore(cfg.DataDir)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize session store: %v", err)
|
||||
}
|
||||
|
||||
dockerCfg, err := agent.NewDockerConfigStore(cfg.DataDir)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize docker config store: %v", err)
|
||||
}
|
||||
|
||||
apiCfg, err := agent.NewAPIConfigStore(cfg.DataDir, agent.APIConfig{
|
||||
APIKey: cfg.APIKey,
|
||||
BaseURL: cfg.BaseURL,
|
||||
Model: cfg.Model,
|
||||
Provider: agent.ProviderOpenAI,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize api config store: %v", err)
|
||||
}
|
||||
|
||||
r, srv := server.NewRouter(cfg, store, dockerCfg, apiCfg)
|
||||
|
||||
// 托管模式:检测到 BENCHMARK_TOKEN 时自动启动评测,无需外部触发。
|
||||
// agent.Run 不依赖 HTTP 服务,可直接在 goroutine 中调用。
|
||||
if os.Getenv("BENCHMARK_TOKEN") != "" {
|
||||
go func() {
|
||||
log.Printf("[benchmark] 检测到托管模式(BENCHMARK_TOKEN 已注入),自动启动评测")
|
||||
if err := srv.StartBenchmark(context.Background()); err != nil {
|
||||
log.Printf("[benchmark] 初始轮异常: %v", err)
|
||||
}
|
||||
log.Printf("[benchmark] 初始轮结束,后续 coop 完成通知将自动触发新一轮处理")
|
||||
}()
|
||||
}
|
||||
|
||||
log.Printf("agent is running at http://localhost:%s", cfg.Port)
|
||||
if err := r.Run(":" + cfg.Port); err != nil {
|
||||
log.Fatalf("server stopped: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user