Files
go-tiny-claw/README.md
T
zhuyongxin f75d0c49ae v1.1 慢思考模式 (Thinking Phase)
将 ReAct 循环从单阶段升级为 Thinking + Action 双阶段架构:
- Phase 1:剥夺工具访问权,强制模型先输出纯文本推理规划
- Phase 2:恢复工具挂载,模型按推理结果精准执行
- 新增 EnableThinking 开关,兼容旧模式
2026-05-14 15:47:41 +08:00

83 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# go-tiny-claw
一个轻量级的 AI Agent 引擎,基于 Go 语言实现标准的 **ReAct(Reasoning + Acting)** 循环模式。
## 项目背景
go-tiny-claw 受 Claude / OpenAI 的 Agent 概念启发,旨在提供一个简洁、可扩展的微型 Agent 框架核心。它定义了 Agent 与大模型交互的标准契约,让开发者可以快速搭建自己的 AI 助手应用。
## 核心架构
```
┌─────────────────────────────────────────────┐
│ AgentEngine │
│ ┌──────────┐ ┌──────────┐ │
│ │LLMProvider│ │ Registry │ │
│ └─────┬────┘ └─────┬────┘ │
│ │ │ │
│ ▼ ▼ │
│ 大模型推理服务 本地工具执行 │
└─────────────────────────────────────────────┘
```
### 模块说明
| 包 | 说明 |
|---|---|
| `internal/engine` | **AgentEngine** — 核心驱动,实现 ReAct 主循环 |
| `internal/provider` | **LLMProvider** 接口 — 与大模型通信的统一契约 |
| `internal/schema` | 核心数据结构定义(Message、ToolCall、ToolResult) |
| `internal/tools` | **Registry** 接口 — 工具的注册与分发执行 |
### ReAct 循环流程
1. 系统初始化 Context,注入用户指令
2. 向大模型发起推理请求(含可用工具列表)
3. 模型返回文本回复和/或工具调用请求
4. 如果模型未请求工具调用 → 任务完成,退出循环
5. 执行模型请求的工具,获取 Observation
6. 将 Observation 追加到上下文,回到步骤 2
## 快速开始
```go
package main
import (
"context"
"go-tiny-claw/internal/engine"
"go-tiny-claw/internal/schema"
)
func main() {
provider := &mockProvider{}
registry := &mockRegistry{}
eng := engine.NewAgentEngine(provider, registry, "/path/to/workdir")
eng.Run(context.Background(), "你的指令")
}
```
## 扩展
- **替换 Provider**: 实现 `LLMProvider` 接口即可接入任意大模型(OpenAI、Claude、本地模型等)
- **注册工具**: 实现 `Registry` 接口即可挂载自定义工具集(bash、文件操作、代码搜索等)
- **自定义 Schema**: 基于 `schema` 包的数据结构可灵活扩展消息格式和工具定义
## 版本历史
### v1.1 — 慢思考模式 (Thinking Phase)
将 ReAct 循环从单阶段升级为双阶段架构:
- **Phase 1 (Thinking)** — 剥夺工具访问权,强制模型先进行纯文本推理规划
- **Phase 2 (Action)** — 恢复工具挂载,模型顺着推理结果执行精准的工具调用
- 新增 `EnableThinking` 开关,兼容旧模式
### v1.0 — ReAct 循环基础
实现标准的单阶段 ReAct 循环:思考 → 调工具 → 观察 → 继续,直到任务完成。
## License
MIT