// Good - wrap errors with context
func (s *AgentService) Execute(ctx context.Context, id int64, task string) error {
agent, err := s.repo.GetByID(ctx, id)
if err != nil {
return fmt.Errorf("get agent %d: %w", id, err)
}
result, err := s.engine.Execute(ctx, agent, task)
if err != nil {
return fmt.Errorf("execute agent %s: %w", agent.Name, err)
}
return nil
}
// Bad - losing error context
func (s *AgentService) Execute(ctx context.Context, id int64, task string) error {
agent, err := s.repo.GetByID(ctx, id)
if err != nil {
return err // No context about where/why
}
return nil
}