Files
go-tiny-claw/cmd/claw/main.go
aruo 3e91c7d0a1 v1.6 System Prompt 工程化 + 渐进式技能发现
重构 system prompt 为动态组装系统:PromptComposer 聚合核心身份、AGENTS.md
项目规范和 Skills 目录;新增 read_skill 工具实现技能按需加载;包重命名
internal/context -> internal/prompt 消除 stdlib 冲突。
2026-05-17 00:05:31 +08:00

55 lines
1.6 KiB
Go

package main
import (
"context"
"log"
"os"
"go-tiny-claw/internal/engine"
"go-tiny-claw/internal/provider"
"go-tiny-claw/internal/tools"
)
func main() {
workDir, _ := os.Getwd()
// 1. 初始化真实的 Provider大脑
// 这里你可以任意切换 NewZhipuClaudeProvider 或 NewZhipuOpenAIProvider,效果完全一致!
llmProvider := provider.DeepseekOpenAIProvider("deepseek-v4-flash")
registry := tools.NewRegistry()
// 挂载工具全家桶
registry.Register(tools.NewReadFileTool(workDir))
registry.Register(tools.NewWriteFileTool(workDir))
registry.Register(tools.NewBashTool(workDir))
registry.Register(tools.NewEditFileTool(workDir))
registry.Register(tools.NewReadSkillTool(workDir))
// 实例化引擎,开启 EnableThinking = true
eng := engine.NewAgentEngine(llmProvider, registry, workDir, false)
// 发起一个需要局部修改的指令
//prompt := `
//我当前目录下有一个 server.go 文件。
//请帮我把里面 "TODO: 增加鉴权逻辑" 下面的那个 if 语句,整个替换为:
//if user == nil {
// fmt.Println("Forbidden!")
// return
//}
//`
//prompt := `
//我当前目录下有 a.txt, b.txt, c.txt 三个文件。
//为了节省时间,请你同时一次性读取这三个文件,并将它们的内容综合起来,告诉我它们分别记录了什么领域的信息。
//`
prompt := `我需要在当前目录下新建一个 ping.go,提供一个简单的 http ping 接口。写完之后,帮我把代码用 git 提交一下。`
err := eng.Run(context.Background(), prompt)
if err != nil {
log.Fatalf("引擎运行崩溃: %v", err)
}
}