Documentation
¶
Overview ¶
Package draftcrew provides a high-performance, idiomatic Go framework for AI agent orchestration.
Includes A2A (agent-to-agent) protocol for inter-agent delegation with HTTP+WebSocket transport, circuit breaker, and agent registry.
Basic usage:
llm := draftcrew.NewOpenAI(os.Getenv("OPENAI_API_KEY"), "gpt-4")
agent := draftcrew.NewAgent(draftcrew.AgentConfig{Role: "Researcher", Goal: "Find trends", LLM: llm})
task := draftcrew.NewTask(draftcrew.TaskConfig{Description: "Research Go 1.22", Agent: agent})
crew := draftcrew.NewCrew(draftcrew.CrewConfig{Agents: []*draftcrew.Agent{agent}, Tasks: []*draftcrew.Task{task}})
result, err := crew.Kickoff(context.Background())
Index ¶
- Constants
- Variables
- func GetOutput[T any](r *crew.Result, taskID string) (T, error)
- type A2AClient
- type A2AMessage
- type A2AServer
- type Agent
- type AgentConfig
- type Callback
- type CallbackBridge
- type Checkpoint
- type CheckpointStore
- type Crew
- type CrewConfig
- type CrewError
- type Criterion
- type DurationHistogram
- type EvalResult
- type EventBus
- type EventType
- type Flow
- type FlowEdge
- type FlowNode
- type FlowResult
- type GenerateOption
- type LLM
- type MemoryEntry
- type MemoryStore
- type Message
- type MetricsSnapshot
- type NodeState
- type OTELBridge
- type OutputCondition
- type Phase
- type ProcessType
- type Response
- type Result
- type StepInfo
- type StreamChunk
- type Task
- type TaskConfig
- type TelemetryEvent
- type TelemetryMetadata
- type Tool
- type ToolCall
- type ToolDef
- type Transport
- type Usage
- type YAMLEvalConfig
- type YAMLEvalCriterionConfig
- type YAMLLLMConfig
- type YAMLMCPServerConfig
- type YAMLMCPSetup
Constants ¶
const ( ProcessSequential = crew.ProcessSequential ProcessHierarchical = crew.ProcessHierarchical ProcessConsensual = crew.ProcessConsensual ProcessReflective = crew.ProcessReflective ProcessFlow = crew.ProcessFlow ProcessStateMachine = crew.ProcessStateMachine )
ProcessType constants for crew execution modes.
const ( PhaseAgentInit = callback.PhaseAgentInit PhaseAgentThink = callback.PhaseAgentThink PhaseAgentTool = callback.PhaseAgentTool PhaseAgentOutput = callback.PhaseAgentOutput PhaseAgentComplete = callback.PhaseAgentComplete PhaseAgentError = callback.PhaseAgentError PhaseTaskStart = callback.PhaseTaskStart PhaseTaskComplete = callback.PhaseTaskComplete PhaseTaskError = callback.PhaseTaskError PhaseCrewStart = callback.PhaseCrewStart PhaseCrewComplete = callback.PhaseCrewComplete PhaseCrewError = callback.PhaseCrewError PhaseHumanInput = callback.PhaseHumanInput PhaseReviewRequired = callback.PhaseReviewRequired PhaseFlowStart = callback.PhaseFlowStart PhaseFlowNodeStart = callback.PhaseFlowNodeStart PhaseFlowNodeComplete = callback.PhaseFlowNodeComplete PhaseFlowComplete = callback.PhaseFlowComplete )
Callback phase constants for agent, task, crew, and flow lifecycle events.
const ( EventPhaseTransition = telemetry.EventPhaseTransition EventLLMCall = telemetry.EventLLMCall EventToolExecution = telemetry.EventToolExecution EventError = telemetry.EventError EventCheckpoint = telemetry.EventCheckpoint )
Telemetry event type constants.
const ( PhaseCheckpointSave = callback.PhaseCheckpointSave PhaseCheckpointLoad = callback.PhaseCheckpointLoad PhaseResumeStart = callback.PhaseResumeStart PhaseResumeComplete = callback.PhaseResumeComplete )
Checkpoint and resume callback phases.
Variables ¶
var ( NewOpenAI = llm.NewOpenAI NewAnthropic = llm.NewAnthropic NewGemini = llm.NewGemini NewDeepSeek = llm.NewDeepSeek NewMistral = llm.NewMistral NewOpenRouter = llm.NewOpenRouter NewAzureOpenAI = llm.NewAzureOpenAI NewOllama = llm.NewOllama NewOpenAICompatible = llm.NewOpenAICompatible WithTemperature = llm.WithTemperature WithMaxTokens = llm.WithMaxTokens WithTopP = llm.WithTopP WithTools = llm.WithTools )
LLM provider constructors and options.
var ( NewTool = tools.New ShellTool = tools.ShellTool CalculatorTool = tools.CalculatorTool ReadFileTool = tools.ReadFileTool WriteFileTool = tools.WriteFileTool WebSearchTool = tools.WebSearchTool AskHumanTool = tools.AskHumanTool DelegateWorkTool = tools.DelegateWorkTool DelegateToAgentTool = tools.DelegateToAgentTool AskAgentTool = tools.AskAgentTool )
Built-in tool constructors.
var ( NewA2AClient = a2a.NewA2AClient NewA2AServer = a2a.NewA2AServer )
var ( NewShortTerm = memory.NewShortTerm NewEntityMemory = memory.NewEntityMemory )
Memory store constructors.
var ( ErrNoAgents = errors.ErrNoAgents ErrNoTasks = errors.ErrNoTasks ErrAgentNil = errors.ErrAgentNil ErrLLMFailed = errors.ErrLLMFailed ErrMaxIterations = errors.ErrMaxIterations ErrMaxRPM = errors.ErrMaxRPM ErrInvalidProcess = errors.ErrInvalidProcess ErrToolFailed = errors.ErrToolFailed ErrGuardrail = errors.ErrGuardrail ErrTaskFailed = errors.ErrTaskFailed ErrNoMatchingPath = errors.ErrNoMatchingPath ErrCycleDetected = errors.ErrCycleDetected WrapError = errors.Wrap WrapErrorE = errors.WrapE IsError = errors.Is ErrCheckpointNotFound = errors.ErrCheckpointNotFound )
Sentinel errors and error helpers.
var ( NewFlow = flow.New NewEventBus = telemetry.NewEventBus NewMetricsCollector = telemetry.NewMetricsCollector NewCallbackBridge = telemetry.NewCallbackBridge NewOTELBridge = telemetry.NewOTELBridge )
Constructor functions.
var ( // ParseYAML parses a crew.yaml file. ParseYAML = yamlconfig.Parse ParseYAMLFile = yamlconfig.ParseFile ToCrewConfig = yamlconfig.ToCrewConfig )
CLI entrypoint.
var NewAgent = agent.New
NewAgent creates a new Agent with the given configuration.
var NewCrew = crew.New
NewCrew creates a new Crew with the given configuration.
var NewTask = task.New
NewTask creates a new Task with the given configuration.
Functions ¶
Types ¶
type A2AMessage ¶ added in v0.2.0
type A2AMessage = a2a.A2AMessage
A2A protocol types and constructors.
type CallbackBridge ¶
type CallbackBridge = telemetry.CallbackBridge
CallbackBridge is a type alias for telemetry.CallbackBridge.
type CheckpointStore ¶
type CheckpointStore = crew.CheckpointStore
CheckpointStore is a type alias for crew.CheckpointStore.
type DurationHistogram ¶
type DurationHistogram = telemetry.DurationHistogram
DurationHistogram is a type alias for telemetry.DurationHistogram.
type GenerateOption ¶
type GenerateOption = llm.GenerateOption
GenerateOption is a type alias for llm.GenerateOption.
type MetricsSnapshot ¶
type MetricsSnapshot = telemetry.MetricsSnapshot
MetricsSnapshot is a type alias for telemetry.MetricsSnapshot.
type OTELBridge ¶
type OTELBridge = telemetry.OTELBridge
OTELBridge is a type alias for telemetry.OTELBridge.
type OutputCondition ¶
type OutputCondition = flow.OutputCondition
OutputCondition is a type alias for flow.OutputCondition.
type ProcessType ¶
type ProcessType = crew.ProcessType
ProcessType is a type alias for crew.ProcessType.
type StreamChunk ¶
type StreamChunk = llm.StreamChunk
StreamChunk is a type alias for llm.StreamChunk.
type TelemetryEvent ¶
TelemetryEvent is a type alias for telemetry.Event.
type TelemetryMetadata ¶
TelemetryMetadata is a type alias for telemetry.Metadata.
type YAMLEvalConfig ¶
type YAMLEvalConfig = yamlconfig.EvalConfig
YAMLEvalConfig is a type alias for yamlconfig.EvalConfig.
type YAMLEvalCriterionConfig ¶
type YAMLEvalCriterionConfig = yamlconfig.EvalCriterionConfig
YAMLEvalCriterionConfig is a type alias for yamlconfig.EvalCriterionConfig.
type YAMLLLMConfig ¶
type YAMLLLMConfig = yamlconfig.LLMConfig
YAMLLLMConfig is a type alias for yamlconfig.LLMConfig.
type YAMLMCPServerConfig ¶
type YAMLMCPServerConfig = yamlconfig.MCPServerConfig
YAMLMCPServerConfig is a type alias for yamlconfig.MCPServerConfig.
type YAMLMCPSetup ¶
type YAMLMCPSetup = yamlconfig.MCPSetup
YAMLMCPSetup is a type alias for yamlconfig.MCPSetup.
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
a2a
command
@sk-task a2a#polish: A2A example — two agents communicating via HTTP
|
@sk-task a2a#polish: A2A example — two agents communicating via HTTP |
|
quickstart
command
@sk-task foundation#T5.1: write quickstart example (AC-001, AC-015)
|
@sk-task foundation#T5.1: write quickstart example (AC-001, AC-015) |
|
src
|
|
|
cmd/draftcrew
command
@sk-task ecosystem#T1.2: CLI entrypoint with cobra + viper (AC-001, AC-002)
|
@sk-task ecosystem#T1.2: CLI entrypoint with cobra + viper (AC-001, AC-002) |
|
eval
@sk-task ecosystem#T3.1: Eval package (contains, regex, llm_judge)
|
@sk-task ecosystem#T3.1: Eval package (contains, regex, llm_judge) |
|
mcp
@sk-task ecosystem#T2.2: MCP client (connect, tools/list, tools/call)
|
@sk-task ecosystem#T2.2: MCP client (connect, tools/list, tools/call) |
|
pkg/dashboard
@sk-task dashboard-polish#T1.1: Dashboard package with SSE handler + HTML (AC-001, AC-003)
|
@sk-task dashboard-polish#T1.1: Dashboard package with SSE handler + HTML (AC-001, AC-003) |
|
pkg/llm
Package llm provides LLM provider abstractions for DraftCrew.
|
Package llm provides LLM provider abstractions for DraftCrew. |
|
pkg/yamlconfig
@sk-task ecosystem#T1.1: YAML config parser (AC-001, AC-002, AC-010)
|
@sk-task ecosystem#T1.1: YAML config parser (AC-001, AC-002, AC-010) |
|
telemetry
module
|