QUICKSTART
构建第一个 Modu Agent
安装 Modu、注册一个 LLM Provider,然后运行第一条 Prompt。最短路径大约需要五分钟。
Modu 要求 Go 1.26.2 或更高版本,具体版本以仓库中的 go.mod 为准。
1. 安装
在你的 Go 项目中添加 Modu:
$ go get github.com/openmodu/modu
2. 构建第一个 Agent
注册一个 OpenAI 兼容端点,创建模型与 Agent,然后调用 Prompt。下面的结构与仓库
agent_demo
一致。
package main
import (
"context"
"github.com/openmodu/modu/pkg/agent"
"github.com/openmodu/modu/pkg/providers"
"github.com/openmodu/modu/pkg/providers/openai"
"github.com/openmodu/modu/pkg/types"
)
func main() {
providers.Register(openai.New(
"ollama",
openai.WithBaseURL("http://localhost:11434/v1"),
))
model := &types.Model{
ID: "llama3.2", Name: "Llama 3.2", ProviderID: "ollama",
}
a := agent.NewAgent(types.Config{
InitialState: &types.State{
SystemPrompt: "You are helpful.",
Model: model,
},
})
_ = a.Prompt(context.Background(), "用三句话解释 Modu")
}
3. 运行示例
仓库里的示例是最短的集成测试。先选一个与你的目标最接近的路径:
# 基础 Agent 与工具调用
go run ./examples/agent_demo
# 检查点、恢复与回退
go run ./examples/runtime_demo
# 多 Agent 协作
go run ./examples/agent_teams
AGENT RUNTIME
Agent Loop 与状态边界
pkg/agent 负责 ReAct 风格的执行循环、工具调用、队列、事件与中断。你的应用仍然拥有
Prompt、工具目录、持久化策略与部署方式。
检查点与会话恢复
pkg/runtime 在每条已提交消息后记录检查点。进程重启后可以继续未完成会话,也可以把历史检查点恢复成新的分支头。
store, err := runtime.NewFileStore("./checkpoints")
rt := runtime.New(agent.NewAgent(cfg), store, "session-123")
err = rt.Run(ctx, "do the thing")
resumed, err := rt.Resume(ctx)
事件与状态
通过 Subscribe 接收 Agent、Turn、Message 与 Tool Execution 事件。订阅者适合驱动日志、TUI、指标与外部状态同步。
CODING AGENT
终端里的完整编码流程
pkg/coding_agent 在 Agent 内核之上提供会话、上下文压缩、技能、审批和面向代码的工具。要直接体验完整 TUI:
$ go run ./cmd/modu_code
工具与技能
工具实现公共 types.Tool 契约;技能通过 SKILL.md 注入可复用工作流。宿主应用可以只选择需要的能力,不必接受一套固定产品形态。
MULTI-AGENT
Mailbox Teams
Mailbox 提供 Agent 注册、独立收件箱、任务与项目状态、能力队列、结果验证、流水线和对话记录。它只解决协作,不负责调用 LLM。
协作架构
Agent Teams 适合由一个协调者拆分任务、多个 Worker 并行执行;Adversarial Validation 适合结果必须经过独立验收的队列。两种模式共享 Mailbox 与任务模型。