first commit

This commit is contained in:
2026-08-14 23:41:57 +08:00
commit 086803a8dd
471 changed files with 91938 additions and 0 deletions
+53
View File
@@ -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)
}
}